I had assumed you would use Spring 6 on the Jakarta branch, though
still targeting 11 with the client etc, but requiring 17 for build and
using those modules with spring 6 requirement (im not clear which bits
those are...but sounds like its more widespread than I thought it
was).

On Wed, 5 Apr 2023 at 15:21, Christopher Shannon
<christopher.l.shan...@gmail.com> wrote:
>
> All fair points Robbie. I'd still like to leave the jakarta client in
> 5.18.x just as it gives some compatibility for clients only even if it's
> going to go away in 5.19.x.
>
> So how about the following:
>
> 5.18.x - Still javax support with just a jakarta client. This can be a long
> term LTS, at least for bug fixes. We will probably want to backport some
> features too for a while.
> 5.19.x - Becomes Jakarta API only. Still support JDK 11 and by default
> would still have Spring 5.3.x but will be of course compatible with Spring
> 6 and Spring boot 3, etc.
> 5.20.x - By this release JDK 21 LTS should be out so I say we bump to
> require JDK 17 (we can bump other things like Jetty/Spring 6 at the same
> time)
>
> We could also bump to JDK 17 for 5.19.x if it's too much of a pain to
> support JDK 11 but I think it should be doable.
>
> In terms of which features are actually supported/implemented for the new
> APIs is another discussion. Obviously each release would add more. I
> haven't had time yet to look more into shared subscriptions but likely we'd
> leverage the existing composite destination/virtual topics that exist in
> the broker to support it but I'm not sure if it would be client/broker side
> etc.
>
> Thoughts?
>
> On Wed, Apr 5, 2023 at 8:59 AM Robbie Gemmell <robbie.gemm...@gmail.com>
> wrote:
>
> > No extra -javax client module module. People wanting Jakarta client
> > support would use 5.19.x. People wanting javax client support would
> > just use 5.18.x as they would today. I'd even consider removing the
> > extra 5.18.x -jakarta client module personally (could be super nice
> > and add a maven relocation for it to the initial 5.19.0 release to
> > point them back to the normal client module, though as its not in
> > widespread use and doesnt even work yet, a need for that is unclear).
> >
> > I dont particularly care what version it is called. However I will say
> > I dont think it would particularly be any more unusual to call it
> > 5.19.x vs 5.18.x than it was with many other more impactful changes
> > that have been made in 5.n -> 5.n+1 releases in the past ~15 years.
> > While awkward in some ways, its actually probably a more trivial
> > change in the end compared to many prior changes in that time. Folks
> > that want to update their stuff to the new API make a trivial version
> > number update. Folks that dont, will not. Actual implementation
> > behaviours would remain the same, unlike with many 5.x bumps. Could
> > jump it to 5.30.x to separate and align with supporting Jakarta
> > Messaging 3 ;)
> >
> > On Wed, 5 Apr 2023 at 12:31, Christopher Shannon
> > <christopher.l.shan...@gmail.com> wrote:
> > >
> > > So if 5.19.x just becomes Jakarta API (and not new modules) then I assume
> > > we would just have an extra client module for javax? Basically the
> > inverse
> > > of 5.18.x (where we primarily use javax and have a jakarta client module)
> > >
> > > I guess that will be fine but it is pretty unusual to make such a large
> > > breaking API change without bumping major versions. I would argue that
> > > should really be a 6.0 release but everyone knows how that conversation
> > > would go with versioning so I guess we are stuck on 5.19.x
> > >
> > > On Wed, Apr 5, 2023 at 5:17 AM Jean-Baptiste Onofré <j...@nanthrax.net>
> > wrote:
> > >
> > > > Hi
> > > >
> > > > Agree, it was basically my proposal in a previous email: I would not
> > > > use different artifacts, just change to the major version (5.19.x). If
> > > > people still want to use javax.jms, then he can use 5.18.x (that we
> > > > can "flag" as LTS).
> > > >
> > > > Regards
> > > > JB
> > > >
> > > > On Mon, Apr 3, 2023 at 10:20 PM Christopher Shannon
> > > > <christopher.l.shan...@gmail.com> wrote:
> > > > >
> > > > > Based on what Robbie is saying we wouldn't have any new modules at
> > all. I
> > > > > would just be different versions, one version is javax and one is
> > jakarta
> > > > > which is what Qpid JMS did. (Jakarta is 2.x and javax is 1.x)
> > > > >
> > > > > On Mon, Apr 3, 2023 at 1:32 PM Matt Pavlovich <mattr...@gmail.com>
> > > > wrote:
> > > > >
> > > > > > Yeah, I agree w/ Robbie. I think this makes the most sense
> > considering
> > > > > > Jakarta namespace will be default going forward for all new apps.
> > > > > >
> > > > > > When migrating existing apps, it’ll most likely be all javax deps
> > to
> > > > > > jakarta, so that makes for a nice clean version-number-only change.
> > > > > >
> > > > > > For example, 'spring-web’ v6 w/ Jakarta artifactId is still just
> > > > > > ’spring-web’.
> > > > > >
> > > > > > Thanks,
> > > > > > Matt Pavlovich
> > > > > >
> > > > > > > On Apr 3, 2023, at 11:53 AM, Robbie Gemmell <
> > > > robbie.gemm...@gmail.com>
> > > > > > wrote:
> > > > > > >
> > > > > > > Though that was over 2 years ago, and at the time having the
> > separate
> > > > > > > -jakarta modules was probably the most obvious way to go given
> > very
> > > > > > > few were likely going to actually use those new modules at the
> > time,
> > > > > > > with the prior/existing stuff clearly still being the focus for
> > > > almost
> > > > > > > everyone, and thus making it harder to justify alternatives like
> > e.g
> > > > > > > maintaining separate branches for both spec impls back then. Now,
> > > > > > > usage will probably be a fair bit more bifurcated from newer
> > > > framework
> > > > > > > versions having updated to the new specs and various users either
> > > > > > > updating to use them or else just using them for any new dev
> > stuff,
> > > > > > > but still many users that dont update their stuff.
> > > > > > >
> > > > > > > More recently, I'd say most projects I see making similar
> > transitions
> > > > > > > are using their existing modules for the new specs just with a
> > new
> > > > > > > version, and if they want to support the old specs then doing so
> > by
> > > > > > > maintaining a previous version stream, having each stream be
> > targeted
> > > > > > > to one spec and 'fully tested'. That is what I chose to do for
> > > > > > > qpid-jms last year, and what I would currently choose if deciding
> > > > > > > again just now.
> > > > > > >
> > > > > > > On Mon, 3 Apr 2023 at 15:04, Justin Bertram <jbert...@apache.org
> > >
> > > > wrote:
> > > > > > >>
> > > > > > >> For what it's worth Artemis created new coordinates for the
> > Jakarta
> > > > > > modules
> > > > > > >> and left the existing ones the same. Folks who are migrating are
> > > > > > actually
> > > > > > >> touching their applications in most (if not all) circumstances.
> > It
> > > > makes
> > > > > > >> sense to require them to change the GAV.
> > > > > > >>
> > > > > > >> In my opinion folks who just want to upgrade their existing
> > (i.e.
> > > > javax)
> > > > > > >> systems shouldn't have to change anything but the version
> > number.
> > > > > > >>
> > > > > > >>
> > > > > > >> Justin
> > > > > > >>
> > > > > > >> On Mon, Apr 3, 2023 at 6:20 AM Christopher Shannon <
> > > > > > >> christopher.l.shan...@gmail.com> wrote:
> > > > > > >>
> > > > > > >>> Matt,
> > > > > > >>>
> > > > > > >>> My main concern with that is with new -javax modules everyone
> > has
> > > > to
> > > > > > change
> > > > > > >>> to new GAV and then they have to change GAV again if we drop
> > the
> > > > javax.
> > > > > > >>>
> > > > > > >>> But this might just be the way it is and users will have to
> > make
> > > > > > changes to
> > > > > > >>> their build that is more than just a version change.
> > > > > > >>>
> > > > > > >>> On Fri, Mar 31, 2023 at 2:17 PM Matt Pavlovich <
> > mattr...@gmail.com
> > > > >
> > > > > > wrote:
> > > > > > >>>
> > > > > > >>>> Hi Christopher-
> > > > > > >>>>
> > > > > > >>>> After taking yesterday to get most of the way through the
> > jakarta
> > > > > > >>>> conversion, I think we can go without the version gap.
> > > > > > >>>>
> > > > > > >>>> I think option #1 gives us the best approach. After a period
> > of
> > > > time
> > > > > > we
> > > > > > >>>> can just ‘drop’ the javax modules and not have to cause users
> > to
> > > > > > change
> > > > > > >>>> anything else back to have clean GAV coordinates.
> > > > > > >>>>
> > > > > > >>>> Thanks,
> > > > > > >>>> Matt Pavlovich
> > > > > > >>>>
> > > > > > >>>>> On Mar 30, 2023, at 3:49 PM, Christopher Shannon <
> > > > > > >>>> christopher.l.shan...@gmail.com> wrote:
> > > > > > >>>>>
> > > > > > >>>>> Thanks Matt for bringing this up. We definitely need to
> > figure
> > > > out a
> > > > > > >>> path
> > > > > > >>>>> forward as there is a lot of confusion about this still and
> > > > users are
> > > > > > >>>>> getting bit by it when trying to upgrade to Spring 6 and
> > Spring
> > > > boot
> > > > > > 3.
> > > > > > >>>>>
> > > > > > >>>>> Ultimately I think we will need to support both javax and
> > > > jakarta for
> > > > > > >>>> quite
> > > > > > >>>>> a while because while some users are going to want to use
> > newer
> > > > > > >>>>> technologies that require jakarta (like Spring 6 ) others
> > will be
> > > > > > happy
> > > > > > >>>> to
> > > > > > >>>>> stay on the old APIs for a while. So the question becomes
> > what
> > > > is the
> > > > > > >>>> best
> > > > > > >>>>> way to do that. I do think that some sort of repackaging is
> > > > probably
> > > > > > >>> the
> > > > > > >>>>> way to go like we did for the client but to do it for all the
> > > > > > relevant
> > > > > > >>>>> modules and release both.  We can keep 5.18.x as a long
> > running
> > > > > > branch
> > > > > > >>> to
> > > > > > >>>>> back port but it would still be nice if the latest worked for
> > > > either
> > > > > > >>> API
> > > > > > >>>>> (ie 5.19.x). I'm thinking more about it and we can probably
> > just
> > > > do
> > > > > > it
> > > > > > >>> in
> > > > > > >>>>> 5.19.x and don't need a gap version.
> > > > > > >>>>>
> > > > > > >>>>> I can see 3 ways to release both:
> > > > > > >>>>>
> > > > > > >>>>> *1) Create duplicate modules (like we did with  the client
> > for
> > > > > > jakarta
> > > > > > >>> in
> > > > > > >>>>> 5.18.x). *This works but means a lot of extra modules to
> > > > maintain but
> > > > > > >>> is
> > > > > > >>>>> probably the most flexible as you can do custom things in
> > each
> > > > module
> > > > > > >>>>> easily. We could create BOM files for people to use to
> > import the
> > > > > > right
> > > > > > >>>>> things to keep things consistent.
> > > > > > >>>>>
> > > > > > >>>>> <dependency>
> > > > > > >>>>> <groupId>org.apache.activemq</groupId>
> > > > > > >>>>> <artifactId>activemq-broker-javax</artifactId>
> > > > > > >>>>> <version>5.19.0</version>
> > > > > > >>>>> </dependency>
> > > > > > >>>>>
> > > > > > >>>>> <dependency>
> > > > > > >>>>> <groupId>org.apache.activemq</groupId>
> > > > > > >>>>> <artifactId>activemq-broker-jakarta</artifactId>
> > > > > > >>>>> <version>5.19.0</version>
> > > > > > >>>>> </dependency>
> > > > > > >>>>>
> > > > > > >>>>> *2) Don't add new modules, just keep the same ones but have
> > each
> > > > > > module
> > > > > > >>>>> build 2 jars using classifiers. *We could just have each
> > module
> > > > > > build 2
> > > > > > >>>>> jars and repackage.  My primary concern about sharing the
> > same
> > > > module
> > > > > > >>> for
> > > > > > >>>>> both APIs would be if the Jakarta API becomes different
> > enough
> > > > that
> > > > > > >>>>> repackaging doesn't work due to changes between it and javax
> > but
> > > > we
> > > > > > >>> might
> > > > > > >>>>> still be able to make this work by having each classified jar
> > > > only
> > > > > > pull
> > > > > > >>>> in
> > > > > > >>>>> certain things.
> > > > > > >>>>>
> > > > > > >>>>> <dependency>
> > > > > > >>>>> <groupId>org.apache.activemq</groupId>
> > > > > > >>>>> <artifactId>activemq-broker</artifactId>
> > > > > > >>>>> <version>5.19.0</version>
> > > > > > >>>>> <classifier>javax</classifier>
> > > > > > >>>>> </dependency>
> > > > > > >>>>>
> > > > > > >>>>> <dependency>
> > > > > > >>>>> <groupId>org.apache.activemq</groupId>
> > > > > > >>>>> <artifactId>activemq-broker</artifactId>
> > > > > > >>>>> <version>5.19.0</version>
> > > > > > >>>>> <classifier>jakarta</classifier>
> > > > > > >>>>> </dependency>
> > > > > > >>>>>
> > > > > > >>>>> *3) Just build with a different version (this is what Guava
> > does
> > > > with
> > > > > > >>> jre
> > > > > > >>>>> and android). *This is probably the most annoying as you
> > would
> > > > need
> > > > > > to
> > > > > > >>>>> re-package and then I guess use a different version when
> > > > building.
> > > > > > >>>>>
> > > > > > >>>>> <dependency>
> > > > > > >>>>> <groupId>org.apache.activemq</groupId>
> > > > > > >>>>> <artifactId>activemq-broker</artifactId>
> > > > > > >>>>> <version>5.19.0-javax</version>
> > > > > > >>>>> </dependency>
> > > > > > >>>>>
> > > > > > >>>>> <dependency>
> > > > > > >>>>> <groupId>org.apache.activemq</groupId>
> > > > > > >>>>> <artifactId>activemq-broker</artifactId>
> > > > > > >>>>> <version>5.19.0-jakarta</version>
> > > > > > >>>>> </dependency>
> > > > > > >>>>>
> > > > > > >>>>>
> > > > > > >>>>> On Thu, Mar 30, 2023 at 4:06 PM Endre Stølsvik <
> > > > en...@stolsvik.com>
> > > > > > >>>> wrote:
> > > > > > >>>>>
> > > > > > >>>>>> From a lurker position here, I just wanted to point out that
> > > > Jetty
> > > > > > is
> > > > > > >>>>>> evidently making a version 12 which will support both
> > javax. and
> > > > > > >>>> jakarta.
> > > > > > >>>>>> in the same server.
> > > > > > >>>>>> https://www.eclipse.org/jetty/download.php
> > > > > > >>>>>>
> > > > > > >>>>>> Kind regards,
> > > > > > >>>>>> Endre
> > > > > > >>>>>>
> > > > > > >>>>>>
> > > > > > >>>>>> On Thu, Mar 30, 2023 at 9:54 PM Jean-Baptiste Onofré <
> > > > > > j...@nanthrax.net
> > > > > > >>>>
> > > > > > >>>>>> wrote:
> > > > > > >>>>>>
> > > > > > >>>>>>> Hi,
> > > > > > >>>>>>>
> > > > > > >>>>>>> I agree with the plan but why not keep 5.19.0-SNAPSHOT on
> > main
> > > > ?
> > > > > > >>>>>>> We have the activemq-5.18.x branch already that could be
> > LTS
> > > > where
> > > > > > we
> > > > > > >>>>>>> keep javax namespace.
> > > > > > >>>>>>>
> > > > > > >>>>>>> Regards
> > > > > > >>>>>>> JB
> > > > > > >>>>>>>
> > > > > > >>>>>>> On Thu, Mar 30, 2023 at 7:54 PM Matt Pavlovich <
> > > > mattr...@gmail.com
> > > > > > >
> > > > > > >>>>>> wrote:
> > > > > > >>>>>>>>
> > > > > > >>>>>>>> Hello All-
> > > > > > >>>>>>>>
> > > > > > >>>>>>>> I started building a jakarta-based broker for ActiveMQ
> > 5.x and
> > > > > > >>> propose
> > > > > > >>>>>>> the following steps to manage the change.
> > > > > > >>>>>>>>
> > > > > > >>>>>>>> Background:
> > > > > > >>>>>>>>
> > > > > > >>>>>>>> Jakarta support in ActiveMQ 5.x is going to pull in JDK
> > 17,
> > > > Spring
> > > > > > >>> 6,
> > > > > > >>>>>>> Jakarta EE 9, Servlet 5.x, and Jetty 11. That is quite a
> > bit of
> > > > > > >>> change,
> > > > > > >>>>>> and
> > > > > > >>>>>>> I suggest we leave a ‘gap version’ in case we need to make
> > any
> > > > > > >>>>>> incremental
> > > > > > >>>>>>> updates to 5.18.x series along the way.
> > > > > > >>>>>>>>
> > > > > > >>>>>>>> 1. Rename main to 5.20.0-SNAPSHOT
> > > > > > >>>>>>>> 2. Commit broker-related jakarta, servlet, jetty, spring,
> > etc
> > > > > > >>> changes
> > > > > > >>>>>> to
> > > > > > >>>>>>> main
> > > > > > >>>>>>>> 3. Create new ‘-javax’ broker modules to support a
> > > > > > >>>>>>> apache-activemq-javax-5.20.0-bin.tar.gz package using
> > > > re-packaging
> > > > > > of
> > > > > > >>>> the
> > > > > > >>>>>>> jakarta artifacts.
> > > > > > >>>>>>>> 4. Leave 5.19.x as a ‘gap version’ in case it is needed
> > for
> > > > 5.18.x
> > > > > > >>>>>>> changes
> > > > > > >>>>>>>>
> > > > > > >>>>>>>> Thanks,
> > > > > > >>>>>>>> Matt Pavlovich
> > > > > > >>>>>>>
> > > > > > >>>>>>
> > > > > > >>>>
> > > > > > >>>>
> > > > > > >>>
> > > > > >
> > > > > >
> > > >
> >

Reply via email to