This project contains common technology adapters used by the Jexxa and JLegMed framework. These adapters are based on typical microservices and messaging patterns to simplify implementing microservices.
adapter-api
: This library provides a unified API for using adapters and is used by all following librariescommon-adapters
: This library provides the following microservice and messaging patterns:- Repository that isolates the data layer from the rest of the app on object/entity level
- Transactional Outbox Pattern to atomically update the database and send messages to a message broker when 2FC is not an option
- Idempotent Consumer to handle duplicate messages correctly
- Facade to Java JDBC and JMS API to simplify the implementation of additional adapters
- Java 17+ installed
- IDE with maven support
Maven:
<dependencies>
<dependency>
<groupId>io.jexxa.common</groupId>
<artifactId>common-adapters</artifactId>
<version>2.1.2</version>
</dependency>
</dependencies>
Gradle:
compile "io.jexxa.common:common-adapters:2.1.2"
To see how to use this library, please refer to:
This section describes how to build the library by yourself, if you want to contribute.
- A locally running developer stack providing a Postgres database, and ActiveMQ broker
-
Checkout the new project in your favorite IDE
-
Without running integration tests:
mvn clean install
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
Code and documentation copyright 2023–2024 Michael Repplinger. Code released under the Apache 2.0 License(see TLDR legal for details). Docs released under Creative Commons.