From Java EE to Jakarta EE - A user perspective @jefrajames - EclipseCon Europe 2018
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
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”));
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 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