SlideShare a Scribd company logo
1 of 28
© Copyright Azul Systems 2020
© Copyright Azul Systems 2015
@speakjava
How To Choose A JDK
Simon Ritter
Deputy CTO, Azul Systems
1
© Copyright Azul Systems 2020 2
© Copyright Azul Systems 2020
Java Platform Module System (JPMS)
 The core Java libraries are now a set of modules (JEP 220)
– 75 OpenJDK modules:
 24 Java SE
 2 aggregator modules
 1 smartcard (???)
 48 JDK
 Most internal APIs now encapsulated (JEP 260)
– sun.misc.Unsafe
– Some can be used with command line options
3
© Copyright Azul Systems 2020
JDK 9 Onwards And Compatibility
4
"Clean applications that just depend on java.se
should just work" - Oracle
© Copyright Azul Systems 2020
JDK 9: The Clean Up Starts
 Java has had deprecation since JDK 1.1
 453 deprecated elements in JDK 8
 Zero removed
 JDK 9
 6 methods removed from standard class libraries
 1 class removed from JAAS
 Redundant features eliminated (jhat, hprof agent)
 JDK 10
 1 package, 6 classes, 9 methods and 1 field
 More features will be removed in the future
 CMS GC, Nashorn and Pack200 all deprecated. Others?
5
© Copyright Azul Systems 2020
JDK 11: Modules Removed
– The java.se.ee aggregator-module has been removed
 java.corba
 java.transaction
 java.activation
 java.xml.bind
 java.xml.ws
 java.xml.ws.annotation
– Modules turned off in JDK 9
 Both compilation and runtime
6
© Copyright Azul Systems 2020
Compatibility Not Guaranteed
 New versions of Java may include breaking changes
– Anything for removal will be deprecated first
– Minimum of one release warning
 Could be only six months
7
© Copyright Azul Systems 2020
Moving Java Forward Faster
© Copyright Azul Systems 2020
OpenJDK: New Release Model
 A new version of the JDK is released every six months
– March and September
– 2018: JDK 10 and 11, 2019: JDK 12 and 13
– Continuing this year with JDK 14 and JDK 15
 OpenJDK development is more agile
– Previous target was a release every two years
 Features are only included when ready
– Targeted for a release when feature complete
9
© Copyright Azul Systems 2020
Long Term Support Releases
 Long term support for all releases is not practical
– One Long Term Support (LTS) release every three years
– For the Oracle JDK binary
 JDK 8 was classified as an LTS release
 Last JDK 8 public update in January 2019 for commercial users
 Non-commercial users get updates until December 2020
 JDK 11 is an LTS release
 JDK 9, 10, 12 and 13 were feature releases
 Updated only until next release
10
© Copyright Azul Systems 2020
Oracle JDK Binaries
 Traditional Oracle branded binary (java.oracle.com)
– Oracle Binary Code License (FoU restrictions)
 New Oracle OpenJDK binary (jdk.java.net)
– GPLv2 with CPE license (no restrictions)
– Security and bug fix updates only for six months
 Only until next JDK release
 Two scheduled updates
11
© Copyright Azul Systems 2020
Converged Binaries
Oracle JDK
OpenJDK
Java SE
JDK 10 and earlier
Java SE
OpenJDK
& Oracle JDK
JDK 11 and later
© Copyright Azul Systems 2020
Converged Binaries (JDK 11)
 Some closed-source parts of the JDK open-sourced
– Flight recorder
– Mission control
– Others
 Other closed-source parts removed
– Browser Plugin (Oracle support ceased March 2019)
– Java Web Start
– JavaFX
13
© Copyright Azul Systems 2020
Java Updates
 Oracle JDK binary has LTS versions (JDK 11, 17, etc.)
– Oracle OpenJDK only updated for six months
 Oracle JDK 11 released under a different license (OTNLA)
– Free for development and testing
– Requires a Java SE subscription for use in production
 JDK 8 can be used indefinitely for free
– But only JDK8u202 and earlier
– License for JDK8u211 and later is OTNLA
– If you download and use in production you can get audited
14
© Copyright Azul Systems 2020
Java Security
 CVE: Common Vulnerabilities and Exposures
 CVSS: Common Vulnerability Scoring System
 Base Score between 0 and 10
 Combination of Access Vector, Attack Complexity, Authentication
