I started looking at the Openwire generator issues and the biggest problem
is the use of a super ancient library for things like javadoc parsing which
no longer works on JDK 11+ https://github.com/codehaus/annogen

The entire doclet API was changed so we would need to update the openwire
generator to replace that library which would require a substantial rewrite
or we would need to fix that library. Based on what I am seeing I think
fixing the Openwire generator code might be a longer term task depending on
how bad the changes are.

The generator should still work with JDK 8 so if it's going to take a long
time to fix we may need to generate a new Openwire version in an older 5.x
branch using JDK 8 and then just copy the generated code to the new
versions.

On Mon, Dec 4, 2023 at 1:51 PM Matt Pavlovich <mattr...@gmail.com> wrote:

> Hi Chris-
>
> My comments in-line below. For the most part, I agree in full. Any of the
> work that we can break up into minor or patch releases would be good from
> the standpoint of getting some runtime of all the changes under our belt
> before rolling out the major breaking change parts.
>
> > On Dec 4, 2023, at 6:57 AM, Christopher Shannon <
> christopher.l.shan...@gmail.com> wrote:
> >
> > We can have a roadmap and targets for things but the main thing I'm
> pushing
> > back on is having firm dates as there is a lot of unknown. There is a lot
> > of work left to do and it will take time to get things correct. We don't
> > want to have a rushed/bad implementation that is buggy.
>
> Agreed. I think getting the three other JMS 2.0 impl features are fairly
> straight-forward, and getting those out would allow them to bake-in a bit
> while we sort out Shared Durable Topic Subscription (SDTS) support.
>
> > For one thing, if we are going to add support for shared subscriptions
> and
> > shared durables we need an actual design to implement it as there's more
> > than one way it could be done.
> >
> > One approach I have been thinking about is the following and some of the
> > things off the top of my head that need to be done. There's probably a
> lot
> > more I'm not thinking of that would come up as working on it.
> >
> >   1. New openwire version that supports new commands for a shared topic
> >   consumer and shared durable consumer. We need to fix the openwire
> generator
> >   first and also fix the CVE in it for generated code.
>
> Agree. We need to clean-up openwire generator (and probably re-home
> kahadb-proto) for JDK, modernization and just ease of maintenance.
>
> >   2. Client changes to support the new commands and properly creating
> >   consumers
>
> Yep.
>
> >   3. Some way to map the shared subscriptions. As previously discussed,
> >   since shared subs can be implemented with queues, we can leverage the
> fact
> >   that the broker already supports Virtual topics and composite
> destinations.
> >   I think a good approach would be to have a new VT namespace that is
> >   dedicated just to shared subscriptions. When a user creates a shared
> sub
> >   with the new command we can then behind the scenes in the broker
> generate a
> >   virtual topic that maps to the new shared sub name and virtual topic
> queue
> >   using the namespace. Since it is a special namespace then on recovery
> we
> >   could detect the virtual topic is a shared subscription and recover
> things
> >   correctly.
>
> The subName+clientId may be stored in the ‘id’ field of the Virtual Topic—
> similar to how it’s done with the optional MQTT mapping. But yeah, a full
> deep-dive and analysis is warranted.
>
> >   4. We probably need to make some enhancements to virtual topic support.
> >   It may work out of the box bu I'm not sure. The good news is we
> shouldn't
> >   need any other special stuff in KahaDB or elsewhere in the code if we
> can
> >   just re-use Virtual topics.
>
> Yep, also— standardizing some of the Virtual Destination behaviors would
> be good. For example, Composite Queue/Topic doesn’t support the transaction
> fan-out when the ack mode is non-transacted.
>
> >   5. All of the rules in the spec need to be validated
> >   which will take work to get right. There are a lot of rules to enforce
> with
> >   the API that we will need to check broker side which is non trivial.
> For
> >   example, "A shared durable subscription and an unshared durable
> >   subscription may not have the same name and client identifier (if
> set). If
> >   an unshared durable subscription already exists with the same name and
> >   client identifier (if set) then a JMSRuntimeException is thrown."
>
> Also— network consumers always throw topics for a curve.
>
> >   6. We need to decide if other protocols will map as well...are we
> >   supporting MQTT/AMQP/STOMP ? If so, how are they going to map shared
> subs?
>
>
> >   7. We probably need new metrics/monitoring of things.
>
> Yes. +1
>
> >   8. We of course will need a lot of testing to verify all the new
> >   behavior works which will be a good amount of work.
>
> Yep.
>
> Thanks,
> Matt
>
>
> > On Mon, Dec 4, 2023 at 7:23 AM Jean-Baptiste Onofré <j...@nanthrax.net>
> wrote:
> >
> >> Ok. But in that case, can we target SMX 7 with full JMS 2 support ?
> >>
> >> I think it’s important to have a kind of roadmap.
> >>
> >> So let’s use 6.x for incremental work and 7 when complete (without
> strong
> >> commitment on date).
> >>
> >> Regards
> >> JB
> >>
> >> Le lun. 4 déc. 2023 à 13:18, Christopher Shannon <
> >> christopher.l.shan...@gmail.com> a écrit :
> >>
> >>> I don't see how we can release shared subscription support for 6.1.0 at
> >>> this point. We haven't even come up with a plan of how we are going to
> >>> implement it. There's multiple ways it could be done and probably
> >> requires
> >>> protocol changes. We have to decide how much work is done by the broker
> >> and
> >>> where.
> >>>
> >>> On Mon, Dec 4, 2023 at 2:18 AM Jean-Baptiste Onofré <j...@nanthrax.net>
> >>> wrote:
> >>>
> >>>> I think it would better to complete JMS 2 in 6.1.0 including shared
> >> topic
> >>>> subscriptions.
> >>>> We already did 6.0.x with partial JMS 2 support, which is so so from
> >> user
> >>>> perspective.
> >>>>
> >>>> I would prefer to wait few weeks for 6.1.0 to give us time to complete
> >>> JMS
> >>>> 2.
> >>>>
> >>>> Regards
> >>>> JB
> >>>>
> >>>> Le lun. 4 déc. 2023 à 07:52, Matt Pavlovich <mattr...@gmail.com> a
> >>> écrit :
> >>>>
> >>>>> Hey JB --
> >>>>>
> >>>>> These JMS 2.0 features are planned for v6.1.0:
> >>>>>
> >>>>> AMQ-8464 PR #1046 6.1.0, 5.18.x  JMSConsumer .receiveBody(Class)
> >>> methods
> >>>>> AMQ-8320 PR #982   6.1.0, 5.18.x  Delivery Delay Support for Message
> >>>>> DeliveryDelay feature
> >>>>> AMQ-8324 PR #1045 6.1.0, 5.18.x  JMSProducer features Completion
> >>> Listener
> >>>>> async send support
> >>>>>
> >>>>> This would just leave Shared Topic Subscriptions, which is currently
> >>>>> planned for v6.2.0.
> >>>>>
> >>>>> AMQ-8323  6.2.0, 5.18.x  Shared Topic Consumer Multi-consumer
> >>>> (queue-like)
> >>>>> consuming from topic subscriptions
> >>>>>
> >>>>> Reference:
> >>>>> https://activemq.apache.org/jms2
> >>>>>
> >>>>> I think this would work well, since we have Virtual Topic support
> >>> (which
> >>>>> is better anyway).
> >>>>>
> >>>>> Thanks,
> >>>>> Matt
> >>>>>
> >>>>>
> >>>>>> On Dec 2, 2023, at 11:00 PM, Jean-Baptiste Onofré <j...@nanthrax.net
> >>>
> >>>>> wrote:
> >>>>>>
> >>>>>> Hi
> >>>>>>
> >>>>>> I think it's really important to focus on JMS 2 complete impl for
> >>>> 6.1.0.
> >>>>>> That's the most important.
> >>>>>>
> >>>>>> I started to work on some impl, a couple are a little longer to
> >> impl,
> >>>>>> require tests etc.
> >>>>>> I don't think early January is reasonable. I would rather try at
> >> the
> >>>>>> end of January.
> >>>>>>
> >>>>>> I would rather:
> >>>>>> 1. Focus on 6.0.2 for fixes (I'm preparing 5.18.x/5.17.x too as
> >> they
> >>>>>> include fixes as well)
> >>>>>> 2. Focus on 6.1.0 to complete JMS 2.x support. That's probably the
> >>>>>> most important (honestly, I'm not a big fan of JMS 2.x support in
> >>>>>> ActiveMQ 6.0.x, it could be confusing for users).
> >>>>>>
> >>>>>> Regards
> >>>>>> JB
> >>>>>>
> >>>>>> On Sat, Dec 2, 2023 at 4:10 PM Matt Pavlovich <mattr...@gmail.com>
> >>>>> wrote:
> >>>>>>>
> >>>>>>> All-
> >>>>>>>
> >>>>>>> I’ve started organizing some JIRAs for v6.1.0. I’m thinking
> >>>>> early-January for release target timeframe.
> >>>>>>>
> >>>>>>> - Additional JMS 2.0 impls
> >>>>>>> - New features for observability
> >>>>>>> - Code base modernization
> >>>>>>>
> >>>>>>> Thanks!
> >>>>>>> Matt Pavlovich
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>
> >>
>
>

Reply via email to