Features:
- Spring Boot runnable application with embedded Tomcat and deployable war
- Spring Boot Actuator with production grade services
- Automatic versioning in MANIFEST.MF and in resource /appversion read from build pipeline environment variable
- Environment detection using environment variable
se.caglabs.doodleshop.environment
- Environment specific configuration and log configuration using Spring profiles (application.yaml)
- Unit tests and integration tests
- Flyway DB setup and migration
- Database H2, embedded if not specified external in application.yaml
$ mvn install
$ mvn -Pint-test verify
$ java -jar doodleshop.war
For specific environment, specify:
$ java -Dse.caglabs.doodleshop.environment=stage -jar doodleshop.war
where se.caglabs.doodleshop.environment
is (local | autosmall | autolarge | stage | prod)
The application has a few simple endpoints where you can store and read Doodles.
Create a doodle:
$ curl -H "Content-Type: application/json" -X POST -d '{"author":"Hoomer","message":"Ummm..."}' http://localhost:8080/doodles
Read created doodles:
$ curl http://localhost:8080/doodles?author=Homer
Start a MySQL database:
$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=doodlepass -d -p 3306:3306 mysql:5.7
Connect a database tool and create a database:
create database doodleshop;
Run with "stage" environment: -Dse.caglabs.doodleshop.environment=stage
Have fun, Daniel Marell