15
*All Software Platforms, including Java
High
Critical
© Copyright Azul Systems 2020
How Important Are Updates?
CPU Date Highest CVSS Impacted JDK
Versions
January 2020
October 2019
July 2019
8.1
6.8 (multiple)
6.8
7,8,11,13
7,8,11,13
7,8,11,12
April 2019 9.0 8
January 2019 6.1 6,7,8,11
October 2018 9.0 8,11
July 2018 5.9 6,7,8,10
April 2018 8.3 6,7,8,9,10
January 2018 8.3 (multiple) 6,7,8,9
October 2017 9.6 (multiple) 6,7,8,9
July 2017 9.6 (multiple) 7,8
April 2017 8.3 (multiple) 6,7,8
January 2017 9.6 (multiple) 7,8
© Copyright Azul Systems 2020
OpenJDK Vulnerability Group
 Secure, private forum
– Trusted members of OpenJDK
– Receive reports of vulnerabilities and review them
– Collaborate on producing fixes
– Co-ordinate release of fixes
 Main OpenJDK distributors represented
 Oracle, Red Hat, Azul, Amazon, IBM, AdoptOpenJDK, SAP,
BellSoft, Twitter
© Copyright Azul Systems 2020
JCP Golden Triangle
Specifications (JSRs)
Reference
Implementation (RI)
Technology
Compatibility Kit
(TCK)
Can you build it?
Is the spec.
unambiguous?
Does the RI conform to the spec?
© Copyright Azul Systems 2020
JDK Testing
 Java Standard Edition (SE)
– The specification
 JSR 379, 383, 384, 386, 388, 389, 390
– Reference implementation
 OpenJDK
– Technology Compatibility Kit (TCK)
 Sometimes referred to as the Java Compatibility Kit (JCK)
 Over 150,000 tests
 Licensed under Oracle Community TCK License Agreement (OCTLA)
19
© Copyright Azul Systems 2020
CPU and PSU
 Oracle provide two versions of each update
 Critical Patch Update (CPU)
– Only security related patches
– Designed for quick roll out with minimal testing
– Ensure maximum level of security protection
 Patch Set Update (PSU)
– All updates: Security, bug-fix, enhancement
– User can run full regression tests before deployment
– Ensure maximum level of stability
20
© Copyright Azul Systems 2020
Alternative OpenJDK
Binaries
© Copyright Azul Systems 2020
© Copyright Azul Systems 2020
AdoptOpenJDK
 Started in 2017
 Free community builds of OpenJDK and OpenJ9
 Supporting some more esoteric platforms
– AIX on PPC
– Solaris on SPARC and x64
– Linux on S390
 Many commercial sponsors (including Azul as platinum)
23
© Copyright Azul Systems 2020
Zulu Community
 Azul’s FREE binary distribution of OpenJDK
– Passes all TCK tests
 JDK 7, 8, 9, 10, 11, 12 and 13 available
– JDK 14 and 15 in Early Access
 Wide platform support:
– Intel 64-bit Windows, Mac, Linux
– Intel 32-bit Windows and Linux
– ARM 32 and 64-bit
24
www.azul.com/downloads/zulu
© Copyright Azul Systems 2020
Zulu Enterprise
 Enhanced build of OpenJDK source code
 Fully TCK tested
 JDK 6, 7, 8 and 11
 TLS1.3, Flight Recorder backports
 Wide platform support:
 Intel 64-bit Windows, Mac, Linux
 Intel 32-bit Windows and Linux
 Verified non-contaminating (GPL) builds
 24x7x365 support call logging
– Follow-the-sun resolution
25
© Copyright Azul Systems 2020
Summary
© Copyright Azul Systems 2020
Choosing Your Java Distribution
 Does the provider deliver:
– TCK tested binaries?
– Updates within a time defined by an SLA?
– All security patches and bug fixes for all updates?
– CPUs, PSUs or both?
– Is there someone to call if you have a problem?
27
© Copyright Azul Systems 2020
© Copyright Azul Systems 2015
@speakjava
Thank You
Simon Ritter
Deputy CTO, Azul Systems
28

More Related Content

What's hot

It's Java, Jim, but not as we know it
It's Java, Jim, but not as we know itIt's Java, Jim, but not as we know it
It's Java, Jim, but not as we know itSimon Ritter
 
Whats New For Developers In JDK 9
Whats New For Developers In JDK 9Whats New For Developers In JDK 9
Whats New For Developers In JDK 9Simon Ritter
 
It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!Simon Ritter
 
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RacePure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RaceBaruch Sadogursky
 
