Re: Jakarta dependencies
OK, my situation is that I use both Classic and Artemis brokers (let the user decide which broker type and protocol (jms, amqp, mqtt)). That is thus on server side, and on the client side Camel is used to gather data to send data to the broker. Currently, this is running on JDK 11 with latest artemis (2.31.2) and classic (5.18.3). I'm in the process to move to Java 21 including upgrading to Junit5/Jakarta etc. It's with Jakarta that I'm unsure. Based on the answers of Robbie and Matt I know now at least that this is possible (at least when Classic 6.x arrives) and I'm on the right track. I also looked at the referenced documentation, but I find it a bit sparse and doesn't give enough information to decide: Dependency X --> Dependency X or Dependency X --> Dependency XJakarta I tried of course to see if there is a matching variant looking at Maven central, but a mistake is easily made. -- To give an idea, here are my current dependencies regarding ActiveMQ (running on JDK11): org.apache.activemq activemq-broker ${activemq-classic.version} org.apache.activemq activemq-pool ${activemq-classic.version} org.apache.activemq activemq-kahadb-store ${activemq-classic.version} org.apache.activemq activemq-amqp ${activemq-classic.version} org.apache.activemq activemq-client ${activemq-classic.version} org.apache.activemq artemis-server ${activemq-artemis.version} org.apache.activemq artemis-jms-server ${activemq-artemis.version} org.apache.activemq artemis-commons ${activemq-artemis.version} org.apache.activemq artemis-core-client ${activemq-artemis.version} org.apache.activemq artemis-ra ${activemq-artemis.version} org.apache.activemq artemis-dto ${activemq-artemis.version} org.apache.activemq artemis-amqp-protocol ${activemq-artemis.version} org.apache.activemq artemis-mqtt-protocol ${activemq-artemis.version} org.apache.activemq artemis-stomp-protocol ${activemq-artemis.version} org.apache.activemq artemis-openwire-protocol ${activemq-artemis.version} org.apache.activemq artemis-hornetq-protocol ${activemq-artemis.version} org.apache.activemq activemq-artemis-native ${activemq-artemis-native.version} org.apache.activemq artemis-jms-client-all ${activemq-artemis.version} org.apache.qpid proton-j ${qpid-proton-j.version} And here are my new dependencies so far I can see for JDK21 (but they may contain some mistakes): org.apache.activemq activemq-broker ${activemq-classic.version} org.apache.activemq activemq-pool ${activemq-classic.version} org.apache.activemq activemq-kahadb-store ${activemq-classic.version} org.apache.activemq activemq-amqp ${activemq-classic.version} org.apache.activemq activemq-client ${activemq-classic.version} org.apache.activemq artemis-server ${activemq-artemis.version} org.apache.activemq artemis-jakarta-server ${activemq-artemis.version} org.apache.activemq artemis-commons ${activemq-artemis.version} org.apache.activemq artemis-core-client ${activemq-artemis.version} org.apache.activemq artemis-jakarta-ra ${activemq-artemis.version} org.apache.activemq artemis-dto ${activemq-artemis.version} org.apache.activemq artemis-amqp-protocol ${activemq-artemis.version} org.apache.activemq artemis-mqtt-protocol ${activemq-artemis.version} org.apache.activemq artemis-stomp-protocol ${activemq-artemis.version} org.apache.activemq artemis-openwire-protocol ${activemq-artemis.version} org.apache.activemq artemis-hornetq-protocol ${activemq-artemis.version} org.apache.activemq activemq-artemis-native ${activemq-artemis-native.version} org.apache.activemq artemis-jakarta-client-all ${activemq-artemis.version} org.apache.qpid proton-j ${qpid-proton-j.version} You could diff them to see
Re: Jakarta dependencies
Hi Raymond- ActiveMQ 6 (ActiveMQ 5.x w/ Jakarta support) supports JDK 21. The Jakarta dependencies are transitive, if you just use the client then the list is Jakarta JMS and (optionally Transaction). If you add in the Jakarta-based broker it can expand depending on if you are using JDBC or other things (web console uses Jakarta Servlet, etc). -Matt Pavlovich > On Nov 3, 2023, at 3:21 AM, ski n wrote: > > I'm planning to move to Jakarta namespace (JEE10). What I understand is: > > 1. ActiveMQ Classic Server: Jakarta is not supported (but will be soon from > version 6). > 2. ActiveMQ Classic Client: Jakarta is supported. > 3. ActiveMQ Artemis Server: Jakarta is supported. > 4. ActiveMQ Artemis Client: Jakarta is supported. > > Is this correct? > > For some dependencies, I need specific Jakarta ones. Is there an overview > (a table) for both Classic and Artemis with the list of dependencies for > javax and jakarta and from which version this is supported. It's practical > to known when to change the dependency artifact name, but also interesting > when it stays the same. > > > > I'm also planning to upgrade the Java version. Do the latest versions also > support Java 21, or should I stick with Java 17 for now? Is here also an > overview table for both classic and artemis? Similar to the compatibility > matrix of Gradle: > > https://docs.gradle.org/current/userguide/compatibility.html > > Thanks, > > Raymond
Re: Jakarta dependencies
Yes that list looks correct re: Jakarta.. For 5.x/6.x there are some relevant details at https://activemq.apache.org/jms2 around the ongoing JMS 2 and now Jakarta Messaging 3.1 work that might answer your questions. For Artemis, there are relevant details at https://activemq.apache.org/components/artemis/documentation/latest/client-classpath.html#the-client-classpath although the 'since version' isnt detailed since the docs are version-specific. Jakarta support has been there since 2021 though, so you shouldn't be using anything old enough for versions to matter. On the JVM side..not aware of any tables like the Gradle one, but I believe they tend to need specific support adding more often. For Artemis, the PR build and test subset has been working on Java 21 since before its release so I'd expect that to work ok, and anything not doing so would be considered a bug to fix. I dont know about 5.x/6.x for sure, but I'd personally expect the same at this point (especially on 6.x given it will have a Java 17 minimum). Robbie On Fri, 3 Nov 2023 at 08:21, ski n wrote: > > I'm planning to move to Jakarta namespace (JEE10). What I understand is: > > 1. ActiveMQ Classic Server: Jakarta is not supported (but will be soon from > version 6). > 2. ActiveMQ Classic Client: Jakarta is supported. > 3. ActiveMQ Artemis Server: Jakarta is supported. > 4. ActiveMQ Artemis Client: Jakarta is supported. > > Is this correct? > > For some dependencies, I need specific Jakarta ones. Is there an overview > (a table) for both Classic and Artemis with the list of dependencies for > javax and jakarta and from which version this is supported. It's practical > to known when to change the dependency artifact name, but also interesting > when it stays the same. > > > > I'm also planning to upgrade the Java version. Do the latest versions also > support Java 21, or should I stick with Java 17 for now? Is here also an > overview table for both classic and artemis? Similar to the compatibility > matrix of Gradle: > > https://docs.gradle.org/current/userguide/compatibility.html > > Thanks, > > Raymond