Skip to content

jexxa-projects/JexxaAdapters

Repository files navigation

Maven CentralLicense

Maven Build CodeQL

Jexxa Adapters

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 libraries
  • common-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

Requirements

  • Java 17+ installed
  • IDE with maven support

Use the library

Add dependencies

Maven:

<dependencies>
    <dependency>
        <groupId>io.jexxa.common</groupId>
        <artifactId>common-adapters</artifactId>
        <version>2.0.3</version>
    </dependency>
</dependencies>

Gradle:

compile "io.jexxa.common:common-adapters:2.0.3"

Examples

To see how to use this library, please refer to:

Build the library

This section describes how to build the library by yourself, if you want to contribute.

Requirements

  • A locally running developer stack providing a Postgres database, and ActiveMQ broker

Build

  • Checkout the new project in your favorite IDE

  • Without running integration tests:

    mvn clean install 

Contributing

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.

Copyright and license

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.