Supported Environments

The PubSub+ Messaging API for JMS is compatible with any version of the Java Development Kit (JDK) that has active support or security update support. For information about the supported versions of the JDK, see https://www.oracle.com/java/technologies/java-se-support-roadmap.html. For newer JDK releases, additional time is required to update the PubSub+ Messaging API for JMS.

As of version 10.20, the PubSub+ Messaging API for JMS has a dependency on JMS 2.0. To understand:

PubSub+ Messaging API for JMS and JMS Spec 2.0

As of version 10.20, the PubSub+ Messaging API for JMS is dependent on JMS 2.0. This dependency allows for compatibility with current and future versions of JMS. Solace does not currently provide implementation for any methods or interfaces introduced in JMS 2.0. You must continue to use JMS 1.1 methods and interfaces in your applications. If you use Maven or Gradle when you build your application, it automatically downloads the Geronimo JMS 2.0 jar file and you do not need to make any other changes. If you do not use a build tool with dependency management, you need to manually add the Geronimo JMS 2.0 jar file to your project. You can download this file from Maven Central at Apache Geronimo JMS Spec 2.0.

If you use the PubSub+ JMS API with the Karaf framework versions 4.1 and earlier, you must put the geronimo-jms_2.0_spec-1.0-alpha-2.jar file in your deploy folder to load the JMS API. If you use the Karaf framework (versions 4.2 and later), changes are not required in your deploy folder because it includes JMS 2.0.

Support for Geronimo JMS 1.1

For version 10.20 and later, you need to use a Solace JMS compatibility layer to allow backwards compatibility with applications that must include the Geronimo JMS 1.1 dependency (geronimo-jms_1.1_spec) or applications that cannot use JMS 2.0. If you build your project with Maven, you must add dependencies, see Building JMS Projects with Maven. If you do not use Maven, add the Solace JMS compatibility layer (sol-jms-compat-1.1) into your project's CLASSPATH, which you can download from our Maven Central repository at PubSub+ Compatibility Layer For Apache Geronimo JMS Spec 1.1.

PubSub+ Messaging API for Jakarta Messaging

The PubSub+ Messaging API for Jakarta Messaging, version 10.23 supports the jakarta.jms API namespace. This enables your applications to take advantage of Spring version 6.0 features. For information about Spring version 6.0 see their documentation page at Spring Framework Documentation.

To use the PubSub+ Messaging API for Jakarta Messaging:

  1. Include the sol-jms-jarkata artifactID in the dependencies in your Maven project. This automatically uses version 3.1.0 of the Jakarta JMS API. You can also download the artifact from the Maven Central repository at Solace PubSub+ Messaging API For Jakarta Messaging.

  2. In your application's code, you need to replace all import statements that use javax.jms.* with jakarta.jms.*.

    • For example, change the incorrect statement of:

      import javax.jms.Message;
    • To the correct import statement for the Jakarta JMS namespace:

      import jakarta.jms.Message;
  3. (Optional) To upgrade your application to use Spring Boot versions 3.0 and later, you also need to include the Solace Spring Boot Starter as a dependency in your application. Adding this dependency automatically imports sol-jms-jakarta, and you can download the artifact here at Solace Spring Boot Starter JMS. For information about upgrading to Spring Boot version 3.0, see Preparing for Spring Boot 3.0. For a guide on how to use Spring Boot auto-configuration with the PubSub+ JMS API, see Spring Boot Auto-Configuration for the Solace JMS on the Solace GitHub page.

The PubSub+ Messaging API for Jakarta Messaging can not be used with Spring versions lower than 6.0.0 (or its release candidates) and Spring boot versions lower than 3.0.0 (or its release candidates).