When I include org.apache.camel.springboot:camel-jms-starter:3.20.2 I get two version of the geronimo JMS spec
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?
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.