mats3 0.19.9-2023-05-04 API
Package
Description
API for Mats3: Message-based Asynchronous Transactional Staged Stateless Services.
Extension to the
Mats3 API
which adds interception capabilities - all operations for
initiation and stage processing can be intercepted.Java Message Service v1.1 (JMS v1.1) implementation of the
Mats3 API
and
Mats3 Intercept API
.Mats3 interceptor for structured logging over SLF4J, adding several data points using the SLF4J MDC for
each initiation, message receive and message send - consists of a single class
MatsMetricsLoggingInterceptor
, for which the JMS
implementation has special support in that if it resides on the classpath, it will autoinstall.Mats3 interceptor adding metrics gathering using Spring's Micrometer solution - consists of a single class
MatsMicrometerInterceptor
, for which the JMS
implementation has special support in that if it resides on the classpath, it will autoinstall.Mats3 tool that can output an embeddable HTML describing a MatsFactory and all its endpoints, as well as
"local statistics", gathered using a Mats Interceptor.
Mats3 wire format solution called "MatsTrace", which defines a set of parameters and structures sufficient
to represent an envelope carrying Mats messages, as well as a deser-interface "MatsSerializer" which defines methods
between MatsTrace and byte arrays - Employed by the Mats3 JMS Implementation.
An implementation of
MatsTrace
which uses short-named fields to carry all the
needed information - meant to be field-serialized using for example Jackson.Mats3 MatsSerializer implementation using Jackson to serialize between MatsTraceStringImpl and byte
arrays - Employed by the Mats3 JMS Implementation.
Mats3 Spring integration ("SpringConfig"), supplying a set of annotations including
@EnableMats
to enable bean scanning for
@MatsMapping
and @MatsClassMapping
annotations, simplifying use of Mats3 in a Spring context.Tooling for handling your application's configuration of a JMS
ConnectionFactory
in different scenarios (development, testing, staging, production) - best explained in the class doc of
ScenarioConnectionFactoryProducer
- do
note that this should not be the first thing you delve into when trying out Mats!Implementation of JMS Mats's
JmsMatsTransactionManager
employing
Spring's TransactionManager
for the data source aspect.Mats3 Spring-specific testing tools, for quickly firing up a test-harness using either JUnit or Jupiter
(JUnit 5) - read class doc of
MatsTestContext
and
MatsTestInfrastructureConfiguration
.Contains a set of helpful tools for testing:
MatsTestBrokerInterface
to
get DLQ'ed messages, MatsTestHelp
for creation of relevant ids,
MatsTestLatch
for a simple tool to synchronize between the test method and the
async Mats endpoints, and TestH2DataSource
which is a small wrapper around H2
to create a database with a test table - mainly used by the API Tests to verify SQL transactions.Common code for the modules 'mats-test-junit' and 'mats-test-jupiter' - These abstract classes should not be used
directly, but rather utilized through the mentioned implementations.
Tool for creating a MQ Broker to easily create a MatsFactory backed by an in-vm MQ Broker, employed by several of the
other Mats testing tools - by default uses Apache ActiveMQ, but may be directed to use Apache Artemis instead, or
to use an external ActiveMQ or Artemis broker.
Mats3 testing tools for JUnit 4.
Mats3 testing tools for Jupiter (JUnit 5).
Mats3 Utilities - notably the MatsFuturizer, which provides a bridge from synchronous processes to the
highly asynchronous Mats^3 services.
Wrappers for
JMS ConnectionFactory
and JDBC
DataSource
- with a special "deferred connection proxy" wrapper which is smart to use as underlying DataSource for
the SQL-oriented JmsMatsTransactionManager
s, as it elides transactions if the connection is not actually
employed within an initiation or stage processing.