A Java framework to support applications utilising CQRS and Event Sourcing architectures.
- 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.
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
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
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 the install-dependencies.sh script from the microservice_framework directory. This will checkout and install the required versions of each project.
./install-dependencies.sh
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