Hi Servicemix Users,

triggered by a providers update of tibco JMS we're looking into getting JMS
2.0 running in the container. Currently camel-jms, spring-jms and activemq
(plus camel-activemq) all run on JMS 1.1 api provided
by org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 (I will come back
to this). Looking at Camel there will be JMS 2.0 support with camel-sjms (
https://issues.apache.org/jira/browse/CAMEL-9508) but feature still
requires JMS 1.1 api.

We have a custom in-house camel jms component based on previous ServiceMix
3.4 binding component and I looked into upgrading it to use JMS 2.0. I
started by deploying javax.jms/javax.jms-api/2.0.1 and this leads to major
issues in the container. The initial resolution is fine but upon container
restart, all ServiceMix provided ActiveMQ and Camel-JMS related bundles go
into "INSTALLED" state. This left me puzzled until I saw that geronimo-jms
spec declares Import-Package javax.jms;version="1.1" which is interpreted
as right-open range (version="[1.1,]"). As a result it imports and
re-exports javax.jms version 2.0 provided by the separate API bundle. I
think this breaks modularity and prevents me from running multiple jms apis
and providers. Is this intended or a bug of the geronimo jms bundle
configuration?

Thanks and Best Regards,
Michael

Reply via email to