Re: Jakarta dependencies

2023-11-04 Thread ski n
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

2023-11-03 Thread Matt Pavlovich
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

2023-11-03 Thread Robbie Gemmell
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