Choosing a Java Vendor and Flavor for Your Workplace

Choosing a Java Vendor and Flavor for Your Workplace

There now exist several vendors for Java. This session will provide meaningful data-points that can be weighted within your organization to help make the right decisions, but will NOT attempt to influence which vendor is chosen.

This session highlights various decision factors that go into making the right choices, be it key differentiators, usage, licensing models, support, patching etc. that determine what works best for your organization.

Additionally, decisions such as sticking to an existing version of Java (say Java 8 or moving to a new stable version such as Java 11, or moving along side the each version of Java will be evaluated). Data from the some of the well-known Java vendors will be shared as examples used in evaluation.

C2c1c3d25e26fd444b59e47744c932ba?s=128

Chandra Guntur

May 21, 2019
Tweet

Transcript

  1. @CGuntur CHOOSING A 
 JAVA VENDOR AND FLAVOR FOR YOUR

    WORKPLACE CHANDRA GUNTUR
  2. @CGuntur CHANDRA GUNTUR ABOUT Speaker: Oracle Code One, Devnexus, QCon

    New York, Oracle Code New York, Great India Developer Summit and at several Java User Groups JCP Executive Committee (EC) secondary representative for BNY Mellon JUG Leader: Organizer, Presenter at NYJavaSIG and NYJavaSIG Hands-On Workshops Contributor to the open sourced eclipse-collections Active on blogging and tweeting about Java
  3. @CGuntur JAVA 8

  4. @CGuntur JAVA 8 . . .

  5. @CGuntur JAVA 8 . . .

  6. @CGuntur JAVA 8 JAVA 11 . . .

  7. @CGuntur JAVA 8 JAVA 11 . . .

  8. @CGuntur JAVA 8 JAVA 11 . . .

  9. @CGuntur

  10. @CGuntur AGENDA • Understanding Long Term Support • Licenses in

    the JDK space • Support models from Oracle • Evaluation considerations • Java Vendors
  11. @CGuntur WHAT IS LONG TERM SUPPORT (LTS) • An understanding

    between the various Java contributors.
 
 • Currently, led by Oracle and Red Hat.
 
 • New OpenJDK release every 6 months (9, 10, 11,12 ..).
  12. @CGuntur WHAT IS LONG TERM SUPPORT (LTS) - CONTINUED •

    Most versions of Java SE ‘maintained’ for 6 months.
 
 • Some versions supported longer for commercial reasons.
 
 • These ‘LTS’ versions of Java are released every 3 years. 
 
 • Oracle JDK releases map to OpenJDK LTS (11, 17, 23, …)
  13. @CGuntur March/ September 
 of each year
 new OpenJDK release

    6 months RELEASE CADENCE Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years)
  14. @CGuntur ~6 Months after each OpenJDK release,
 Oracle relinquishes 


    stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK 6 months RELEASE CADENCE Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years)
  15. @CGuntur Oracle JDK released 
 along side the 
 LTS

    OpenJDK release Oracle LTS JDK released 
 along side the 
 LTS OpenJDK release 6 months RELEASE CADENCE Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years)
  16. @CGuntur Oracle JDK released 
 along side the 
 LTS

    OpenJDK release Oracle LTS JDK released 
 along side the 
 LTS OpenJDK release March/ September 
 of each year
 new OpenJDK release ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK ~6 Months after each OpenJDK release,
 Oracle relinquishes 
 stewardship of OpenJDK 6 months RELEASE CADENCE Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years)
  17. @CGuntur OPENJDK AND ORACLE JDK 6 months Mar. 2018
 Java

    SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle™ JDK LTS LTS
  18. @CGuntur OpenJDK 10
 Ref. Impl. OPENJDK AND ORACLE JDK 6

    months Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle™ JDK LTS LTS
  19. @CGuntur OpenJDK 10
 Ref. Impl. OpenJDK 11
 Ref. Impl. OPENJDK

    AND ORACLE JDK 6 months Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle™ JDK LTS LTS
  20. @CGuntur OpenJDK 10
 Ref. Impl. OpenJDK 12
 Ref. Impl. OpenJDK

    13
 Ref. Impl. OpenJDK 14
 Ref. Impl. OpenJDK 15
 Ref. Impl. OpenJDK 16
 Ref. Impl. OpenJDK 17
 Ref. Impl. OpenJDK 11
 Ref. Impl. OPENJDK AND ORACLE JDK 6 months Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle™ JDK LTS LTS
  21. @CGuntur OpenJDK 10
 Ref. Impl. OpenJDK 12
 Ref. Impl. OpenJDK

    13
 Ref. Impl. OpenJDK 14
 Ref. Impl. OpenJDK 15
 Ref. Impl. OpenJDK 16
 Ref. Impl. OpenJDK 17
 Ref. Impl. OpenJDK 11
 Ref. Impl. OPENJDK AND ORACLE JDK 6 months Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle™ JDK LTS LTS
  22. @CGuntur OpenJDK 10
 Ref. Impl. OpenJDK 12
 Ref. Impl. OpenJDK

    13
 Ref. Impl. OpenJDK 14
 Ref. Impl. OpenJDK 15
 Ref. Impl. OpenJDK 16
 Ref. Impl. OpenJDK 17
 Ref. Impl. OpenJDK 11
 Ref. Impl. OPENJDK AND ORACLE JDK 6 months Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle JDK 8
 Std. Impl. Jan. 2019 Mar. 2014 Oracle™ JDK LTS LTS
  23. @CGuntur OpenJDK 10
 Ref. Impl. OpenJDK 12
 Ref. Impl. OpenJDK

    13
 Ref. Impl. OpenJDK 14
 Ref. Impl. OpenJDK 15
 Ref. Impl. OpenJDK 16
 Ref. Impl. OpenJDK 17
 Ref. Impl. OpenJDK 11
 Ref. Impl. OPENJDK AND ORACLE JDK 6 months Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle JDK 8
 Std. Impl. Jan. 2019 Mar. 2014 Oracle™ JDK LTS LTS
  24. @CGuntur OpenJDK 10
 Ref. Impl. OpenJDK 12
 Ref. Impl. OpenJDK

    13
 Ref. Impl. OpenJDK 14
 Ref. Impl. OpenJDK 15
 Ref. Impl. OpenJDK 16
 Ref. Impl. OpenJDK 17
 Ref. Impl. OpenJDK 11
 Ref. Impl. OPENJDK AND ORACLE JDK 6 months Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle JDK 8
 Std. Impl. Jan. 2019 Mar. 2014 Oracle JDK 9
 Std. Impl. Oracle™ JDK LTS LTS
  25. @CGuntur OpenJDK 10
 Ref. Impl. OpenJDK 12
 Ref. Impl. OpenJDK

    13
 Ref. Impl. OpenJDK 14
 Ref. Impl. OpenJDK 15
 Ref. Impl. OpenJDK 16
 Ref. Impl. OpenJDK 17
 Ref. Impl. OpenJDK 11
 Ref. Impl. OPENJDK AND ORACLE JDK 6 months Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle JDK 10
 Std. Impl. Oracle JDK 8
 Std. Impl. Jan. 2019 Mar. 2014 Oracle JDK 9
 Std. Impl. Oracle™ JDK LTS LTS
  26. @CGuntur OpenJDK 10
 Ref. Impl. OpenJDK 12
 Ref. Impl. OpenJDK

    13
 Ref. Impl. OpenJDK 14
 Ref. Impl. OpenJDK 15
 Ref. Impl. OpenJDK 16
 Ref. Impl. OpenJDK 17
 Ref. Impl. OpenJDK 11
 Ref. Impl. OPENJDK AND ORACLE JDK 6 months Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle JDK 10
 Std. Impl. Oracle JDK 11
 Std. Impl. Oracle JDK 8
 Std. Impl. Jan. 2019 Mar. 2014 Oracle JDK 9
 Std. Impl. Oracle™ JDK LTS LTS
  27. @CGuntur OpenJDK 10
 Ref. Impl. OpenJDK 12
 Ref. Impl. OpenJDK

    13
 Ref. Impl. OpenJDK 14
 Ref. Impl. OpenJDK 15
 Ref. Impl. OpenJDK 16
 Ref. Impl. OpenJDK 17
 Ref. Impl. OpenJDK 11
 Ref. Impl. OPENJDK AND ORACLE JDK 6 months Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle JDK 10
 Std. Impl. Oracle JDK 11
 Std. Impl. Oracle JDK 12
 Std. Impl. Oracle JDK 13
 Std. Impl. Oracle JDK 14
 Std. Impl. Oracle JDK 15
 Std. Impl. Oracle JDK 16
 Std. Impl. Oracle JDK 8
 Std. Impl. Jan. 2019 Mar. 2014 Oracle JDK 9
 Std. Impl. Oracle™ JDK LTS LTS
  28. @CGuntur OpenJDK 10
 Ref. Impl. OpenJDK 12
 Ref. Impl. OpenJDK

    13
 Ref. Impl. OpenJDK 14
 Ref. Impl. OpenJDK 15
 Ref. Impl. OpenJDK 16
 Ref. Impl. OpenJDK 17
 Ref. Impl. OpenJDK 11
 Ref. Impl. OPENJDK AND ORACLE JDK 6 months Mar. 2018
 Java SE 10 Sep. 2018
 Java SE 11 Mar. 2019
 Java SE 12 Sep. 2019
 Java SE 13 Mar. 2020
 Java SE 14 Sep. 2020
 Java SE 15 Mar. 2021
 Java SE 16 Sep. 2021
 Java SE 17 Mar./Sep. 
 Each Year Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. Next
 Sep./Mar. Next
 Mar./Sep. 18 months (3 years) OpenJDK Oracle JDK 10
 Std. Impl. Oracle JDK 11
 Std. Impl. Oracle JDK 12
 Std. Impl. Oracle JDK 13
 Std. Impl. Oracle JDK 14
 Std. Impl. Oracle JDK 15
 Std. Impl. Oracle JDK 16
 Std. Impl. Oracle JDK 17
 Std. Impl. Oracle JDK 8
 Std. Impl. Jan. 2019 Mar. 2014 Oracle JDK 9
 Std. Impl. Oracle™ JDK LTS LTS
  29. @CGuntur BORROWED FROM “JAVA IS STILL FREE” [*] ORACLE’S OPENJDK

    UPDATE MATRIX Oracle OpenJDK Build Version Release Date Notes on Oracle Updates 8 March 2014 Long Term Support. 
 At least until January 2020 (personal desktop use)
 Ends January 2019 for commercial use 9 September 2017 Obsolete. Superseded by Oracle OpenJDK build 10 10 March 2018 Obsolete. Superseded by Oracle OpenJDK build 11 11 September 2018 Long Term Support. Superseded by Oracle OpenJDK build 12 12 March 2019 To be superseded by Oracle OpenJDK build 13 13 September 2019 To be superseded by Oracle OpenJDK build 14 Link: https://medium.com/@javachampions/java-is-still-free-2-0-0-6b9aa8d6d244
  30. @CGuntur BORROWED FROM “JAVA IS STILL FREE” [*] GENERIC OPENJDK

    UPDATE MATRIX Link: https://www.theserverside.com/news/252461945/Red-Hat-replaces-Oracle-as-OpenJDK-8-OpenJDK-11-steward Version Release Date Notes on Updates OpenJDK 6 Primarily supported by Azul Systems OpenJDK 7 Primarily supported by RedHat at least through June 2020 OpenJDK 8 March 2014 At least through September 2023. RedHat to lead after January 2019
 Supported by Amazon, Azul Systems, IBM and others. OpenJDK 9 September 2017 Superseded by OpenJDK 10 OpenJDK 10 March 2018 Superseded by OpenJDK 11 OpenJDK 11 September 2018 Supported stewarded by RedHat, supported by others [*] OpenJDK 12 March 2019 To be superseded by OpenJDK 13 OpenJDK 13 September 2019 To be superseded by OpenJDK 14 Link: https://medium.com/@javachampions/java-is-still-free-2-0-0-6b9aa8d6d244
  31. @CGuntur AGENDA • Understanding Long Term Support • Licenses in

    the JDK space • Support models from Oracle • Evaluation considerations • Java Vendors
  32. @CGuntur LICENSES IN THE JAVA WORLD Content intended for information

    only, 
 and is based on personal interpretation. I AM NOT A LAWYER.
  33. @CGuntur LICENSE JARGON Various licenses exist:
 • Oracle Binary Code

    License Agreement
 • Oracle Technology Network License Agreement for Oracle Java SE
 • GNU General Public License v2 with CE
  34. @CGuntur LICENSE JARGON ORACLE BINARY CODE LICENSE • ‘Free’ as

    in speech, not as in lunch.
 • Allows to reproduce and internally use the software.
 • Provided software copyrighted & IP of Oracle and/or licensors.
 • Disclaimer of warranty and limitation of liability apply. Link: https://www.oracle.com/technetwork/java/javase/terms/license/index.html
  35. @CGuntur LICENSE JARGON ORACLE BINARY CODE LICENSE • Restrictions on

    Commercial Features and Java Technology.
 • Commercial Features cannot be used other than per agreement.
 • Cannot modify content under packages: java, javax, sun, oracle.
 • Disallowed to redistribute certain source code per agreement. Link: https://www.oracle.com/technetwork/java/javase/terms/license/index.html C O N TIN U ED
  36. @CGuntur LICENSE JARGON GNU GENERAL PUBLIC LICENSE WITH CLASSPATH EXCEPTION

    • ‘Free’ as in speech, not as in lunch.
 • If patented, the software should allow for free use.
 • Redistributions have same license rules & require free sources.
 • Carry-forward of all copy rights is a must (code change allowed). Link: http://openjdk.java.net/legal/gplv2+ce.html
  37. @CGuntur LICENSE JARGON GNU GENERAL PUBLIC LICENSE WITH CLASSPATH EXCEPTION

    • No warranty for the program/application since it is free for use. 
 • No other license can be applied to altered parts (exception below).
 • Certain Oracle source files carry a disagreement with license.
 • Such files are bundled with the distro, as “classpath exception”. C O N TIN U ED Link: http://openjdk.java.net/legal/gplv2+ce.html
  38. @CGuntur LICENSE JARGON ORACLE TECHNOLOGY NETWORK LICENSE • ‘Free’ as

    in lunch!
 • Free for personal/development, Oracle Product and Oracle Cloud use.
 • Source code, if under license, is shared via Oracle OSS portals.
 • No tech. support, no phone support, no updates. Link: https://www.oracle.com/technetwork/java/javase/terms/license/javase-license.html
  39. @CGuntur LICENSE JARGON ORACLE TECHNOLOGY NETWORK LICENSE • Cannot remove

    any licensing or proprietary rights.
 • Cannot redistribute this software without additional agreement.
 • Cannot reverse engineer, disassemble or decompile the code.
 • Cannot modify content under packages: java, javax, sun, oracle. C O N TIN U ED Link: https://www.oracle.com/technetwork/java/javase/terms/license/javase-license.html
  40. @CGuntur AGENDA • Understanding Long Term Support • Licenses in

    the JDK space • Support models from Oracle • Evaluation considerations • Java Vendors
  41. @CGuntur VARIOUS SUPPORT MODELS FROM ORACLE • Developers and Personal

    - OTN Support
 • For Enterprise - Premier Support • For Enterprise - Extended Support • For Enterprise - Sustaining Support
 • For Enterprise - Java SE Subscription
  42. @CGuntur ORACLE SUPPORT OPTIONS OTN SUPPORT • Oracle to push

    updates to distribution site.
 • No phone or tech. support provided on demand.
 • No update/patch service for new binaries.
 • Only for development or personal use.
  43. @CGuntur ORACLE SUPPORT OPTIONS PREMIER SUPPORT • Targeted for the

    enterprise.
 • Available for 5 years from the general availability date.
 • For Oracle DBs, Oracle Fusion middleware as well as Oracle apps.
 • Provides no upgrade strategy options beyond 5 years.
  44. @CGuntur ORACLE SUPPORT OPTIONS EXTENDED SUPPORT • Targeted for the

    enterprise.
 • Available for >5 years from the general availability date, costs more.
 • For Oracle DBs, Oracle Fusion middleware as well as Oracle apps.
 • Provides implicit upgrade strategy options beyond 5 years.
  45. @CGuntur ORACLE SUPPORT OPTIONS SUSTAINED SUPPORT • Targeted for the

    enterprise.
 • Available for almost unlimited time, costs the most.
 • Provides online support tools, upgrade rights & pre-existing fixes.
 • Provides implicit upgrade strategy options beyond 5 years.
  46. @CGuntur ORACLE SUPPORT OPTIONS JAVA SE SUBSCRIPTION SUPPORT • Targeted

    for the enterprise.
 • Support for versions beyond End of Public Updates (EoPU).
 • Round-the-clock My Oracle Support via email and phone.
 • Simple pricing models: • a Desktop pricing per user per month with tiered volume discounts. • a Server pricing per processor per month with tiered volume discounts.
  47. @CGuntur AGENDA • Understanding Long Term Support • Licenses in

    the JDK space • Support models from Oracle • Evaluation considerations • Java Vendors
  48. @CGuntur HOW TO CHOOSE A JAVA STRATEGY WHAT TO CONSIDER

    • Current developer environment and skills • Applications versus libraries development • Java usage topography • Existing vendor products in use • Licensing concerns and support aspirations • Ensuring JDK updates (patches, security fixes)
  49. @CGuntur JAVA VERSION STRATEGY Content intended for information only, 


    and is based on personal interpretation.
  50. @CGuntur JAVA VERSION STRATEGY USE JAVA 8 • Most developers

    are very comfortable with Java 8
 • Java 8 has matured for a long time and is battle-tested
 • Does not require thinking in modules and corollary 
 • Easier for reflection and legacy third party libraries Java 8
  51. @CGuntur JAVA VERSION STRATEGY USE JAVA 8 • Oracle JDK

    8 has an commercial-use restrictions : • Available with subscription beyond Apr. 2019 • Personal/development use until ~Dec. 2020
 • Other JDK vendors also provide Java 8 with LTS Java 8
  52. @CGuntur JAVA VERSION STRATEGY USE JAVA “CURRENT” • Upgrade every

    6 months to a new release of the JDK
 • Ensures Java support, upgrades and patches
 • May prove too experimental for high impact applications
 • Will have feature toggles for bleeding edge features Java ‘C urrent’
  53. @CGuntur JAVA VERSION STRATEGY USE JAVA “CURRENT” • Helps stay

    current with the latest changes
 • Good for agile environments
 • Developers get to adapt to using new features sooner Java ‘C urrent’
  54. @CGuntur JAVA VERSION STRATEGY USE JAVA 11 • Most recent

    and stable LTS version of Java
 • Several new enhancements and performance gains
 • Supports modularity and other newer safety features
 • Code improves due to encapsulation/security changes Java 11
  55. @CGuntur JAVA VERSION STRATEGY USE JAVA 11 • Syntactic-sugar changes

    bring code readability gains 
 • Several JDK vendors exist, opening up the choices
 • Oracle JDK has support for its JDK 11 at least until 2026 Java 11
  56. @CGuntur AGENDA • Understanding Long Term Support • Licenses in

    the JDK space • Support models from Oracle • Evaluation considerations • Java Vendors
  57. @CGuntur JAVA POPULAR VENDORS Content intended for information only, 


    and is based on personal interpretation.
  58. @CGuntur JAVA VENDORS PROVIDER SUMMARY JDK 
 Distro Name Versions

    Supported TCK 
 Compliance Public 
 Updates Architectur es Supported Commercial 
 Support AdoptOpenJDK 8 No ~ Sep. 2023 Major + Minor IBM (OpenJ9 & HotSpot) jClarity (HotSpot) 11 No ~ Sep. 2023 Amazon Corretto 8 Yes ~ Jun. 2023 Major No ‘commercial support’. Amazon provides quarterly updates 11 Yes ~Aug. 2024 Major Azul Zulu 8 Yes ? Major + Minor Azul 11 Bellsoft Liberica JDK 8 Yes ~2023 Major + Minor BellSoft 11 Oracle OpenJDK 11 Yes ~Mar. 2019 Major Oracle (via Oracle JDK) SapMachine 11 Yes ? Major ? Link: https://medium.com/@javachampions/java-is-still-free-2-0-0-6b9aa8d6d244
  59. @CGuntur JAVA VENDORS AMAZON • Free builds for Win, Linux,

    Mac with LTS updates and patches. • Used by thousands of production services on AWS. • No explicit commercial support plan, quarterly updates planned until 2024. • Targeted for major operating systems only. • Important Links: • https://aws.amazon.com/corretto/ • https://github.com/corretto/ Amazon Corretto
  60. @CGuntur JAVA VENDORS AZUL • Offers a Medium Term Support

    of ~1.5 years for every version. • One of the most widely used non-Oracle JDK • Multiple offerings of Zulu (OpenJDK) and Zing (Java platform). • Zulu support charge is per-system not per-CPU. • Has a standard and a premium support tier (premium allows 24x7 phone support). • Important Links: • https://www.azul.com/products/azul_support_roadmap/ • https://www.azul.com/products/zulu-enterprise/ Zulu, Zing, Zing Enterprise
  61. @CGuntur JAVA VENDORS BELLSOFT • Available for desktop, server as

    well as for embedded use. • Supports several architectures of Linux, MacOS, Windows, Solaris etc. • Can support additional platforms on a per-request basis. • Commercial support (standard or premium) for LTS versions. • Support is by number of desktops physical/virtual servers or embedded devices. • Important Links: • https://bell-sw.com/ • https://support.bell-sw.com/support Liberica JDK
  62. @CGuntur JAVA VENDORS IBM • Available for desktop as well

    as for server use. • IBM JDK supports several architectures of AIX, Linux, z/OS, IBM i etc. • Also supports AdoptOpenJDK builds with either HotSpot or OpenJ9 VMs. • IBM LTS releases will be available as OpenJDK with OpenJ9 binaries from AdoptOpenJDK. • Support for IBM JDK 7 & 8 is ongoing. Newer support options will be added with time. • Important Links: • https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=openj9 • https://developer.ibm.com/javasdk/ • https://www.ibm.com/cloud/support-for-runtimes AdoptOpenJDK, IBM JDK & IBM OpenJ9 VM
  63. @CGuntur JAVA VENDORS JCLARITY • Available for desktop as well

    as for server use. • Supports several flavors of Linux, Mac, Windows, Arm, Solaris etc. • Supports AdoptOpenJDK builds with HotSpot VM only. • Backed by Amazon, Azul, GoDaddy, IBM, jClarity, Pivotal, Red Hat and many more. • Commercial support for AdoptOpenJDK LTS releases for up to 5 years. • Support is neither constrained by JVM nor host, priced on flexible metrics. • Important Links: • https://www.jclarity.com/adoptopenjdk-support/ • https://adoptopenjdk.net/support.html AdoptOpenJDK
  64. @CGuntur JAVA VENDORS REDHAT • Available for RH Enterprise Linux

    server use. • Supports several platforms where Enterprise Linux runs. • Also provides source RPMs for CentOS. • RH did not produce binaries for JDK 9 and JDK 10. • OpenJDK 11 for RHEL 7 will be released once tested and will be supported until 2024. • Has the ability to patch updates and backport to OpenJDK shipped for RHEL. • Important Links: • https://access.redhat.com/articles/1299013 • https://developers.redhat.com/products/openjdk/overview/ RedHak JDK For Enterprise Linux
  65. @CGuntur JAVA VENDORS SAP • General intent is for SAP

    vendors and customers. • Supports Windows, Linux and Macs. • Also provides source RPMs for CentOS. • Maintenance update every 3 months. • LTS releases supported for 4 years. • Professional support available via SAP Support Portal. • Important Links: • https://sap.github.io/SapMachine/ • https://github.com/SAP/SapMachine/wiki/Security-Updates,- Maintenance-and-Support SapMachine
  66. @CGuntur THANK YOU ! https://twitter.com/CGuntur https://cguntur.me https://linkedin.com/in/cguntur