Re: [PROPOSAL] Jakarta approach for ActiveMQ 5.x broker

2023-03-30 Thread Christopher Shannon
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.


  org.apache.activemq
  activemq-broker-javax
  5.19.0



  org.apache.activemq
  activemq-broker-jakarta
  5.19.0


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


  org.apache.activemq
  activemq-broker
  5.19.0
  javax



  org.apache.activemq
  activemq-broker
  5.19.0
  jakarta


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


  org.apache.activemq
  activemq-broker
  5.19.0-javax



  org.apache.activemq
  activemq-broker
  5.19.0-jakarta



On Thu, Mar 30, 2023 at 4:06 PM Endre Stølsvik  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é 
> 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 
> 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
> >
>


Re: [PROPOSAL] Jakarta approach for ActiveMQ 5.x broker

2023-03-30 Thread Endre Stølsvik
>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é 
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  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
>


Re: [PROPOSAL] Jakarta approach for ActiveMQ 5.x broker

2023-03-30 Thread Jean-Baptiste Onofré
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  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


[PROPOSAL] Jakarta approach for ActiveMQ 5.x broker

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