Overview
Syllabus
Intro
Introduction Aurelio Garcia-Ribeyro • Director Product Management, Java Platform Group, Oracle • In charge of managing the product requirements for Oracle's JDK since joining Oracle through the Sun acquisition in 2010 . Before joining Oracle, worked at Sun Microsystems for the Java Product
One Developer's Bug Fix Is Another Developer Bug
Common Incompatibilities Are Due To
Important Incompatibility Expected in JDK 9
JEP 260: Encapsulate Most Internal APIs
JEP 223: New Version String Scheme
JEP 220: Modular Run-Time Images
JEP 214: Remove GC Combinations Deprecated in JDK 8
General Rule: Look Out for Unrecognized VM Options
JEP 231: Remove Launch-Time JRE Version Selection
Endorsed Standard Override and Extension Mechanism, Deprecated in 8u40, Dropped in 9
JEP 240: Remove the JVM Tool Interface hprof Agent
The Entire HTTP Proxying Mechanism of RMI Was Deprecated in Java SE 8 And will be removed in JDK 9 • Remove RMI HTTP proxy implementation • Remove RMVJRMP HTTP tunneling implementation • Never worked properly
Remove Serialized Applets Functionality
Non-strict JNLP Parsing No Longer Allowed
Remove Unsupported Apple APIs Legacy code received through Apple's contribution of their own port • JEP 272: Platform-Specific Desktop Features replaces
JEP 271: Unified GC Logging Re-implemented GC logging with the new JVM logging framework from JEP 158 • Logs are in different format
G1 Is the New Default Garbage Collector
Prepare for the Future Now! 1 Download JDK 9 EA and JDK 9-Enabled IDE for example, NetBeans Dev
Download NetBeans Dev
Identify Problematic Dependencies Use Java Dependency Analysis Tool (deps) • Available since JDK 8 • Best results from the version in JDK 9 EA Option to find internal dependencies
Stopgap: Expose Internal APIs But come back and fix! Sample command for earlier dev version of Netbeans
Taught by
Devoxx