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