Lessons Learnt With Lambdas and Streams in JDK 8
Lessons Learnt With Lambdas and Streams in JDK 8Lessons Learnt With Lambdas and Streams in JDK 8
Lessons Learnt With Lambdas and Streams in JDK 8Simon Ritter
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?Doug Hawkins
 
Eclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classesEclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classesLuca D'Onofrio
 
55 New Features in Java SE 8
55 New Features in Java SE 855 New Features in Java SE 8
55 New Features in Java SE 8Simon Ritter
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoinknight1128
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKJosé Paumard
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android InfrastructureAlexey Buzdin
 
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)DevelopIntelligence
 
Python Evolution
Python EvolutionPython Evolution
Python EvolutionQuintagroup
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemGuardSquare
 
Reactive programming with RxAndroid
Reactive programming with RxAndroidReactive programming with RxAndroid
Reactive programming with RxAndroidSavvycom Savvycom
 
RxJava 2.0 介紹
RxJava 2.0 介紹RxJava 2.0 介紹
RxJava 2.0 介紹Kros Huang
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemGuardSquare
 
Production Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVMProduction Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVMMarcus Hirt
 

What's hot (20)

It's Java, Jim, but not as we know it
It's Java, Jim, but not as we know itIt's Java, Jim, but not as we know it
It's Java, Jim, but not as we know it
 
Whats New For Developers In JDK 9
Whats New For Developers In JDK 9Whats New For Developers In JDK 9
Whats New For Developers In JDK 9
 
It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!
 
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RacePure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools Race
 
Lessons Learnt With Lambdas and Streams in JDK 8
Lessons Learnt With Lambdas and Streams in JDK 8Lessons Learnt With Lambdas and Streams in JDK 8
Lessons Learnt With Lambdas and Streams in JDK 8
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
 
Eclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classesEclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classes
 
Java 5 and 6 New Features
Java 5 and 6 New FeaturesJava 5 and 6 New Features
Java 5 and 6 New Features
 
55 New Features in Java SE 8
55 New Features in Java SE 855 New Features in Java SE 8
55 New Features in Java SE 8
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoin
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android Infrastructure
 
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)
 
Python Evolution
Python EvolutionPython Evolution
Python Evolution
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
 
Reactive programming with RxAndroid
Reactive programming with RxAndroidReactive programming with RxAndroid
Reactive programming with RxAndroid
 
RxJava 2.0 介紹
RxJava 2.0 介紹RxJava 2.0 介紹
RxJava 2.0 介紹
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
 
Production Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVMProduction Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVM
 
Java 7 New Features
Java 7 New FeaturesJava 7 New Features
Java 7 New Features
 

Similar to How to Choose a JDK

Is Java Still Free?
Is Java Still Free?Is Java Still Free?
Is Java Still Free?Simon Ritter
 
Java Support: What's changing
Java Support:  What's changingJava Support:  What's changing
Java Support: What's changingSimon Ritter
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondSimon Ritter
 
OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14Ivan Krylov
 
Explaining the new Java release and licensing models
Explaining the new Java release and licensing modelsExplaining the new Java release and licensing models
Explaining the new Java release and licensing modelsMark West
 
2018 10-oracle-java-licensing-update-support-changes
2018 10-oracle-java-licensing-update-support-changes2018 10-oracle-java-licensing-update-support-changes
2018 10-oracle-java-licensing-update-support-changesNeil Brown
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still FreeSimon Ritter
 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of JavaJamie Coleman
 
It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11Wolfgang Weigend
 
Eclipse IoT: Open source technology for IoT developers
Eclipse IoT: Open source technology for IoT developersEclipse IoT: Open source technology for IoT developers
Eclipse IoT: Open source technology for IoT developersIan Skerrett
 
Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?Simon Ritter
 
DSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java ProjectDSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java Projectgustavoeliano
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewGünter Obiltschnig
 
Mobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project StatusMobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project Statusgustavoeliano
 

Similar to How to Choose a JDK (20)

Is Java Still Free?
Is Java Still Free?Is Java Still Free?
Is Java Still Free?
 
Java Support: What's changing
Java Support:  What's changingJava Support:  What's changing
Java Support: What's changing
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and Beyond
 
OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14
 
Explaining the new Java release and licensing models
Explaining the new Java release and licensing modelsExplaining the new Java release and licensing models
Explaining the new Java release and licensing models
 
