Classloader ignores Jars: No Dependency Graph • Linear Scan • More than one version of a class? 03.10.2017 9 jDD Krakow / Java 9 Refactoring (Rabea Gransberger @rgransberger)
• Feature Releases every half year: March / September • Update Releases: Jan, Apr, Jul, Oct • LTS Releases every 3 years from Sep 2018 • Code moves to OpenJDK • Mission Control and FlightRecorder Open Sourced • JEE => EE4J at Eclipse Foundation • https://mreinhold.org/blog/forward-faster • https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se 03.10.2017 31 jDD Krakow / Java 9 Refactoring (Rabea Gransberger @rgransberger)
• new service provider • From monolith to 283 plugins in 5 years • Think about module boundaries • Refactoring usually easy by using new interfaces 03.10.2017 57 jDD Krakow / Java 9 Refactoring (Rabea Gransberger @rgransberger)
clear boundaries • Hide public classes • Replace single modules • Module Path more robust than Classpath • Runtime Errors (NoClassDefFoundError) detected at startup, not after x hours • Jar Hell: 2 versions of Jars in Classpath • Tool Support: Which Dependencies are missing? • Smaller deployable units • Better (Startup-) Performance 03.10.2017 58 jDD Krakow / Java 9 Refactoring (Rabea Gransberger @rgransberger)