Updating 5.16.x to have one of the suggested fixes, seems to be a 
straight-forward and simple solution to this issue. While unfortunate, I don’t 
think we should revert given there have already been a couple of 5.16.x 
releases since then.

While unfortunate that Art got caught up in the change, IMO this is a pretty 
narrow use case.

-Matt

> On Jun 21, 2022, at 9:07 AM, Robbie Gemmell <robbie.gemm...@gmail.com> wrote:
> 
> The obvious "why not" answer would be however easy it is, its perhaps
> not so obvious to people, and it certainly doesnt seem like it should
> be necessary. Those with things which only use JMS 1.1 and previously
> worked with <=5.16.2 (its not just 5.15.x upgraders affected) would
> not typically expect to be broken by a simple update to using 5.16.3+,
> or to necessarily understand they can work around the feature problem
> by using the JMS 2 spec when their stuff isnt using that and they are
> still clearly using a client implementing 1.1.
> 
> If having both versions provided is possible, fixes simple upgrades
> for all the existing JMS 1.1 users on <= 5.16.2, and still allows
> those already working with JMS 2 to use it as now, then that would
> seem a reasonable middle ground. The spec jar isnt exactly a monstrous
> overhead after all, especially not compared to the client feature
> already supplying [most of] the broker etc.
> 
> Or, you suggested earlier what would happen currently is it would only
> use/supply 2.0 unless something provided 1.1 first. Can it do the
> reverse, i.e can it provide 1.1 as it did before but still allow for
> using 2 if already supplied, falling back to using its provided 1.1 if
> they dont?
> 
> 
> On Tue, 21 Jun 2022 at 14:01, Jean-Baptiste Onofré <j...@nanthrax.net> wrote:
>> 
>> OK, now I understand the confusion:
>> 
>> Karaf activemq-client feature uses activemq-osgi bundle, not
>> activemq-client bundle. The activemq-client bundle is not used at all
>> in the Karaf features: we use the activemq-osgi uber bundle.
>> 
>> So, if a user uses activemq-client bundle (without the feature), it
>> will have to install geronimo-spec-jms 1.1 bundle:but nothing changed
>> there, it's as it was before.
>> 
>> Now, strictly speaking of the activemq-client karaf feature, it's fine
>> as it uses activemq-osgi bundle, with the javax.jms,version="[1.1,3)"
>> range.
>> 
>> Regarding Art's issue, the problem is that activemq-client karaf
>> feature provides JMS 2.0 by default, but Art's bundle still import
>> [1.1,2) (not [1.1,3)).
>> 
>> I see three options here:
>> 1. Art can fix his bundles header to use the extended range [1.1,3).
>> 2. The user who wants to still use JMS 1.1, they can stay with ActiveMQ 
>> 5.15.x
>> 3. The user who wants to still use JMS 1.1, we can add geronimo-spec
>> jms 1.1 in activemq-client karaf feature, meaning that we will have
>> both JMS 1.1 and 2.0 packages at runtime.
>> 
>> Honestly, why not extending the range, easy to do and it works fine
>> (it's what Karaf and Camel are using) ?
>> 
>> Regards
>> JB
>> 
>> 
>> 
>> 
>> 
>> 
>> On Tue, Jun 21, 2022 at 1:53 PM Jean-Baptiste Onofré <j...@nanthrax.net> 
>> wrote:
>>> 
>>> I tested at runtime on activemq-osgi bundle used by activemq-client.
>>> 
>>> The feature verify would not work with this range.
>>> 
>>> Let me take a look but I doubt it's the case.
>>> 
>>> On Tue, Jun 21, 2022 at 11:53 AM Robbie Gemmell
>>> <robbie.gemm...@gmail.com> wrote:
>>>> 
>>>> The javax.jms; version="[1.1,2)" value I quoted was directly from the
>>>> Import-Package manifest entry of the 5.16.3 and 5.16.5 activemq-client
>>>> jars on maven central. On checking 5.17.1 it lists the same.
>>>> 
>>>> On Tue, 21 Jun 2022 at 09:56, Jean-Baptiste Onofré <j...@nanthrax.net> 
>>>> wrote:
>>>>> 
>>>>> activemq-client 5.16.3 does use the right range:
>>>>> 
>>>>>   javax.jms;version="[1.1,3)",
>>>>> 
>>>>> Else it won't work.
>>>>> 
>>>>> And by the way, before the change, I sent a couple of messages on the
>>>>> mailing list as a discussion thread.
>>>>> 
>>>>> Regards
>>>>> JB
>>>>> 
>>>>> On Tue, Jun 21, 2022 at 10:37 AM Robbie Gemmell
>>>>> <robbie.gemm...@gmail.com> wrote:
>>>>>> 
>>>>>> I believe the 5.16.x client doesnt have the below, instead saying:
>>>>>>    javax.jms; version="[1.1,2)"
>>>>>> despite the Feature only supplying the 2.0 version which appears
>>>>>> incompatible with this. Maybe thats whats tripping Art's usage up
>>>>>> since he was clearly using <= 5.16.2 before?
>>>>>> 
>>>>>> On Tue, 21 Jun 2022 at 09:24, Jean-Baptiste Onofré <j...@nanthrax.net> 
>>>>>> wrote:
>>>>>>> 
>>>>>>> By the way, you can see in activemq-client:
>>>>>>> 
>>>>>>>    javax.jms;version="[1.1,3)",
>>>>>>> 
>>>>>>> So:
>>>>>>> 1. if your application uses the same range, it works
>>>>>>> 2. if your application use [1.1,2), than, simple add javax.jms
>>>>>>> (geronimo) 1.1 bundle
>>>>>>> 
>>>>>>> Regards
>>>>>>> JB
>>>>>>> 
>>>>>>> On Mon, Jun 20, 2022 at 7:45 PM Arthur Naseef <a...@amlinv.com> wrote:
>>>>>>>> 
>>>>>>>> I created the following ticket to address applications failing to load 
>>>>>>>> into
>>>>>>>> Karaf with AMQ 5.16.3 - 5.17.1 due to an incompatible change in the
>>>>>>>> activemq-client feature.
>>>>>>>> 
>>>>>>>> https://issues.apache.org/jira/browse/AMQ-8971
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Looks to me like the right fix here is to revert the change to the JMS 
>>>>>>>> 1.1
>>>>>>>> spec in the feature because all of the AMQ internals are still 100% on 
>>>>>>>> the
>>>>>>>> JMS 1.1 spec.  The maven-bundle-plugin for client applications is 
>>>>>>>> doing the
>>>>>>>> right thing by generating "Package-Import" lines with version range
>>>>>>>> "1.1,2.0)", but the feature doesn't match it.
>>>>>>>> 
>>>>>>>> It seems we have sacrificed the core case to solve an edge case.
>>>>>>>> 
>>>>>>>> Thoughts?
>>>>>>>> 
>>>>>>>> Art

Reply via email to