2018 10-oracle-java-licensing-update-support-changes
2018 10-oracle-java-licensing-update-support-changes2018 10-oracle-java-licensing-update-support-changes
2018 10-oracle-java-licensing-update-support-changes
 
Java11 terms of_use
Java11 terms of_useJava11 terms of_use
Java11 terms of_use
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still Free
 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of Java
 
Java SE Subscription Workshop
Java SE Subscription WorkshopJava SE Subscription Workshop
Java SE Subscription Workshop
 
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
 
It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11
 
Eclipse IoT: Open source technology for IoT developers
Eclipse IoT: Open source technology for IoT developersEclipse IoT: Open source technology for IoT developers
Eclipse IoT: Open source technology for IoT developers
 
JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK
 
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?
 
DSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java ProjectDSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java Project
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
 
Mobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project StatusMobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project Status
 

More from Simon Ritter

Cloud Native Compiler
Cloud Native CompilerCloud Native Compiler
Cloud Native CompilerSimon Ritter
 
The Art of Java Type Patterns
The Art of Java Type PatternsThe Art of Java Type Patterns
The Art of Java Type PatternsSimon Ritter
 
Java performance monitoring
Java performance monitoringJava performance monitoring
Java performance monitoringSimon Ritter
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java WorkshopSimon Ritter
 
Building a Better JVM
Building a Better JVMBuilding a Better JVM
Building a Better JVMSimon Ritter
 
The Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologyThe Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologySimon Ritter
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologySimon Ritter
 
JDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep DiveJDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep DiveSimon Ritter
 
JDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for JavaJDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for JavaSimon Ritter
 
JDK 9: Mission Accomplished. What Next For Java?
JDK 9: Mission Accomplished. What Next For Java?JDK 9: Mission Accomplished. What Next For Java?
JDK 9: Mission Accomplished. What Next For Java?Simon Ritter
 
JDK 9: Migrating Applications
JDK 9: Migrating ApplicationsJDK 9: Migrating Applications
JDK 9: Migrating ApplicationsSimon Ritter
 
Building a Brain with Raspberry Pi and Zulu Embedded JVM
Building a Brain with Raspberry Pi and Zulu Embedded JVMBuilding a Brain with Raspberry Pi and Zulu Embedded JVM
Building a Brain with Raspberry Pi and Zulu Embedded JVMSimon Ritter
 
JDK 9: 55 New Features
JDK 9: 55 New FeaturesJDK 9: 55 New Features
JDK 9: 55 New FeaturesSimon Ritter
 
Streams: The Good, The Bad And The Ugly
Streams: The Good, The Bad And The UglyStreams: The Good, The Bad And The Ugly
Streams: The Good, The Bad And The UglySimon Ritter
 

More from Simon Ritter (16)

Cloud Native Compiler
Cloud Native CompilerCloud Native Compiler
Cloud Native Compiler
 
Java On CRaC
Java On CRaCJava On CRaC
Java On CRaC
 
The Art of Java Type Patterns
The Art of Java Type PatternsThe Art of Java Type Patterns
The Art of Java Type Patterns
 
Java performance monitoring
Java performance monitoringJava performance monitoring
Java performance monitoring
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
 
Building a Better JVM
Building a Better JVMBuilding a Better JVM
Building a Better JVM
 
The Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologyThe Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans Technology
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java Technology
 
JDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep DiveJDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep Dive
 
JDK 9 Deep Dive
JDK 9 Deep DiveJDK 9 Deep Dive
JDK 9 Deep Dive
 
JDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for JavaJDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for Java
 
JDK 9: Mission Accomplished. What Next For Java?
JDK 9: Mission Accomplished. What Next For Java?JDK 9: Mission Accomplished. What Next For Java?
JDK 9: Mission Accomplished. What Next For Java?
 
JDK 9: Migrating Applications
JDK 9: Migrating ApplicationsJDK 9: Migrating Applications
JDK 9: Migrating Applications
 
Building a Brain with Raspberry Pi and Zulu Embedded JVM
Building a Brain with Raspberry Pi and Zulu Embedded JVMBuilding a Brain with Raspberry Pi and Zulu Embedded JVM
Building a Brain with Raspberry Pi and Zulu Embedded JVM
 
JDK 9: 55 New Features
JDK 9: 55 New FeaturesJDK 9: 55 New Features
JDK 9: 55 New Features
 
Streams: The Good, The Bad And The Ugly
Streams: The Good, The Bad And The UglyStreams: The Good, The Bad And The Ugly
Streams: The Good, The Bad And The Ugly
 

