Aggregator service will to listen to a Message Queue, parse the JSON messages to Products and and saves them to the database. Also tracks if the Product is newly added or updated.
To be used together with the Importer service.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
JDK 11 and Maven or Docker is required to run this project.
Build and run the project with Maven:
mvn package
mvn spring-boot:run
Use the following docker-compose to run the full project:
version: '3'
services:
activemq:
container_name: activemq
image: vromero/activemq-artemis
ports:
- "8161:8161"
- "61616:61616"
importer:
image: sergiopoliveira/importer
ports:
- "5050:5050"
depends_on:
- activemq
aggregator:
image: sergiopoliveira/aggregator
ports:
- "5051:5051"
depends_on:
- activemq
zipkin:
image: openzipkin/zipkin
ports:
- "9411:9411"
http://localhost:5051/api/v1/products -> List all products in the database
http://localhost:5051/api/v1/statistics/daily -> Get daily statistics for Products inserted or updated
Tests created using JUnit and Mockito. Run them as:
mvn test
- Java 11
- Spring Boot
- Spring Data JPA
- ActiveMQ
- MapStruct
- Maven
- JUnit, Mockito
- H2 in-memory database
- Sérgio Oliveira - sergiopoliveira
This project is licensed under the MIT License - see the LICENSE.md file for details