$30 off During Our Annual Pro Sale. View Details »

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.

Chandra Guntur

May 21, 2019
Tweet

More Decks by Chandra Guntur

Other Decks in Technology

Transcript

  1. @CGuntur
    CHOOSING A 

    JAVA VENDOR AND FLAVOR
    FOR YOUR WORKPLACE
    CHANDRA GUNTUR

    View Slide

  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

    View Slide

  3. @CGuntur
    JAVA 8

    View Slide

  4. @CGuntur
    JAVA 8
    . . .

    View Slide

  5. @CGuntur
    JAVA 8
    . . .

    View Slide

  6. @CGuntur
    JAVA 8 JAVA 11
    . . .

    View Slide

  7. @CGuntur
    JAVA 8 JAVA 11
    . . .

    View Slide

  8. @CGuntur
    JAVA 8 JAVA 11
    . . .

    View Slide

  9. @CGuntur

    View Slide

  10. @CGuntur
    AGENDA
    • Understanding Long Term Support
    • Licenses in the JDK space
    • Support models from Oracle
    • Evaluation considerations
    • Java Vendors

    View Slide

  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 ..).

    View Slide

  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, …)

    View Slide

  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)

    View Slide

  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)

    View Slide

  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)

    View Slide

  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)

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  31. @CGuntur
    AGENDA
    • Understanding Long Term Support
    • Licenses in the JDK space
    • Support models from Oracle
    • Evaluation considerations
    • Java Vendors

    View Slide

  32. @CGuntur
    LICENSES
    IN THE
    JAVA WORLD
    Content intended for information only, 

    and is based on personal interpretation.
    I AM NOT A LAWYER.

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  40. @CGuntur
    AGENDA
    • Understanding Long Term Support
    • Licenses in the JDK space
    • Support models from Oracle
    • Evaluation considerations
    • Java Vendors

    View Slide

  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

    View Slide

  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.

    View Slide

  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.

    View Slide

  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.

    View Slide

  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.

    View Slide

  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.

    View Slide

  47. @CGuntur
    AGENDA
    • Understanding Long Term Support
    • Licenses in the JDK space
    • Support models from Oracle
    • Evaluation considerations
    • Java Vendors

    View Slide

  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)

    View Slide

  49. @CGuntur
    JAVA
    VERSION
    STRATEGY
    Content intended for information only, 

    and is based on personal interpretation.

    View Slide

  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

    View Slide

  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

    View Slide

  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’

    View Slide

  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’

    View Slide

  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

    View Slide

  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

    View Slide

  56. @CGuntur
    AGENDA
    • Understanding Long Term Support
    • Licenses in the JDK space
    • Support models from Oracle
    • Evaluation considerations
    • Java Vendors

    View Slide

  57. @CGuntur
    JAVA
    POPULAR
    VENDORS
    Content intended for information only, 

    and is based on personal interpretation.

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  66. @CGuntur
    THANK YOU !
    https://twitter.com/CGuntur https://cguntur.me https://linkedin.com/in/cguntur

    View Slide