25
From Java EE to Jakarta EE A user perspective @jefrajames

From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

From Java EE to Jakarta EE A user perspective

@jefrajames

Page 2: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

A user perspective?

Page 3: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

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”));

Page 4: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

• 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

Agenda

Page 5: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

From J2EE to Java EE 7

1999-2003 2004 2006 2007 2009 2013

J2EE

Servlet JSP EJB JMS

Java EE 5

Ease of Dev EJB 3 JPA JSF

JAX-WS

Java EE 6

CDI JAX-RS Bean

Validation Web Profile

Java EE 7

JBatch Web Socket

JSON-P Concurrency

J2EE Prehistoric

times

Modern Java EE times

Page 6: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

Innovation vs standardization

Innovation Standardization

“Java EE is the place to standardize innovation in the Enterprise Java space”

Page 7: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

Shifting to cloud-native applications

2009 2010 2011 2012 2013 2014 2015 (Java EE 6) (Java EE 7)

Page 8: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

The long road to Java EE 8: 2014, 2015

Page 9: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

The long road to Java EE 8: 2016

Page 10: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

• 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

The long road to Java EE 8: 2017

Page 11: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

Entering a turbulent zone

17/08

Decision to open up Java EE

Eclipse Foundation selected

12/09 21/09

Java SE 9 Java EE 8

29/09

EE4J

Page 12: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

Looking into the future

Succeeding the JCP

Governance

Other concerns …

Modularity

Java SE release cadence

Cloud-native

Page 13: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

Succeeding the JCP (1/2)

“The mechanism for developing standard technical specifications for Java technology”

Page 14: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

Succeeding the JCP (2/2)

Page 15: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

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:

Page 16: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

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

Governance: strong is not enough (2/2)

Page 17: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

Cloud-native (1/2)

Sept. 2016 Aug 2017 Sept. 2017 Jan. 2018

Page 18: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

• 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?)

Cloud-native (2/2)

Page 19: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

• 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 (1/1)

Page 20: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

• Example of

• Configurable features:

• Configuration deployment (Liberty-maven-plugin):

– Package-server: self-runnable fat jat

– Deploy: thin war

Modularity (2/2)

Page 21: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

• 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!

Java SE release cadence

Page 22: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

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

Other challenges

Page 23: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

• 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!

Summary

Page 24: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

• 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

As a user, you can be part of the story!

Page 25: From Java EE to Jakarta EE · From J2EE to Java EE 7 1999-2003 2004 2006 2007 2009 2013 J2EE JSON Servlet JSP EJB JMS Java EE 5 Ease of Dev EJB 3 JPA JSF JAX-WS Java EE 6 CDI JAX-RS

Thank you!