/jmolecules-integrations

Technology integration for jMolecules

Primary LanguageJavaApache License 2.0Apache-2.0

jMolecules — Technology integrations

This repository contains a variety of integrations of jMolecules abstractions into different technologies.

Supported technologies

  • jmolecules-archunit — ArchUnit rules that verify the aggregate structures in your model.

  • jmolecules-bytebuddy — A ByteBuddy plugin to translate jMolecules patterns implemented in jmolecules-ddd into different technologies. See the example for details.

    • Spring — translates jMolecules annotations like @Service etc. into the Spring equivalents so that the annotated classes can be used out of the box with Spring.

    • JPA — translates jmolecules-ddd annotations and interfaces into default mapping annotations and boilerplate code required by JPA.

  • jmolecules-spring — Runtime library to make concepts from jmolecules-ddd work with Spring out of the box.

    • Converter implementations that convert primitives (String, UUID) into Identifier implementations if they expose a static factory method of(…) and back into their inner value by calling the corresponding getter.

    • Spring Boot auto-configuration to transparently register those converters in Spring MVC applications.

    • AssociationResolver<T> to be used with Spring Data repositories to easily resolve Association instances.

  • jmolecules-jackson — Runtime library to make concepts from jmolecules-ddd work with Jackson out of the box.

    • A Jackson module to tweak the serialization of single attribute @ValueObject and Identifier instances to (de)serializes (from) as their wrapped instances.

    • Spring Boot auto-configuration to transparently register the module with Jackson in Spring Boot applications.

Developer information

Release instructions

  • mvn release:prepare \ -DreleaseVersion="$version" \ -DdevelopmentVersion="$versionNext" \ -DscmReleaseCommitComment="$ticketId - Release version $version." \ -DscmDevelopmentCommitComment="$ticketId - Prepare next development iteration." \ -Dtag="$version"

  • mvn release:perform