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):

<dependencies>

    <!-- activemq classic dependencies -->
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-broker</artifactId>
        <version>${activemq-classic.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-pool</artifactId>
        <version>${activemq-classic.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-kahadb-store</artifactId>
        <version>${activemq-classic.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-amqp</artifactId>
        <version>${activemq-classic.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-client</artifactId>
        <version>${activemq-classic.version}</version>
    </dependency>

    <!-- activemq artemis dependencies -->
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-server</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-jms-server</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-commons</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-core-client</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-ra</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-dto</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-amqp-protocol</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-mqtt-protocol</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-stomp-protocol</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-openwire-protocol</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-hornetq-protocol</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-artemis-native</artifactId>
        <version>${activemq-artemis-native.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-jms-client-all</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.qpid</groupId>
        <artifactId>proton-j</artifactId>
        <version>${qpid-proton-j.version}</version>
    </dependency>

</dependencies>


And here are my new dependencies so far I can see for JDK21 (but they may
contain some mistakes):

<dependencies>

    <!-- activemq classic dependencies -->
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-broker</artifactId>
        <version>${activemq-classic.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-pool</artifactId>
        <version>${activemq-classic.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-kahadb-store</artifactId>
        <version>${activemq-classic.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-amqp</artifactId>
        <version>${activemq-classic.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-client</artifactId>
        <version>${activemq-classic.version}</version>
    </dependency>

    <!-- activemq artemis dependencies -->
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-server</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-jakarta-server</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-commons</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-core-client</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-jakarta-ra</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-dto</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-amqp-protocol</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-mqtt-protocol</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-stomp-protocol</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-openwire-protocol</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-hornetq-protocol</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-artemis-native</artifactId>
        <version>${activemq-artemis-native.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-jakarta-client-all</artifactId>
        <version>${activemq-artemis.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.qpid</groupId>
        <artifactId>proton-j</artifactId>
        <version>${qpid-proton-j.version}</version>
    </dependency>

</dependencies>


You could diff them to see the changes between the old (javax) and new
(jakarta).

Raymond










On Fri, Nov 3, 2023 at 3:05 PM Matt Pavlovich <mattr...@gmail.com> wrote:

> 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 <raymondmees...@gmail.com> 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
>
>

Reply via email to