Agree. I'll also note that projects that support both namespaces and use a classifier like "-jakarta" are very hard to use if you want the "-jakarta" version.
We did that in TomEE, Johnzon, OpenWebBeans, etc. and the problem is the maven pom is basically unusable to jakarta users. Those user's had to tediously exclude all the javax dependencies and meticulously add all the right "jakarta" dependencies. It's not the greatest user experience. Eventually we started just switching over in source and focused the poms on jakarta dependencies. -David > On Sep 14, 2023, at 8:57 AM, Robbie Gemmell <robbie.gemm...@gmail.com> wrote: > > In ActiveMQ 5.x the broker itself uses all the JMS messages etc on the > broker side and also uses the same classes as the client for various > stuff, so it has to be fully converted so you can use broker + client > in the same application/test without resorting to containers etc. The > 5.x javax broker and jakarta client simply cant be used in the same > classloader. > > 5.x also uses Spring for various bits and a jakarta conversion means > using Spring 6, which requires Java 17 as you noted (related aside: 17 > wont be the current LTS as of next week, with Java 21 > releasing...which has effectively been finalised for a month now since > there was no RC2). > > So essentially it is not as simple to have 'javax modules' and > 'jakarta modules' in the same tree for 5.x like it was for the Artemis > codebase back in February 2021 when that was originally done. That > made a lot of sense at the time since noone was really using them back > then. Going forward, I do think having 2 versions is actually > preferable, and thats what I choose to do elsewhere, and what I'd say > most (but, not all) projects are doing at this later point. It does > mean backporting things if supporting both, but also means a simpler > build and a nicer testing situation etc, and slightly less user change > (just updating the version, not knowing new -jakarta dep exists and > also updating version). > > On Thu, 14 Sept 2023 at 16:16, Justin Bertram <jbert...@apache.org> wrote: >> >> I don't have a deep familiarity with the internals here so some of the >> fundamentals behind the changes aren't clear to me. >> >> Is the move to JDK 17 prompted by the fact that Spring 6 requires it? How >> tightly is "Classic" coupled with Spring? >> >> Is the coupling with Spring also why the code-base is being moved >> whole-sale to Jakarta? It's been a little while now, but when Artemis >> implemented Jakarta support back in early 2021 I don't recall any >> disruption for current users and no major version change was needed. Both >> Java EE and Jakarta EE implementations are based on the same code-base. Is >> something like that not possible here? It would simplify maintenance a lot >> since fixes/features wouldn't have to be back-ported. >> >> >> Justin >> >> On Mon, Sep 11, 2023 at 4:22 PM Christopher Shannon < >> christopher.l.shan...@gmail.com> wrote: >> >>> First, I realize that this thread is likely to cause a fight based on past >>> history and probably not go anywhere, but with the work being done >>> with Jakarta for AMQ 5.x I think it's time to at least bring up the >>> ActiveMQ 6.0 discussion. >>> >>> With all the breaking changes currently targeted for version 5.19.x, such >>> as the Jakarta switch from javax, requiring JDK 17, major Spring and Jetty >>> upgrades and now potentially major OSGi changes, it makes zero sense to me >>> to have this next AMQ version as version 5.19.0 as it's completely >>> incompatible with the previous version 5.18.x. Users are likely going to be >>> in for a rude awakening when trying to upgrade and will be quite confused >>> as to why so much is different. >>> >>> The Jakarta changes should really be a major version upgrade so that it's >>> much more clear to users that it's very different from the previous >>> version. Another major benefit of going with version 6.0 is that it frees >>> up the previous javax releases to continue on with 5.19 or 5.20 because we >>> will likely need to support the older javax releases for quite a while. >>> >>> Also, from my point of view it seems pretty clear that the original goal >>> for Artemis to become AMQ 6.0.0 is never going to happen. Artemis has had >>> its own branding and versioning for several years now and will likely >>> continue that way and not change so I don't really see that as a reason to >>> not bump AMQ 5.x to 6.x with all the major breaking changes. >>> >>> Anyways, I figure there won't be much agreement here but thought I should >>> at least throw it out there before we go and release 5.19.x with such major >>> breaking changes. >>>