Search code examples
spring-bootapache-camel

Camel-jms-starter includes two different versions of the geronimo-jms specification


When I include org.apache.camel.springboot:camel-jms-starter:3.20.2 I get two version of the geronimo JMS spec

  • org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1 (included by camel-jms-starter)
  • org.apache.geronimo.specs:geronimo-jms_2.0_spec:1.0-alpha-2 (included by camel-jms)

isn't that an error in the camel-jms-starter or is it by design, and I should just exclude the version I don't need?


Solution

  • I would say that that is definitely an error. Obviously, this risks getting JMS interface classes from two different jar files.

    The JMS 2.0 specification states that and JMS 1.X implementation or application has to be able to run without modification with the JMS 2.0 specification. I would exclude the JMS 1 specification. You will be able to run with either a JMS 1.X implementation or a JMS 2 implementation.

    If you are using a JMS 2 implementation (and are using JMS 2 features) then you will obviously need the JMS 2 specification jar file.