Does spring-jms 5.x require JMS 2.0? - spring

I can see in spring-jms.gradle that starting with 5.0.0, the dependency to the JMS API changed from 1.1 to 2.0.
However, my question is: does this mean that spring-jms 5.x actually requires the provider to implement JMS 2.0?
I cannot find a clear requirement for th JMS version in the spring documentation neither in the Javadoc of the main spring-jms classes (like #EnableJms). For other JEE APIs like servlet-api or JPA, spring documentation/javadocs make this clearer.
Today, I still use spring 4.x and want to upgrade to 5.x, however I use a JMS provider (Oracle AQ) that implements only JMS 1.1. I would like to be sure whether spring-jms may make use of specific JMS 2.0 features like JMSContext.

I believe it's backwards-compatible, so as long as you don't try to use any 2.0 features, you should be ok.
Why don't you just give it a try?

Related

What versions of Velocity does Spring4.x support?

I know that Velocity is no longer supported in the latest Spring, but I need Velocity in my project. Therefore, I am trying to use Spring 4.x.
Can you please provide information on which versions of Velocity are supported by Spring 4.x?
Spring itself dropped support for Velocity in Spring 5.0, so Spring itself supports it upto Spring 4.3.x. In Spring 4.3 you can use Velocity 1.7, newer version might work but nothing is guaranteed.
There is also the spring-velocity-support package which aims at some Spring support. I'm not entirely sure what is in that.

Spring boot camel Kafka

I have a Spring boot 2.25.1 application which is using Camel 2.25.1 with camel-kafka everything is working fine..
In my Kafka consumer, I have a need to add the feature to pause consumption on demand so I upgraded to camel 3.18.1 so I can use the pausable feature.
After upgrading to 3.18.1 I am getting error FileNotFound with class file TimeoutAwareAggregationStategy.class.
when I opened camel-core 3.18.1 jar this class does not exist which was available in came 2.25.1 version.
Please suggest.
I was expecting smoother upgrade from camel 2.25.1 to camel 3.18.1.
According to the Camel upgrade guide for Camel 2.x to 3, the camel-core was modularized and broken up into multiple jar files. In that upgrade guide, they mention a lot of changes to Aggregation Strategies. While I couldn't find a direct implementation of the AggregationStrategy interface called TimeoutAwareAggregationStategy, I can see that class exists in camel-core in version 2.25.4 and the AggregationStrategy interface is moved to camel-api in version 3.0.
I was expecting smoother upgrade from camel 2.25.1 to camel 3.18.1
Normally, when upgrading a major version to a newer major version, there will be major changes that you have to account for. These changes are almost always covered in the change list or upgrade guide.

Use of Spring 5.3 with Servlet 3.0

I'm working on application which uses Spring Core in version 4.3.14 and Spring Web in version 4.2.13. We don't use Spring MVC. Also, from Spring Web we use just very limited set of classes:
XmlWebApplicationContext (so classes from org.springframework.web.context)
RestTemplate (so classes from org.springframework.web.client, here i expect some problems)
some util classes which probably can be refactored to use something else
My question is:
We want to migrate to Spring 5.x. Is such a migration really possible? Or should i expect some severe problems with application startup (class incompatibilites etc). This source for example: https://github.com/spring-projects/spring-framework/wiki/What%27s-New-in-Spring-Framework-5.x#whats-new-in-version-50 says that Servlet 3.1 is required
From the other side, here https://spring.io/blog/2015/06/10/feedback-welcome-spring-5-system-requirements JUERGEN HOELLER wrote that migration to Spring 5 will be a soft one. So i assume that if Application uses only features from JEE6 + Servlet 3.0, then it can be that it will also work on Spring 5.x with JEE6-compatible appserver
Does anyone have an experience in that?
As always, Spring Framework upgrades its baseline with new major versions. In this case, we're requiring JDK8+ and Java EE7+.
In practice, this means that the compiled code depends on those APIs and doesn't use reflection anymore to adapt to them. In your case, this is not only about Servlet, but also JPA, JMS, bean validation and other specs.
Your application might work fine with the arrangement you're mentioning, but the Spring team will not guarantee support for this setup.

Why is the support for Atmosphere removed from jhipster?

I want to implement atmosphere for websocket and fallback mechanisms. But in the latest version of jhipster the support of Atmosphere has been removed. There is only support for spring websockets now. What steps should I take to move from spring websockets to atmosphere?
Originally there were some troubles when integrating atmosphere to spring. That led JHipster project to drop atmosphere support. AFAIK the last issue was in spring-boot and since it's fixed Atmosphere should play nicely with Spring. Unfortunately JHipster project did not re-add Atmosphere support so you will have to integrate the framework yourself.
I think you can take a look at this application that shows how to enable Atmosphere in spring-boot. The configuration is done in Java Config here.
If you want to use DI inside your Atmosphere services you might be interested by this page.

Camel with old version of SonicMQ (5.02)

Wondering is it possible to integrate Camel with a very old version of Sonic MQ (5.02). The queues in one of the legacy application we have, were built in 2003! When we try to post using Camel (with the sonic client jar on the classpath) we get class not found exceptions from Camel...
java.lang.AbstractMethodError:
javax.jms.ConnectionFactory.createConnection()Ljavax/jms/Connection;
This relates to the old version of JMS api (1.02b) shipped with Sonic.
Even if we put the correct version of JMS API on class path.. we get further... but then various sonic exceptions .....
Wondering if it is even supported?? Has anyone tried this..
or have info the could share?
Much Appreciated
What version of Camel do you use?
Camel does not support JMS 1.0 api for a very long time. You would need to use an old version of Camel. In fact that happend form Camel 2.5 onwards, see its release notes: http://camel.apache.org/camel-250-release.html

Resources