Roman Numerals Reference: https://www.britannica.com/topic/Roman-numeral
Java Versions Supported:
Java SDK 11
Servers Supported:
Netty Embedded Server
Frameworks:
Spring Boot 2.5.+
Logging:
Slf4J with Logback
Build Tool:
Gradle Wrapper 7.1.1
Others:
Project Lombok
Annotation Processor, Intellij
IDE for development
Testing:
Spring Boot
testing with JUnit
Containerization:
Docker
with Docker Compose
Log aggregation:
Elasticsearch
, Logstash
, Kibana
and Beats
Metrics and Monitoring:
Prometheus
and Grafana
git clone https://github.com/rajvimalc/adobe-roman-numerals.git
cd adobe-roman-numerals
Gradle Wrapper build command:
Creates adobe-roman-numerals-{version}.jar
file at \build\libs
which can be run as executable jar.
Windows: .\gradlew clean build
Linux/Mac: ./gradlew clean build
Run the executable jar as:
Windows: java -jar -Dspring.profiles.active=prod .\build\libs\adobe-roman-numerals-1.0.0.jar
Linux/Mac: java -jar -Dspring.profiles.active=prod ./build/libs/adobe-roman-numerals-1.0.0.jar
To run just the application:
.\gradlew clean build
docker build -t adobe-roman-numerals .
docker run -p 8080:8080/tcp adobe-roman-numerals
To start the entire docker stack:
docker-compose up
To stop the entire docker stack:
docker-compose down
To access Kibana Dashboard:
Discover => Create Index pattern => Step 1: logstash-* => Step 2: @timestamp => Discover
To access Prometheus and Grafana Dashboards:
http://localhost:3000 (Credentials: admin / admin)
Example: http://localhost:8080/romannumeral?query=478
Health Check: http://localhost:8080/
Host Info: http://localhost:8080/romannumeral/api/v1/host-info