Package io.mats3.impl.jms
package io.mats3.impl.jms
Java Message Service v1.1 (JMS v1.1) implementation of the
Mats3 API
and
Mats3 Intercept API
.
The JMS v2.0 API is a superset of JMS v1.1. This implementation has run in production for a substantial financial
system since ~2018 on ActiveMQ (which implements JMS v1.1), but all tests are run for Artemis too (which implements
JMS v2.0).-
ClassDescriptionJmsMatsEndpoint<R,
S, Z> The JMS implementation ofMatsEndpoint
.Base class for Exceptions thrown around in the JMS implementation of Mats.Thrown if anything goes haywire with the backend implementation, e.g.If we get "stack overflow" or "call overflow", then the sending method will throw this.Thrown if a undeclared checked exception propagates out of the user-supplied lambda.This is an internal context object, for execution of initiations and stage processing in JMS-Mats - one instance is made per initiation and per message reception.Interface for implementing JMS Connection and JMS Session handling.Pooling implementation ofJmsMatsJmsSessionHandler
- uponcreation
, you decide how Connections are shared forJmsMatsStageProcessor
s andMatsInitiator
s.What kind of sharing of JMS Connections to employ for aJmsMatsInitiator
.What kind of sharing of JMS Connections to employ for aJmsMatsStageProcessor
.A dead simple implementation ofJmsMatsJmsSessionHandler
which does nothing of pooling nor connection sharing.A "sidecar object" for the JMS Session, so that additional stuff can be bound to it.Holds the entire contents of a "Mats Message" - so that it can be sent later.Some small specifics for the underlying JMS Implementation.JmsMatsProcessContext<R,S, Z> The JMS Mats implementation ofMatsEndpoint.ProcessContext
.JmsMatsStage<R,S, I, Z> The JMS implementation ofMatsStage
.Common "static" stash, hacked up as an interface to be implemented if you need it.Transactional aspects of the JMS Mats implementation.Implementation ofJmsMatsTransactionManager
handling only JMS (getting Connections, and creating Sessions), doing all transactional handling "native", i.e.TheJmsMatsTransactionManager.TransactionContext
implementation forJmsMatsTransactionManager_Jms
.Implementation ofJmsMatsTransactionManager
that in addition to the JMS transaction also handles a JDBC SQLConnection
(using only pure java, i.e.TheJmsMatsTransactionManager.TransactionContext
-implementation forJmsMatsTransactionManager_Jms
.Raised if commit or rollback of the SQL Connection failed.Provided togetTransactionContext(...)
when a Mats-component fetches the TransactionContext implementation.The lambda that is provided to theJmsMatsTransactionManager
for it to provide transactional demarcation around.Implementors shall do the transactional processing and handle any Throwable that comes out of theJmsMatsTransactionManager.ProcessingLambda
by rolling back.