Java test applications using different patterns for Java Value Classes -- looking specifically at reducing boilerplate, e.g. Builder patterns.
Pure Java Boilerplate To Run:
cd plain-java
mvn package
java -cp target/classes:target/dependency/* com.example.Main
curl localhost:8080/myresource
References
Uses Project Lombok annotations / code generation
To Run:
cd lombok
mvn package
java -cp target/classes:target/dependency/* com.example.Main
curl localhost:8080/myresource
References
- https://projectlombok.org/
- https://www.slideshare.net/vladimirtsukur/hot-and-spicy-java-with-lombok-live
Uses Google Auto Value code generation
To Run:
cd auto-value
mvn package
java -cp target/classes:target/dependency/* com.example.Main
curl localhost:8080/myresource
References
- https://github.com/google/auto/blob/master/value/userguide/index.md
- https://github.com/google/auto/blob/master/value/userguide/why.md
Uses Immutables code generation
To Run:
cd immutables
mvn package
java -cp target/classes:target/dependency/* com.example.Main
curl localhost:8080/myresource
References
Uses Kotlin for value objects
To Run:
cd kotlin-java
mvn package
java -cp target/classes:target/dependency/* com.example.Main
curl localhost:8080/myresource
References