November 2, 2018

Oracle Code One 2018 Keynote by Mark Reinhold Chief Architect

Entire Keynote

https://www.youtube.com/watch?v=RFF2SfPMfpk

Oracle JDK for Windows is Not Free Anymore

Oracle JDK for Windows is Not Free Anymore

Subscription
$ 25.00 per month per processer
$ 2.50 per month and user
https://www.oracle.com/java/java-se-subscription.html

Who is contributing to OpenJDK?

https://blogs.oracle.com/java-platform-group/building-jdk-11-together

Java Champions

https://github.com/aalmiray/java-champions

Packages Removed in Java 11

Before Java 11

After Java 11

Reference

  1. JEP 261: Module System (Jigsaw)
  2. JEP 320: Remove the Java EE and CORBA Modules

Removed in Java 9


java.util.jar.Pack200.Packer.addPropertyChangeListener(...)
java.util.jar.Pack200.Packer.removePropertyChangeListener(...)
java.util.jar.Pack200.Unpacker.addPropertyChangeListener(...)
java.util.jar.Pack200.Unpacker.removePropertyChangeListener(...)
java.util.logging.LogManager.addPropertyChangeListener(...)
java.util.logging.LogManager.removePropertyChangeListener(...)

Removed in Java 10


// Removed in Java 10
java.lang.Runtime.getLocalizedInputStream(...)
java.lang.Runtime.getLocalizedOutputStream(...)
java.lang.SecurityManager.classDepth(...)
java.lang.SecurityManager.classLoaderDepth()
java.lang.SecurityManager.currentClassLoader()
java.lang.SecurityManager.currentLoadedClass()
java.lang.SecurityManager.getInCheck()
java.lang.SecurityManager.inClass(...)
java.lang.SecurityManager.inClassLoader()

Removed in Java 11


// Removed in Java 11 (in addition to the Java EE & Corba modules)
java.lang.Runtime.runFinalizersOnExit(...)
java.lang.SecurityManager.checkAwtEventQueueAccess()
java.lang.SecurityManager.checkMemberAccess(...)
java.lang.SecurityManager.checkSystemClipboardAccess()
java.lang.SecurityManager.checkTopLevelWindow(...)
java.lang.System.runFinalizersOnExit(...)
javax.security.auth.Policy

To be Removed in a Future Release


java.io.FileInputStream.finalize()
java.io.FileOutputStream.finalize()
java.lang.Compiler
java.lang.Runtime.traceInstructions(...)
java.lang.Runtime.traceInstructions(...)
java.lang.Thread.countStackFrames()
java.security.acl
java.security.Certificate
java.security.Identity
java.security.IdentityScope
java.security.Signer
java.util.jar.Pack200
java.util.zip.Deflater.finalize()
java.util.zip.Inflater.finalize()
java.util.zip.ZipFile.finalize()
javax.management.remote.rmi.RMIConnectorServer.CREDENTIAL_TYPES

Solution of Removed Packages/Classes


compile 'com.sun.activation:javax.activation:1.2.0'
compile 'javax.transaction:javax.transaction-api:1.3'
compile 'com.sun.xml.bind:jaxb-impl:2.3.1'
compile 'com.sun.xml.ws:jaxws-ri:2.3.1'
compile 'javax.annotation:javax.annotation-api:1.3.2'

Check Deprecated packages


$ jdeps --jdk-internals app.jar

Oracle JDK LTS

Java 11 and next 17

Java 9 (91 JEPS)


