centiservice / mats3

Mats3: Message-based Asynchronous Transactional Staged Stateless Services
https://mats3.io/
Other
63 stars 7 forks source link

Upgrade to JMS 2.0.3 and latest versions of ActiveMQ and Artemis #82

Closed stolsvik closed 1 year ago

stolsvik commented 1 year ago

Mats3 JMS implementation currently revolves around ActiveMQ and Artemis. We want these versions to be latest.

However, these also use the newer Jakarta-named, javax.jms-packaged JMS API 2.0.3.

Mats3 have traditionally been built with JMS 1.1, so as to not exclude ActiveMQ - and we do not need the features of JMS 2.0 either (the "simplified" API is just annoying - too simple). However, since ActiveMQ also have moved up to JMS 2.0, we now have little reason to keep this old dependency - there are, AFAIK, no MQ left in the world only implementing JMS 1.1.

By same rationale as for going from Java8 to Java11, we leave this "older dependency"-feature behind.

From #80, we do not expose which specific JMS API is in use - this is left to the user, he must provide one. The current options then are the javax.jms JMS API v2.0, and the jakarta.jms JMS API v2.0.3 (still using javax.jms package namespace). For testing, the 'mats-test' module provides 'implementation' dependencies to ActiveMQ and Artemis clients, which both employ the jakarta.jms JMS 2.0.3.

Note: We won't be using JMS 2.0 features.