From Java EE to Jakarta EE - A user perspective @jefrajames - EclipseCon Europe 2018

Page created by Howard Graves
 
CONTINUE READING
From Java EE to Jakarta EE - A user perspective @jefrajames - EclipseCon Europe 2018
From Java EE to Jakarta EE
      A user perspective

           @jefrajames
From Java EE to Jakarta EE - A user perspective @jefrajames - EclipseCon Europe 2018
A user perspective?
From Java EE to Jakarta EE - A user perspective @jefrajames - EclipseCon Europe 2018
A few words about me

Speaker me = SpeakerOf
              .setLastName(“James”)
             .setFirstName(“Jean-François”)
             .setBackgroundInYears(Period.ofYears(32))
             .setCompany(“Worldline”)
             .addSkill(“Java”, Year.parse (“1997”));
From Java EE to Jakarta EE - A user perspective @jefrajames - EclipseCon Europe 2018
Agenda

• Retrospective from J2EE to Java EE 7

• Shifting to cloud-native applications

• The long road to Java EE 8

• Entering a turbulent zone

• Preparing the future
From Java EE to Jakarta EE - A user perspective @jefrajames - EclipseCon Europe 2018
From J2EE to Java EE 7

                                     Modern Java EE times
     J2EE
  Prehistoric
    times
                                                             Java EE 7

                                             Java EE 6
                        Java EE 5                             JBatch
      J2EE                                      CDI         Web Socket
                       Ease of Dev            JAX-RS          JSON-P
     Servlet              EJB 3                Bean         Concurrency
      JSP                  JPA               Validation
      EJB                  JSF               Web Profile
      JMS                JAX-WS

  1999-2003     2004     2006        2007      2009             2013
Innovation vs standardization

               Innovation       Standardization

             “Java EE is the place to standardize
           innovation in the Enterprise Java space”
Shifting to cloud-native applications

     2009       2010   2011   2012      2013       2014   2015
  (Java EE 6)                        (Java EE 7)
The long road to Java EE 8: 2014, 2015
The long road to Java EE 8: 2016
The long road to Java EE 8: 2017

• Released on 21 Sept. 2017
• Repository moved to GitHub (java.net decommissioned)
• Glassfish 5.0 as Reference Implementation

•   Java SE 8 alignment: DateTime API, CompetableFuture, repeatable annotations
•   Servlet 4.0: HTTP/2 support (Server Push)
•   CDI 2.0: asynchronous events, events ordering, better integration in other specs
•   JAX-RS 2.1: Server Sent Event, client-side reactive extensions
•   JSON Processing 1.1 and JSON Binding 1.0
•   Security: simplification, secret management
Entering a turbulent zone

                        Eclipse Foundation selected               EE4J

                                                      Java SE 9
Decision to open up Java EE
                                                      Java EE 8

          17/08                   12/09                21/09      29/09
Looking into the future

                          Java SE release cadence
Succeeding the JCP

                                       Cloud-native
    Modularity

                                 Other concerns …
       Governance
Succeeding the JCP           (1/2)

 “The mechanism for developing standard technical specifications for Java
                               technology”
Succeeding the JCP   (2/2)
Governance: strong is not enough                   (1/2)

• Overall coordination by PMC

• Each individual JSR managed by an Expert Group

• 3   deliverables:
  –    A Specification Document
  –    A Test Compatibility Kit
  –    A Reference Implementation

• Well-defined lifecycle:
Governance: strong is not enough                            (2/2)

•   Deliverables as JSR: doct, TCK, OS implementation (at least 1)

•   Run as individual Eclipse projects (39), no spec lead

•   Overall coordination by top-level EE4J project

•   Jakarta EE working group:
      • brand management
      • specification process (ongoing work)
Cloud-native   (1/2)

Sept. 2016   Aug 2017   Sept. 2017   Jan. 2018
Cloud-native         (2/2)

• Jakarta EE roadmap:
  – Q3-2018 : Glassfish 5.1 Java EE 8 certified
  – Q4-2018 : Glassfish 5.2 Jakarta EE 8 certified

• Microprofile roadmap:
  – 1.4: June 20, 2018 Java EE 7 compliant
  – 2.0: June 20, 2018 Java EE 8 compliant

• Cloud-native Jakarta EE=Glassfish 5.2+ Microprofile 2.0 (Q1-2019?)
Modularity       (1/1)

• Modular specifications:
  – Loosely coupled and highly consistent
  – Common foundation: CDI + configuration

• Modular API & implementations:
    1. Assign final module names for Jakarta EE APIs
    2. Declare dependencies & implementations using explicit modules

• Modular application servers:
  – Configurable and flexible
  – “Just enough run-time” is the new norm
Modularity       (2/2)

• Example of

• Configurable features:

• Configuration deployment (Liberty-maven-plugin):
  – Package-server: self-runnable fat jat
  – Deploy: thin war
Java SE release cadence

• Feature releases:
  – 2 releases/year to bring innovation (March, Sept.)
  – Not production-ready: support limited to 6 months, no overlap

• Long Term Support releases:
  – 1 release/3 years
  – Commercial support required

• My 2 cents for Jakarta EE:
  – 1 release/year in cruise mode
  – stick to LTS, ignore feature releases!
Other challenges

•   Migration path: from Java EE 7/8 to Jakarta EE
•   Overall consistency between specifications: EJB, CDI, JSF …
•   Flexibility to incorporate new technologies: NoSQL, Kafka, GraphQL …
•   Need for new profiles?
•   Ease of testing
•   Container awareness (done by Open JDK 10)
•   Better integration with Kubernetes
•   Service Mesh: the new ESB?
•   Fast startup (serverless)
Summary

• Java EE is dead but it has a promising follow-up: Jakarta EE

• A vendor-neutral open specification makes sense

• Eclipse Foundation is the place-to-be

• Microprofile has paved the way

• Let’s go for another 20 years!
As a user, you can be part of the story!

• The next two years will be decisive

• Stay tuned:
  – Visit the Jakarta EE Web Site: https://jakarta.ee/
  – Follow @JakartaEE on Twitter
  – Become a @javaee_guardian

• Start learning Java EE 8 and Microprofile ASAP

• Test, provide feedback, feel concerned
Thank you!
You can also read