102: Process API Updates
110: HTTP 2 Client
143: Improve Contended Locking
158: Unified JVM Logging
165: Compiler Control
193: Variable Handles
197: Segmented Code Cache
199: Smart Java Compilation, Phase Two
200: The Modular JDK
201: Modular Source Code
211: Elide Deprecation Warnings on Import Statements
212: Resolve Lint and Doclint Warnings
213: Milling Project Coin
214: Remove GC Combinations Deprecated in JDK 8
215: Tiered Attribution for javac
216: Process Import Statements Correctly
217: Annotations Pipeline 2.0
219: Datagram Transport Layer Security (DTLS)
220: Modular Run-Time Images
221: Simplified Doclet API
222: jshell: The Java Shell (Read-Eval-Print Loop)
223: New Version-String Scheme
224: HTML5 Javadoc
225: Javadoc Search
226: UTF-8 Property Files
227: Unicode 7.0
228: Add More Diagnostic Commands
229: Create PKCS12 Keystores by Default
231: Remove Launch-Time JRE Version Selection
232: Improve Secure Application Performance
233: Generate Run-Time Compiler Tests Automatically
235: Test Class-File Attributes Generated by javac
236: Parser API for Nashorn
237: Linux/AArch64 Port
238: Multi-Release JAR Files
240: Remove the JVM TI hprof Agent
241: Remove the jhat Tool
243: Java-Level JVM Compiler Interface
244: TLS Application-Layer Protocol Negotiation Extension
245: Validate JVM Command-Line Flag Arguments
246: Leverage CPU Instructions for GHASH and RSA
247: Compile for Older Platform Versions
248: Make G1 the Default Garbage Collector
249: OCSP Stapling for TLS
250: Store Interned Strings in CDS Archives
251: Multi-Resolution Images
252: Use CLDR Locale Data by Default
253: Prepare JavaFX UI Controls & CSS APIs for Modularization
254: Compact Strings
255: Merge Selected Xerces 2.11.0 Updates into JAXP
256: BeanInfo Annotations
257: Update JavaFX/Media to Newer Version of GStreamer
258: HarfBuzz Font-Layout Engine
259: Stack-Walking API
260: Encapsulate Most Internal APIs
261: Module System
262: TIFF Image I/O
263: HiDPI Graphics on Windows and Linux
264: Platform Logging API and Service
265: Marlin Graphics Renderer
266: More Concurrency Updates
267: Unicode 8.0
268: XML Catalogs
269: Convenience Factory Methods for Collections
270: Reserved Stack Areas for Critical Sections
271: Unified GC Logging
272: Platform-Specific Desktop Features
273: DRBG-Based SecureRandom Implementations
274: Enhanced Method Handles
275: Modular Java Application Packaging
276: Dynamic Linking of Language-Defined Object Models
277: Enhanced Deprecation
278: Additional Tests for Humongous Objects in G1
279: Improve Test-Failure Troubleshooting
280: Indify String Concatenation
281: HotSpot C++ Unit-Test Framework
282: jlink: The Java Linker
283: Enable GTK 3 on Linux
284: New HotSpot Build System
285: Spin-Wait Hints
287: SHA-3 Hash Algorithms
288: Disable SHA-1 Certificates
289: Deprecate the Applet API
290: Filter Incoming Serialization Data
291: Deprecate the Concurrent Mark Sweep (CMS) Garbage Collector
292: Implement Selected ECMAScript 6 Features in Nashorn
294: Linux/s390x Port
295: Ahead-of-Time Compilation
297: Unified arm32/arm64 Port
298: Remove Demos and Samples
299: Reorganize Documentation

https://openjdk.java.net/projects/jdk9/

Java 10 (12 JEPS)


JEP 286: Local-Variable Type Inference  https://openjdk.java.net/jeps/286
JEP 296: Consolidate the JDK Forest into a Single Repository    https://openjdk.java.net/jeps/296
JEP 304: Garbage Collector Interface    https://openjdk.java.net/jeps/304
JEP 307: Parallel Full GC for G1    https://openjdk.java.net/jeps/307
JEP 310: Application Class-Data Sharing https://openjdk.java.net/jeps/310
JEP 312: Thread-Local Handshakes    https://openjdk.java.net/jeps/312
JEP 313: Remove the Native-Header Generation Tool (javah)   https://openjdk.java.net/jeps/313
JEP 314: Additional Unicode Language-Tag Extensions https://openjdk.java.net/jeps/314
JEP 316: Heap Allocation on Alternative Memory Devices  https://openjdk.java.net/jeps/316
JEP 317: Experimental Java-Based JIT Compiler   https://openjdk.java.net/jeps/317
JEP 319: Root Certificates  https://openjdk.java.net/jeps/319
JEP 322: Time-Based Release Versioning  https://openjdk.java.net/jeps/322

https://openjdk.java.net/projects/jdk/10/

Java 11 (17 JEPS)


JEP 181: Nest-Based Access Control  https://openjdk.java.net/jeps/181
JEP 309: Dynamic Class-File Constants   https://openjdk.java.net/jeps/309
JEP 315: Improve Aarch64 Intrinsics https://openjdk.java.net/jeps/315
JEP 318: Epsilon: A No-Op Garbage Collector (Experimental)  https://openjdk.java.net/jeps/318
JEP 320: Remove the Java EE and CORBA Modules   https://openjdk.java.net/jeps/320
JEP 321: HTTP Client (Standard) https://openjdk.java.net/jeps/321
JEP 323: Local-Variable Syntax for Lambda Parameters    https://openjdk.java.net/jeps/323
JEP 324: Key Agreement with Curve25519 and Curve448 https://openjdk.java.net/jeps/324
JEP 327: Unicode 10 https://openjdk.java.net/jeps/327
JEP 328: Flight Recorder    https://openjdk.java.net/jeps/328
JEP 329: ChaCha20 and Poly1305 Cryptographic Algorithms https://openjdk.java.net/jeps/329
JEP 330: Launch Single-File Source-Code Programs    https://openjdk.java.net/jeps/330
JEP 331: Low-Overhead Heap Profiling    https://openjdk.java.net/jeps/331
JEP 332: Transport Layer Security (TLS) 1.3 https://openjdk.java.net/jeps/332
JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)   https://openjdk.java.net/jeps/333
JEP 335: Deprecate the Nashorn JavaScript Engine    https://openjdk.java.net/jeps/335
JEP 336: Deprecate the Pack200 Tools and API    https://openjdk.java.net/jeps/336

https://openjdk.java.net/projects/jdk/11/

Java 12- OpenJDK Projects


Amber: Right-sizing language cermenony   https://openjdk.java.net/projects/amber/
Loom: Continuations & Fibres    https://openjdk.java.net/projects/loom/
Panama: Foreign-function/data interface https://openjdk.java.net/projects/panama/  
Valhalla: Value types & specialized generics    https://openjdk.java.net/projects/valhalla/

https://openjdk.java.net/

No comments: