There is a org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory
and a org.apache.activemq.ActiveMQConnectionFactory
. If I am upgrading to an ActiveMQ Artemis broker, my understanding is that I don't necessarily have to upgrade clients to use the Artemis factory (classic will work) based on this question. But what advantages does the new class have?
The JMS implementations shipped with ActiveMQ Artemis and ActiveMQ Classic are 100% different so there are lots of differences in the details, but I'll focus on the broad differences here...
The ActiveMQ Artemis JMS client fully implements JMS 1.1, 2.0 as well as Jakarta Messaging 3.0 & 3.1. It uses the "core" protocol which has a very compact wire format and was designed for high performance. It provides a client-side JNDI implementation. It can only be used with ActiveMQ Artemis.
ActiveMQ Classic JMS client only fully implements JMS 1.1 and partially implements JMS 2.0 and Jakarta Messaging 3.0 & 3.1. It uses the "OpenWire" protocol. It also provides a client-side JNDI implementation. It can be used with ActiveMQ Classic and ActiveMQ Artemis.