Microservice Framework
A Java framework to support applications utilising CQRS and Event Sourcing architectures.
Modules
- adapters - Supports incoming requests from REST and JMS clients. Adapts requests to the internal framework representation (JSON envelope)
- clients - Support outgoing REST/HTTP requests to application components/external services
- common - Shared utility classes
- components - Base for application components
- core - Core framework logic
- domain - Framework domain classes
- event-sourcing - Event sourcing implementation
- example-context - Example applicating based on the framework
- messaging-core - Internal messaging representations
- messaging-jms - Communication with JMS queues/topics
- metrics - Support for health checks in application components
- persistence - Support for persistence layer, such as deltaspike.
Integration Tests
The Integraion Tests expect a running Postgres database, with the correct users and databases configured. The integration tests can be skipped if no local Postgres database is installed
To run with the Integration Tests then your postgress should be configured so, with the folowing user:
Parameter | Vaule |
---|---|
host | localhost |
port | 5432 |
username | framework |
password | framework |
You will then need to create three databases owned by the new framework user:
- frameworkeventstore
- frameworkviewstore
- frameworkfilestore
Skipping Integration Tests
If you do not have access to a local posgres database then the Integration Tests can be skipped. To skip, set the following property when running Maven:
mvn clean install -Drun.it=false
How to build and deploy locally without access to build repository
Project dependencies
Clone the following CJSCommonPlatform projects into the same directory level:
- maven-super-pom
- maven-parent-pom
- maven-common-bom
- maven-common
- raml-maven
- embedded-artemis
- maven-framework-parent-pom
- test-utils
- utilities
- file-service
- json-schema
- microservice_framework
Run dependency installation script
Run the install-dependencies.sh script from the microservice_framework directory. This will checkout and install the required versions of each project.
./install-dependencies.sh
Finally build and verify the Microservice Framework.
mvn clean verify
Note: this will run the integration tests that require a running Postgres DB
mvn clean verify -Drun.it=false
Note: this will run only the unit tests of the project