Recently uploaded

2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 

Recently uploaded (20)

2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 

How to Choose a JDK

  • 1. © Copyright Azul Systems 2020 © Copyright Azul Systems 2015 @speakjava How To Choose A JDK Simon Ritter Deputy CTO, Azul Systems 1
  • 2. © Copyright Azul Systems 2020 2
  • 3. © Copyright Azul Systems 2020 Java Platform Module System (JPMS)  The core Java libraries are now a set of modules (JEP 220) – 75 OpenJDK modules:  24 Java SE  2 aggregator modules  1 smartcard (???)  48 JDK  Most internal APIs now encapsulated (JEP 260) – sun.misc.Unsafe – Some can be used with command line options 3
  • 4. © Copyright Azul Systems 2020 JDK 9 Onwards And Compatibility 4 "Clean applications that just depend on java.se should just work" - Oracle
  • 5. © Copyright Azul Systems 2020 JDK 9: The Clean Up Starts  Java has had deprecation since JDK 1.1  453 deprecated elements in JDK 8  Zero removed  JDK 9  6 methods removed from standard class libraries  1 class removed from JAAS  Redundant features eliminated (jhat, hprof agent)  JDK 10  1 package, 6 classes, 9 methods and 1 field  More features will be removed in the future  CMS GC, Nashorn and Pack200 all deprecated. Others? 5
  • 6. © Copyright Azul Systems 2020 JDK 11: Modules Removed – The java.se.ee aggregator-module has been removed  java.corba  java.transaction  java.activation  java.xml.bind  java.xml.ws  java.xml.ws.annotation – Modules turned off in JDK 9  Both compilation and runtime 6
  • 7. © Copyright Azul Systems 2020 Compatibility Not Guaranteed  New versions of Java may include breaking changes – Anything for removal will be deprecated first – Minimum of one release warning  Could be only six months 7
  • 8. © Copyright Azul Systems 2020 Moving Java Forward Faster
  • 9. © Copyright Azul Systems 2020 OpenJDK: New Release Model  A new version of the JDK is released every six months – March and September – 2018: JDK 10 and 11, 2019: JDK 12 and 13 – Continuing this year with JDK 14 and JDK 15  OpenJDK development is more agile – Previous target was a release every two years  Features are only included when ready – Targeted for a release when feature complete 9
  • 10. © Copyright Azul Systems 2020 Long Term Support Releases  Long term support for all releases is not practical – One Long Term Support (LTS) release every three years – For the Oracle JDK binary  JDK 8 was classified as an LTS release  Last JDK 8 public update in January 2019 for commercial users  Non-commercial users get updates until December 2020  JDK 11 is an LTS release  JDK 9, 10, 12 and 13 were feature releases  Updated only until next release 10
  • 11. © Copyright Azul Systems 2020 Oracle JDK Binaries  Traditional Oracle branded binary (java.oracle.com) – Oracle Binary Code License (FoU restrictions)  New Oracle OpenJDK binary (jdk.java.net) – GPLv2 with CPE license (no restrictions) – Security and bug fix updates only for six months  Only until next JDK release  Two scheduled updates 11
  • 12. © Copyright Azul Systems 2020 Converged Binaries Oracle JDK OpenJDK Java SE JDK 10 and earlier Java SE OpenJDK & Oracle JDK JDK 11 and later
  • 13. © Copyright Azul Systems 2020 Converged Binaries (JDK 11)  Some closed-source parts of the JDK open-sourced – Flight recorder – Mission control – Others  Other closed-source parts removed – Browser Plugin (Oracle support ceased March 2019) – Java Web Start – JavaFX 13
  • 14. © Copyright Azul Systems 2020 Java Updates  Oracle JDK binary has LTS versions (JDK 11, 17, etc.) – Oracle OpenJDK only updated for six months  Oracle JDK 11 released under a different license (OTNLA) – Free for development and testing – Requires a Java SE subscription for use in production  JDK 8 can be used indefinitely for free – But only JDK8u202 and earlier – License for JDK8u211 and later is OTNLA – If you download and use in production you can get audited 14
  • 15. © Copyright Azul Systems 2020 Java Security  CVE: Common Vulnerabilities and Exposures  CVSS: Common Vulnerability Scoring System  Base Score between 0 and 10  Combination of Access Vector, Attack Complexity, Authentication 15 *All Software Platforms, including Java High Critical
  • 16. © Copyright Azul Systems 2020 How Important Are Updates? CPU Date Highest CVSS Impacted JDK Versions January 2020 October 2019 July 2019 8.1 6.8 (multiple) 6.8 7,8,11,13 7,8,11,13 7,8,11,12 April 2019 9.0 8 January 2019 6.1 6,7,8,11 October 2018 9.0 8,11 July 2018 5.9 6,7,8,10 April 2018 8.3 6,7,8,9,10 January 2018 8.3 (multiple) 6,7,8,9 October 2017 9.6 (multiple) 6,7,8,9 July 2017 9.6 (multiple) 7,8 April 2017 8.3 (multiple) 6,7,8 January 2017 9.6 (multiple) 7,8
  • 17. © Copyright Azul Systems 2020 OpenJDK Vulnerability Group  Secure, private forum – Trusted members of OpenJDK – Receive reports of vulnerabilities and review them – Collaborate on producing fixes – Co-ordinate release of fixes  Main OpenJDK distributors represented  Oracle, Red Hat, Azul, Amazon, IBM, AdoptOpenJDK, SAP, BellSoft, Twitter
  • 18. © Copyright Azul Systems 2020 JCP Golden Triangle Specifications (JSRs) Reference Implementation (RI) Technology Compatibility Kit (TCK) Can you build it? Is the spec. unambiguous? Does the RI conform to the spec?
  • 19. © Copyright Azul Systems 2020 JDK Testing  Java Standard Edition (SE) – The specification  JSR 379, 383, 384, 386, 388, 389, 390 – Reference implementation  OpenJDK – Technology Compatibility Kit (TCK)  Sometimes referred to as the Java Compatibility Kit (JCK)  Over 150,000 tests  Licensed under Oracle Community TCK License Agreement (OCTLA) 19
  • 20. © Copyright Azul Systems 2020 CPU and PSU  Oracle provide two versions of each update  Critical Patch Update (CPU) – Only security related patches – Designed for quick roll out with minimal testing – Ensure maximum level of security protection  Patch Set Update (PSU) – All updates: Security, bug-fix, enhancement – User can run full regression tests before deployment – Ensure maximum level of stability 20
  • 21. © Copyright Azul Systems 2020 Alternative OpenJDK Binaries
  • 22. © Copyright Azul Systems 2020
  • 23. © Copyright Azul Systems 2020 AdoptOpenJDK  Started in 2017  Free community builds of OpenJDK and OpenJ9  Supporting some more esoteric platforms – AIX on PPC – Solaris on SPARC and x64 – Linux on S390  Many commercial sponsors (including Azul as platinum) 23
  • 24. © Copyright Azul Systems 2020 Zulu Community  Azul’s FREE binary distribution of OpenJDK – Passes all TCK tests  JDK 7, 8, 9, 10, 11, 12 and 13 available – JDK 14 and 15 in Early Access  Wide platform support: – Intel 64-bit Windows, Mac, Linux – Intel 32-bit Windows and Linux – ARM 32 and 64-bit 24 www.azul.com/downloads/zulu
  • 25. © Copyright Azul Systems 2020 Zulu Enterprise  Enhanced build of OpenJDK source code  Fully TCK tested  JDK 6, 7, 8 and 11  TLS1.3, Flight Recorder backports  Wide platform support:  Intel 64-bit Windows, Mac, Linux  Intel 32-bit Windows and Linux  Verified non-contaminating (GPL) builds  24x7x365 support call logging – Follow-the-sun resolution 25
  • 26. © Copyright Azul Systems 2020 Summary
  • 27. © Copyright Azul Systems 2020 Choosing Your Java Distribution  Does the provider deliver: – TCK tested binaries? – Updates within a time defined by an SLA? – All security patches and bug fixes for all updates? – CPUs, PSUs or both? – Is there someone to call if you have a problem? 27
  • 28. © Copyright Azul Systems 2020 © Copyright Azul Systems 2015 @speakjava Thank You Simon Ritter Deputy CTO, Azul Systems 28

Editor's Notes

  1. FoU = Field of Use. restriction prevented people using Java in embedded applications without buying a license. CPE = Classpath Exception. Eliminates the problem of the GPL license being viral, which would require you to make the source code for your application available.
  2. Late 2018 probably means JDK 11, which comes out in September. The idea of eliminating differences is so that the two binaries from Oracle (reference last slide) will be functionaly the same.