More Related Content
Similar to JDK 10 Migration Guide
Similar to JDK 10 Migration Guide (20)
More from Wolfgang Weigend
More from Wolfgang Weigend (16)
JDK 10 Migration Guide
- 1. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Title Slide with
Java FY15 Theme
Subtitle
Presenter’s Name
Presenter’s Title
Organization, Division or Business Unit
Month 00, 2014
Note: The speaker notes for this slide
include detailed instructions on how to reuse
this Title Slide in another presentation.
Tip! Remember to remove this text box.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
It's a JDK jungle out there –
Oracle JDK und OpenJDK
Wolfgang Weigend
Sen. Leitender Systemberater
Java Technology and Architecture
- 2. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
2
- 3. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Agenda
Java Version Numbers
Java SE Roadmap
Java in a World of Containers and Open Source
JDK 10 Migration Guide
OpenJDK
Release Cycle & Oracle OpenJDK Builds
Summary
1
2
3
4
3
5
6
7
- 4. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Rules for Java CPU’s
− Main release for security vulnerabilities
− Covers all JDK families (10, 9, 8, 7, 6)
− CPU release triggers Auto-update
− Dates published 12 months in advance
− Security Alerts are released as necessary
− Based off the previous (non-CPU) release
− Released simultaneously on java.com and OTN
JDK 10.0.1 - Security Baselines
JRE Family Version
JRE Security Baseline
(Full Version String)
10 10.0.1+10
9 9.0.99
8 1.8.0_171-b11
7 1.7.0_181-b09
6 1.6.0_191-b09
JDK Version Numbers and Java Critical Patch Updates
- 5. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
A version number, $VNUM, is a sequence of numerals of arbitrary length, separated by period characters.
The first four numerals are interpreted as follows: $FEATURE.$INTERIM.$UPDATE.$EMERG
$FEATURE formerly $MAJOR
$INTERIM formerly $MINOR
$UPDATE formerly $SECURITY
$EMERG -- The emergency-release counter, incremented only when it's necessary to produce an
emergency release to fix an urgent security issue. Using an additional numeral for this purpose minimizes
the disruption to both developers and users of in-flight update releases.
JDK Version Numbers
- 6. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Java SE Roadmap
- 7. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Java SE Public Updates
http://www.oracle.com/technetwork/java/eol-135779.html
- 8. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Oracle Java SE Support Roadmap*
http://www.oracle.com/technetwork/java/eol-135779.html
- 9. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Oracle Java SE Advanced Support
https://shop.oracle.com
• Select
Software
Oracle Fusion Middleware
Java
Oracle Java SE Advanced
• Oracle Java SE Advanced
Java Standard Edition (Java SE) Advanced includes the Oracle Java Runtime Environment (JRE) and Java Development Kit (JDK), JRockit JDK, JRockit Mission
Control as well as Monitoring and Management features (including APIs etc for EM integration). This set of custom Java SE revisions gives companies immediate
access to critical fixes, a longer roadmap for support, and enterprise features that greatly minimize the costs of deployment and maintenance. By providing back-
ports of older Java SE versions, customers can decide when they wish to upgrade to the latest version of the JRE/JDK.
• Calculator
Metric: Named User Plus, or Processor
Term: 1 Year .. 5 Years, or Perpetual
Quantity: Number
- 10. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Java Client Roadmap Update (1)
Java Web Start and Pre-Installed Java Runtime Environments
10
• Java Web Start has been included in the Oracle Java Runtime Environment (JRE) since 2001. It is launched
automatically when a Java application using Java Web Start technology is downloaded for the first time.
Desktop shortcuts can also launch the application, providing the user with a similar experience to that of
a native application.
• Java Web Start has become a migration path for developers as browser vendors continued to restrict
plugin support over the past several years.
• Since it is predominantly a desktop technology, Web Start has some limitations. In particular, it requires a
standalone JRE to be installed and maintained on the user’s desktop.
• However, over the past decade, vendors of the most popular desktop operating systems have
emphatically pushed for applications on their platforms to be delivered bundled with integrated,
sandboxed runtimes. Increasingly they require desktop applications to be distributed through their own
private “app stores.”
• The notion of an application being distributed separately from a standalone JRE is, therefore, quickly
fading.
- 11. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 11
• Oracle will extend support for Web Start in Java SE 8 from March, 2019, through at least March 2025.
• Oracle products that have dependencies on Web Start will remain on Java SE 8 and continue with the
support timelines as indicated by those products.
• Oracle will not include Java Web Start in Java SE 11 (18.9 LTS) and later.
• Oracle will begin encouraging application developers and users to transition away from Java Web Start
and encourage non-commercial consumers to remove any unused or non-supported Oracle JRE
installations from their desktops.
• Developers who deploy desktop applications to individual consumers (eg, games, personal banking, or
other B2C applications) will need to transition to other deployment technologies such as the jlink and/or
third party packaging and deployment solutions before the end of 2020.
• Application developers who target applications for internal data processing, business, commercial, or
production purposes, will either need to seek commercial license with Oracle, or transition to other
deployment technologies by January 2019.
Java Client Roadmap Update (2)
Java Web Start and Pre-Installed Java Runtime Environments - Consequently
- 12. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Java in a World of Containers
and Open Source
- 13. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Java in a World of Containers
Java’s characteristic make it ideal for a container environment
13
• Managed language/runtime
• Hardware and operating system agnostic
• Safety and secure enforced by JVM
• Compatibility is a key design goal
• JVM ensures stable execution when runtime environment changes
• Broad ecosystem
• Keeping Java the first choice for container deployments
- 14. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Open source commercial features
What is being open-sourced in Java
14
• Java Mission Control
– Monitor and manage Java applications with minimal performance overhead
• Java Flight Recorder
– Collects diagnostic and profiling data about a running Java application
• Application Class Data Sharing
– Enables you to place classes from the standard extensions directories and the
application class path in the shared archive
• Java Usage Tracker
– Tracks how the JRE‘s are being used in your systems
- 15. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
JDK 10 Migration Guide
- 16. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Migrating to Oracle JDK 10 - Migration Guide (1)
https://docs.oracle.com/javase/10/migrate/
16
• Migrating to JDK 10 from JDK 8
– The purpose of this guide is to help you identify potential issues and give you suggestions on how to
proceed as you migrate your existing Java application from JDK 8, or earlier version of the JDK, to JDK 10.
– This guide is not significantly different than the JDK 9 Migration Guide.
– Every new Java SE release introduces some binary, source, and behavioral incompatibilities with previous
releases.
– The modularization of the Java SE Platform that happened in JDK 9 brought many benefits, but also many
changes.
– Code that uses only official Java SE Platform APIs and supported JDK-specific APIs should continue to work
without change.
– Code that uses JDK-internal APIs should continue to run but should be migrated to use external APIs.
- 17. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Migrating to Oracle JDK 10 - Migration Guide (2)
https://docs.oracle.com/javase/10/migrate/
17
• Prepare for Migration
• Download JDK 10
• Run Your Program Before Recompiling
• Update Third-Party Libraries
• Compile Your Application if Needed
• Run jdeps on Your Code
- 18. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Migrating to Oracle JDK 10 - Migration Guide (3)
https://docs.oracle.com/javase/10/migrate/
18
• Changes that you may encounter as you run your application
– New Version-String Scheme
– Understanding Runtime Access Warnings
– Changes to the Installed JDK/JRE Image
– Removed or Changed APIs
– Modules Shared with Java EE Not Resolved by Default
– Deployment
– Security Updates
– Changes to Garbage Collection
– Removed Tools and Components
– Removed macOS-Specific Features
- 19. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Modular Development with JDK 10
19
- 21. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
JDK 10 is the open-source reference implementation of
the Java SE 10 Platform as defined by JSR 383 in the JCP
21
• JEP 286: Local-Variable Type Inference
• JEP 296: Consolidate the JDK Forest into a Single Repository
• JEP 304: Garbage-Collector Interface
• JEP 307: Parallel Full GC for G1
• JEP 310: Application Class-Data Sharing
• JEP 312: Thread-Local Handshakes
• JEP 313: Remove the Native-Header Generation Tool (javah)
• JEP 314: Additional Unicode Language-Tag Extensions
• JEP316: Heap Allocation on Alternative Memory Devices
• JEP 317: Experimental Java-Based JIT Compiler
• JEP 319: Root Certificates
• JEP 322: Time-Based Release Versioning
http://openjdk.java.net/projects/jdk/10/
- 23. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Java Development Kit
(JDK) Java Runtime Environment (JRE)
JDK, JRE and JVM
javac Standard
Libraries
Other
Developer
Tools
(eg, javadoc)
JVM
- 24. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
OpenJDK
“The place to collaborate on an open-source implementation of the Java
Platform, Standard Edition, and related projects.”
In a Nutshell
- 25. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
OpenJDK
• Started by Sun Microsystems in November 2006
– 2007: JDK Project Released under GPL v2 + CPE
– 2007-2009: Ideas, Code, Committers, Projects, OpenJDK 6, JDK 7 Milestone
– 2010 – Present (Post Sun Microsystems Acquisition)
• JDK 7, JDK 8, JDK 9 releases
• OpenJDK Bylaws Ratified - New Governance and Governing Board
• Oracle and Apple announce OpenJDK project for MacOS X
• OpenJDK Reference Implementation for Java SE releases after Java SE 7
• Hundreds of new Contributors, Dozens of new companies participating – eg, SAP,
Twitter, Azul, Amazon, Alibaba, and others and many Individuals Announce
Participation
A Brief History
- 26. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Dozens of Projects
Java SE RI
Binaries
Open Community – GPL v2 + Classpath Exception
OpenJDK Cycle
Customized VM for
Internal Use
...and many more
Both Gratis and Commercial offerings
(Including Support, Enterprise tooling,
etc, available)
Source contributions
Companies AND Individuals
- 27. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
OpenJDK
• Clear commitment from Oracle
• August 2017, Oracle announced plans to Open Source it’s
commercial Oracle JDK features, and produce OpenJDK
binaries
• Pipeline of new and interested Contributors and
Participants
• Oracle continues investment in OpenJDK:
– Language, JVM, core libraries, PM
– Open sourcing of previously internal/closed features
– Enjoying benefits from the rebooted governance & retooling
infrastructure – ever evolving
- 28. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Community Engagement
Fix build warnings, trivial bugs,
test and report regressions
Non-complex bugs, review, test portingIntermediate
Starter
Advanced Solving non-trivial bugs
- 29. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
OpenJDK Project
• Open source implementation of Java SE
• Licensed under GPLv2 with classpath exception
• Reference implementation for Java SE 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ..
• Different vendors/implementers working in common space
– Oracle, IBM, Intel, Twitter, Azul, Google, RedHat, SAP
• Many Java SE related projects
- 30. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Oracle Contributor Agreement - OCA
• Copyright and patent sharing agreement with regards to your contribution
– Simple dual license model
• You and Oracle could treat the contribution as being the sole owner
• Oracle guarantees to always publish any contribution under a suitable Free
Software Foundation (FSF) or Open Source Initiative (OSI) approved license
- 31. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
OpenJDK and Java Ownership
• Java is a registered trademark of Oracle
– OpenJDK is named idependently
– Access to the Technology Compatibility Kit (TCK) is restricted
• TCK access requires to sign the OpenJDK Community TCK License Agreement (OCTLA)
– OpenJDK or substantially projects only
– OCTLA did not allow to disclose TCK information to Non-OCTLA licensees
• OCTLA is not a trademark license
• OpenJDK could be used according to the OpenJDK Trademark Notice
– http://openjdk.java.net/legal/openjdk-trademark-notice.html
- 32. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
OpenJDK Infrastructure
• OpenJDK homepage
• Mercurial repositories
– Forests of nested sub-repositories
• Mailing lists
• JDK Bug System
– https://bugs.openjdk.java.net
• Code review server cr.openjdk.java.net
– Review requests in Webrev format
– Access only for Author or higher roles
• OpenJDK Wiki for group member only to get write access
- 33. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
OpenJDK Bug Reporting
• Bug should be reproduced with the latest builds
• Debug build is appropriate
• Simple test case desirable (Jtreg test, ..)
• JDK Bug System search for similar bugs
– Public visible bugs
– Invisible bugs like security bugs and customer bugs
• Non-Authors bug submit only with Java Bug Database and temp bug ID
– https://bugs.java.com/
• Use to write directly to the mailing list for simple reproducible bugs
- 34. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
OpenJDK Tools - Mercurial
• Mercurial is a distributed source control system implemented in Python
• OpenJDK uses nested sub-repositories, i.e. forest:
– to clone them manually, like corba, hotspot, jaxp, jaxws, jdk, langtools, nashorn
$ hg clone http://hg.openjdk.java.net/jdk9/dev jdk9-dev
$ cd jdk9-dev
$ hg clone http://hg.openjdk.java.net/jdk9/dev/hotspot
$ hg clone http://hg.openjdk.java.net/jdk9/dev/nashorn
– or use the get_source.sh script which does the same in parallel
$ hg clone http://hg.openjdk.java.net/jdk9/dev jdk9-dev
$ cd jdk9-dev
$ sh get_source.sh
• Use common/bin/hgforest.sh to execute hg commands in all repositories
- 35. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Difference between OpenJDK and Oracle JDK
• Security
• Performance
• Support
- 36. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
JDK 8 Update Information
• All information about JDK 8 Update Releases
http://openjdk.java.net/projects/jdk8u/
• Send bug reports - Report a Bug or Request a Feature
http://bugreport.java.com/bugreport/
• Track bug reports - Tracking Your Issues In The JDK Bug System
https://robilad.livejournal.com/139637.html
• How to contribute and Submit a patch
http://openjdk.java.net/contribute/
• Nominating a Contributor or Author to be a Committer
http://openjdk.java.net/projects/#project-committer
- 37. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
JDK Enhancement Proposal’s (JEP’s)
• Regularly updated list of proposals
– Serve as the long-term roadmap for JDK release projects
– Roadmap extends for at least three years
• Uniform format and a central archive for enhancement proposals
– Interested parties can find, read, comment, and contribute
• Process is open to every OpenJDK Committer
• Enhancement is a non-trivial change to the JDK code base
– Two or more weeks of engineering effort
– significant change to JDK or development processes and infrastructure
– High demand from developers or customers
• JDK Enhancement-Proposal & Roadmap Process
http://openjdk.java.net/jeps/1
- 38. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Java SE 8 Reference Implementations
• Available at https://jdk8.java.net/java-se-8-ri/
• Based solely upon open source code from JDK 8 Project in OpenJDK
– RI binaries source code available under the GPLv2 in a single zip file (118 MB)
• Binaries provided
– Oracle Linux 6.1 x64 Java Development Kit (154 MB)
– Windows 7 i586 Java Development Kit (90.1 MB)
– Oracle Linux 6.1 i586 (for Compact Profiles) JRE, see JEP 161 Compact Profiles
• Binaries provided primarily for use by implementor’s of the Java SE 8 Platform Specification
• Recommended for reference purposes only
• Reference Implementations have been approved by the JCP
• They will receive no updates, not even for security issues
• RI Binaries under the GNU General Public License version 2
– and under the Oracle Binary Code License
- 39. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
JDK 8 Updates Project in OpenJDK
• Oracle JDK 8 Updates based on an OpenJDK Project
• Web Site: http://openjdk.java.net/projects/jdk8u
• Information on developers and development processes
• Q & A and status updates
• Sources: http://hg.openjdk.java.net/jdk8u/jdk8u
• Master forest: jdk8u/jdk8u
• Development forest: http://hg.openjdk.java.net/jdk8u/jdk8u-dev
• Mailing list: jdk8u-dev@openjdk.java.net
39
- 40. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Release Cycle & Oracle OpenJDK Builds
- 41. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 41
• Oracle has started to produce OpenJDK Builds too
• Oracle has announced they plan to Open Source all Oracle JDK “Commercial Features”
• The goal is that OpenJDK Builds be completely interchangeable with the Oracle JDK
- 42. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 42
New JDK Release Model - LTS Every 3 years
Y1 Y2 Y3 Y4 Y5 Y6 Y7
9
10
11 LTS
12
13
Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15
14
15
16
17 LTS
18
19
- 43. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 43
New JDK Release Model – Starting with JDK 9
‘18 ‘19 ‘20 ‘21 ‘22 ‘23 ‘24 ‘25 ‘26 ‘27 ‘28 ‘29 ‘30 ‘31 ‘32
9
10
11 LTS
12
13
14
15
16
17 LTS
JDK 8
JDK 7
JDK 6
- 44. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 44
Oracle JDK Binaries
9
10
11 LTS
12
13
14
15
16
17 LTS
JDK 8
JDK 7
JDK 6
‘18 ‘19 ‘20 ‘21 ‘22 ‘23 ‘24 ‘25 ‘26 ‘27 ‘28 ‘29 ‘30 ‘31 ‘32
- 45. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 45
Oracle JDK & OpenJDK
9
10
11 LTS
12
13
14
15
16
17 LTS
JDK 8
JDK 7
JDK 6
‘18 ‘19 ‘20 ‘21 ‘22 ‘23 ‘24 ‘25 ‘26 ‘27 ‘28 ‘29 ‘30 ‘31 ‘32
Oracle JDK
OpenJDK - GPL
- 46. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 46
New JDK Release model
9
10
11 LTS
19.3 19.9 20.3 20.9 21.3
17 LTS
JDK 8
JDK 7
JDK 6
9 18.3
‘18 ‘19 ‘20 ‘21 ‘22 ‘23 ‘24 ‘25 ‘26 ‘27 ‘28 ‘29 ‘30 ‘31 ‘32
21.918.9 22.3 22.9 29.923.9 24.3 24.9 25.3 25.9 26.3 26.9 27.3 27.9 28.3 28.9 29.323.3 30.3 30.9 31.3 31.9 32.3
Oracle JDK
OpenJDK - GPL
23 LTS
29 LTS
35 LTS
- 47. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Summary
47
• The Java platform development on OpenJDK is becoming more open
– Contributing all commercial features
– GPL + CPE build
• The cloud is demanding a faster pace and continuous delivery
– Uptake new Java releases every 6-month
• Let‘s continue to innovate and advance the Java SE Platform on OpenJDK
together!
• Join and become an OpenJDK contributor
– https://openjdk.java.net
- 48. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Danke!
Wolfgang.Weigend@oracle.com
Twitter: @wolflook
48