TECHNOLOGY WHITE PAPER Best Practices for Moving to OpenJDK Best Practices for Moving to OpenJDK Since Java SE 7, the OpenJDK has been the reference implementation (RI) of the Java SE standard, as dened by the relevant Java Specication Request (JSR). A project was also created for OpenJDK 6 to allow an open-source implementation of Java SE 6 to be built. Azul Systems is the project lead for OpenJDK 6. OpenJDK is licensed under the GNU Public License (GPL) version 2 with classpath exception (CPE). The CPE eliminates the viral nature of the GPL from affecting applications running on the OpenJDK. Changes to JDK Binary Distribution and Updates In September 2017, Oracle announced a series of changes to the way the JDK would be developed, This whitepaper explains what Zulu is and how to migrate distributed and updated. These changes can be applications from the Oracle JDK to the Zulu builds of summarized as follows: OpenJDK. • The release of the JDK has changed to a time-based model with two releases every year, in March and September. • Oracle has started to produce a second binary distribution of the JDK, built using only the OpenJDK Introduction source code. This is released under the GPLv2 with How the Java Development Kit (JDK) is delivered is classpath exception license, which is less restrictive changing, and these changes will impact many Java than the Oracle Binary Code License for Java SE users. From JDK 11 (to be released in September 2018) used for the Oracle JDK binary. it will no longer be possible to use the Oracle JDK in • From JDK 11, there are no functional differences production without a commercial support agreement. between the Oracle JDK binary and one built purely To provide an alternative Java runtime with economically from OpenJDK source. To achieve this, Oracle has priced support and continued access to bug xes and contributed some previously closed-source features to security patches, Azul Systems has created the Zulu the OpenJDK (e.g., Mission Control and Flight OpenJDK distribution. This whitepaper explains what Zulu Recorder). Oracle has also removed some features is and how to migrate applications from the Oracle JDK to from the Oracle JDK binary such as Java Web Start the Zulu builds of OpenJDK. We have also appended a and JavaFX. series of links from the Oracle and Azul Systems websites to help you understand your Java support • From JDK 11 the Oracle JDK will no longer be free for alternatives. use in production. It can be used for development and testing but requires a commercial support The OpenJDK agreement for use in production. In 2006 Sun Microsystems, the then custodian of Java, • OpenJDK binaries will only be updated for six months announced that it was open-sourcing its implementation until the next JDK is released. Long-term support from of the JDK. To do this, it created the OpenJDK project, Oracle will only be available for the Oracle JDK binary hosted at http://openjdk.java.net under the commercial support agreement. • Public updates for JDK 8 end in January 2019. After Initially, just the JVM source code was released, but this that, users will still be able to use JDK 8 in the same was followed early in 2007 by that of the core libraries. way they have previously, but there will be no more Some parts remained closed-source until April 2009 with freely available security patches or bug xes provided build 53 of OpenJDK 7, when a complete JDK could be by Oracle. built using only open-source code. TABLE OF CONTENTS Introduction 2 Encryption 3 Migrating Applications to use the Zulu JDK 5 The OpenJDK 2 Getting support, timely security updates 5 Changes to JDK Binary Distribution and 2 Class Libraries 4 and bugxes for Zulu Updates Other Features 4 The Zulu Commercial Compatibility Kit 5 The Zulu Build of OpenJDK 3 Developer Tools 4 Conclusions 5 Differences Between OpenJDK and the 3 Java Runtime Deployment Strategy 4 Additional Resources 5 Oracle JDK Migrating to Zulu Enterprise 5 2 Java Virtual Machine (JVM) 3 Downloading and Installing Zulu 5 Best Practices for Moving to OpenJDK The Zulu Build of OpenJDK The following sections outline the differences between The OpenJDK is merely source code; in order to use this the source code of the OpenJDK and what is included in as a Java runtime, it is necessary to build a binary the Oracle JDK (prior to JDK 11). Azul makes specic distribution. Azul’s binary distribution of the OpenJDK is changes to minimize these differences, and these are called Zulu. also noted. To create Zulu, the standard build procedure, available as part of the OpenJDK, is used. To ensure confor- The following are not included in the OpenJDK: mance with the Java SE specication, the full suite of SNMP: The Oracle JDK provides closed-source support. Technology Compatibility Kit (TCK) tests are run on the There is no equivalent in the Zulu JDK. This will be resulting Zulu binaries. removed from the Oracle JDK as of JDK 11. To ensure that the JDK is as stable and secure as Sound Drivers: The Oracle JDK provides this for possible, regular updates are provided for the OpenJDK, Windows only. There is no equivalent in the Zulu JDK. which contain bug xes and security patches. The following differ between OpenJDK and the Oracle Until JDK 9, these updates were provided for the current JDK: release and for the previous release during an overlap Color Matching: The Oracle JDK replaces this feature period that has lasted between 13 and 37 months since with a closed-source version. The Zulu JDK uses the the release of JDK 6. Both OpenJDK 6 and OpenJDK 7 version from OpenJDK, which is comparable but not have reached the end of availability of public updates. identical. Azul includes backported updates from JDK 8 in Zulu Fonts: Both the Oracle and Zulu JDKs provide the same versions of JDK 6 and JDK 7. This enables customers to set of commercially licensed fonts. For more details of ensure the stability and security of older Java versions fonts for Zulu see the later section on the Commercial still in production use. Compatibility Kit. Azul’s engineering team has many staff-years of experi- Font Rendering: The Oracle JDK uses a closed-source ence working on the JDK; many of them having worked font renderer (T2K). Zulu (and OpenJDK) use an for Sun Microsystems and Oracle. open-source renderer (FreeType), which is comparable but not identical. Differences Between OpenJDK and the Oracle JDK Java 2D Graphics Rasterizer: Prior to JDK 9, the As the OpenJDK is the reference implementation of the OpenJDK used the open-source Pisces renderer, which Java SE standard, Oracle (and others) uses this as the was replaced with a closed-source version, Ductus, in basis for their JDK binary distributions. However, the the Oracle JDK. In JDK 9, Pisces was replaced by the pre-JDK 11 Oracle JDK is a super-set of the OpenJDK, Marlin renderer, which gives performance comparable which includes a number of additional features. Some of to Ductus. The Zulu JDK has used Marlin since JDK 8. these are open source; some are closed source. The diagram below shows the relationship between the Encryption Java SE standard (as dened by the relevant Java The Oracle JDK and OpenJDK both support the same Specication Request (JSR) of the Java Community encryption and cryptography capabilities with identical Process (JCP)), the OpenJDK and the Oracle JDK. code. Since January 2018, (and the release of JDK 8 update 161) all OpenJDK-based distributions (Zulu and Oracle) Oracle JDK switched to using an “unlimited” strength cryptographic policy. Prior to this release, the default was “strong” (128 bit), and it was necessary to use additional Open JDK packages to upgrade this to unlimited. For the Oracle JDK, there was the Java Cryptographic Extensions (JCE) package, and for Zulu, there was the Cryptographic Extension Kit (CEK). Java SE Zulu and OpenJDK have generally followed the same cryptographic changes roadmap that Oracle has, which can be found here: https://www.java.com/en/jre-jdk-cryptoroadmap.html 3 Best Practices for Moving to OpenJDK Class Libraries There are several choices: JavaFX: This is included in the Oracle JDK but not the 1: Continue to use the existing runtime, such as JDK 8, Zulu JDK. There is a separate open-source project called without further updates for security patches or bug xes. OpenJFX. Azul can provide support for OpenJFX, but it is This is the option with the most signicant level of risk, not part of the core Zulu product. Oracle has announced as systems will potentially be open to security aws or that, as of JDK 11, JavaFX will no longer be included in instability. For specic use-cases, like PCI compliance, the Oracle JDK. The OpenJFX project can be found at this may also expose the application to compliance http://openjdk.java.net/projects/openjfx regulation issues. Other Features 2: Migrate applications to the latest version of the JDK Browser plugin: This is included in the Oracle JDK but using free OpenJDK binaries and repeat this every six not the Zulu JDK. This was deprecated from the Oracle months, as new JDK versions are released. This choice JDK in JDK 9 and will be removed from JDK 11. still has considerable risks associated with it. Oracle has stated that new releases of the JDK may contain Java Web Start: This is included in the Oracle JDK but changes that break backward compatibility (something not the Zulu JDK.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages5 Page
-
File Size-