This repository is practical demonstration of a java 8 application migration to java 9 and java 10. The application used in this demonstration is an implementation of the CQRS pattern taken from java-design-patterns.
The repository contains the following branches :
- master : cqrs application as extracted from java-design-patterns running under java 8.
- java9-classpath : cqrs running under java 9 in the classpath (the unamed module).
- java9-module-v1 : cqrs and its direct dependencies running as modules under java 9.
- java9-module-v2 : cqrs and its dependencies running as modules under java 9.
- java10-classpath : cqrs running under java 10 in the classpath (the unamed module).
- java10-module-v1 : cqrs and its direct dependencies running as modules under java 10.
- jav10-module-v2 : cqrs and its dependencies running as modules under java 10.
In each branch you'll find at least three scripts in the bin directory. Each script compiles and runs the application using a different way. One using the command line, the other using maven and the third as a docker image. You'll find also in the java 9 and java 10 branches a script which uses jlink to generate a dependency report and the module-info in the temp/ directory.
- Java 9 : Detailed steps can be found at : A Practical Guide to Java 9 Migration.
- Java 10 : Migration to Java 10 was made from the Java 9 branches respectively. The migration has been straightforward, just some minor upgrades.
- Linux
- java "10"
- java "9.0.1"
- java "1.8.0_151"
- maven "3.5.3"
- docker 17.09.1-ce (optional: if you want to run CQRS as docker container)
Notice that for the master branch you'll need to configure JAVA_HOME for java 8. For the other branches you'll need to switch to java 9 or java 10.
- JEP 261: Module System
- Java Platform, Standard Edition Oracle JDK 9 Migration Guide
- The State of the Module System
- Project Jigsaw: Module System Quick-Start Guide
- Maven plugins
- JDK 10
All suggestions, contributions and reactions are welcome.