from java ee to jakarta ee · from j2ee to java ee 7 1999-2003 2004 2006 2007 2009 2013 j2ee json...
TRANSCRIPT
![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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/4.jpg)
• 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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/10.jpg)
• 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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/16.jpg)
• 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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/18.jpg)
• 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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/19.jpg)
• 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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/20.jpg)
• 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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/21.jpg)
• 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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/22.jpg)
• 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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/23.jpg)
• 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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/24.jpg)
• 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](https://reader036.vdocuments.mx/reader036/viewer/2022081401/5f045d127e708231d40d9c68/html5/thumbnails/25.jpg)
Thank you!