Contributor Agreement • The following organizations and individuals have signed the OpenJDK Community TCK Agreement (OCTLA) and been granted access to the JCK * * * TCK - Test Compatibility Kit JCK - Java Compatibility Kit
Features • All features of new Java releases are de fi ned by JDK Enhancement Proposals (JEP) of the OpenJDK • De fi nitions of JEPs and the feature lists of a Java release can be found at the OpenJDK • JEP URL: https://openjdk.java.net/jeps/395 • Release URL: https://openjdk.java.net/projects/jdk/16/
De fi nitions • The JEP de fi nition and work fl ow is de fi ned by JEPs: • JEP 0 contains an up-to-date index of all JEPs • JEP 1 & JEP 2 de fi nes the content and work fl ows of JEPs • JEP 3 de fi nes the release process of the JDK
OS Builds with GitHub Actions • OpenJDK projects already use GitHub Actions for CI tasks • Automatically build and test JavaFX on all 3 big operation systems for each pull request https://github.com/openjdk/jfx/pull/619/checks
classical Java releases • Up until Java 8 we had a fl exible release train for Java • A new major version was released "when it's done" • This ended in delays and a a big bundle of new features per release
classical Java releases • A version was available for several years • Normally a version received updates even after the next version was released • Commercial LTS support was provided by Oracle for legacy projects
new release train • Beginning with Java 9 Oracle announced the new release train • More fl exible with fi xed release dates • A feature will be released "when it's done" • Shorter lifetime of Java versions
call the distro 'Adoptium' ... • NO! Adoptium is much more than 'just the binaries': AQAVIT is the quality and runtime branding evaluation project for Java SE runtimes and associated technology. Any Java runtime Open source AQAVIT test & benchmark suite Enterprise ready runtime https://bit.ly/3nnLVi7 More Info:
call the distro 'Adoptium' ... • NO! We want to be convenient: Like ___________ provides ___________ the Adoptium project provides Temurin Azul Systems Zulu Amazon Coretto Bellsoft Liberica Oracle Oracle JDK
distributions • Several companies provide OpenJDK based distributions based on different reasons: • Some wants to sell LTS support • Some wants to provide it bundled with products • Some wants to use it in the company cloud • ...
distributions • It is really hard to choose a distribution... • Adoptium tries to help the user by providing a marketplace • The Adoptium marketplace will only contain distributions that are TCK and AQAvit approved
to JDK 17 • Oracle provides a migration guide: • Signi fi cant Changes in the JDK • Preparing For Migration • Migrating From JDK 8 to Later JDK Releases https://docs.oracle.com/en/java/javase/17/migrate/index.html https://bit.ly/3k224YD
(evil) private APIs • Java 17 introduced JEP 403: Strongly Encapsulate JDK Internals • It will no longer be possible to relax the strong encapsulation of internal elements via a single command-line option, as was possible in JDK 9 through JDK 16.
(evil) private APIs • JDK 9 till JDK 15 defaults to --illegal-access=warn • JDK 16 defaults to --illegal-access=deny • JDK 17 disables permit, warn & debug values for illegal- access option • It is still possible to use --add-opens or the Add-Opens manifest attribute
removed APIs • The Java Version Almanac contains all information that you need • Open source service by Mark Hoffmann • Support any 2 releases https://javaalmanac.io/jdk/17/apidiff/11/ https://bit.ly/3z2Bqmv
to a different Vendor • Maybe you want to migrate to a different OpenJDK based distribution • Since all are based on OpenJDK and mostly all are TCK checked a switch should be super easy... you do Have a support subscription for Java versions in production ? As you can imagine there are exceptions...
to a different Vendor • There are still some minor differences distributions • As an example Oracle JDK uses a different font in Swing than the OpenJDK does • Adoptium provides an migration guide: https://adoptium.net/migration.html https://bit.ly/3tBroI1