SlideShare ist ein Scribd-Unternehmen logo
Von J2EE zu Jakarta EE und MicroProfile
Stand der Standards und Ausblick auf die Version 10
Expertenkreis Java, 19.08.2021
Dirk Weil, GEDOPLAN GmbH
Dirk Weil
GEDOPLAN GmbH, Bielefeld
GEDOPLAN IT Consulting
Consulting, coaching, concepts, reviews, development
GEDOPLAN IT Training
Trainings in Berlin, Bielefeld, on-site
JEE since 1998
Speaker and author
Von J2EE zu Jakarta EE und MicroProfile 2
gedoplan.de
1999: J2EE
Umbrella Specification
Teilspezifikationen ~ Open Source
Von J2EE zu Jakarta EE und MicroProfile 3
gedoplan.de
www.oracle.com/java/technologies/appmodel.html
Community Driven
1999: J2EE
Enterprise JavaBeans
 Deklarative Komponentenverknüpfung
 Scopes
 Deklarative Transaktionssteuerung
 (zu) komplex (bis EJB 2.1)
Von J2EE zu Jakarta EE und MicroProfile 4
gedoplan.de
www.itwissen.info/J2EE-Java-2-enterprise-edition-J2EE-Komponentenmodell.html
1999: J2EE
Demo
Ur-alt, aber läuft noch!
Von J2EE zu Jakarta EE und MicroProfile 5
gedoplan.de
HelloService
WorldService
public class HelloServiceBean implements SessionBean {
private WorldService worldService;
public String getHello() {
return "Hello, " + this.worldService.getWorld();
}
public void ejbCreate() throws RemoteException, CreateException {
try {
InitialContext context = new InitialContext();
WorldServiceHome worldServiceHome
= (WorldServiceHome) context.lookup("java:comp/env/WorldService");
this.worldService = worldServiceHome.create();
<ejb-jar … version="2.1">
<enterprise-beans>
<session>
<ejb-name>HelloService</ejb-name>
<local-home>de.gedoplan.showcase.service.HelloServiceHome</local-home>
<local>de.gedoplan.showcase.service.HelloService</local>
<ejb-class>de.gedoplan.showcase.service.HelloServiceBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-local-ref>
<ejb-ref-name>WorldService</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>de.gedoplan.showcase.service.WorldServiceHome</local-home>
<local>de.gedoplan.showcase.service.WorldService</local>
2006: Java EE 5
Von J2EE zu Jakarta EE und MicroProfile 6
gedoplan.de
Dependency
Injection!
Cool! Machen wir auch.
Und nehmen
Annotationen statt XML!
Spring
JEE
@Stateless
public class HelloService {
@EJB
WorldService worldService;
public String getHello() {
return "Hello, " + this.worldService.getWorld();
}
• keine Home-IF
• keine Local-IF (ab EJB 3.1)
• kein Deskriptor
• @EJB
wir alle
Find' ich
trotzdem doof!
2010: Java EE 6
Von J2EE zu Jakarta EE und MicroProfile 7
gedoplan.de
JEE
Versuchen wir's mal mit
'nem neuen Namen: CDI!
@ApplicationScoped @Stateless
public class HelloService {
@Inject @EJB
WorldService worldService;
public String getHello() {
return "Hello, " + this.worldService.getWorld();
}
wir alle
Ja, jetzt ist's
leichtgewichtig!
Cool!
2016: MicroProfile
Neue Einflüsse: MicroServices, Docker/Kubernetes, Cloud
JCP/Oracle:
Von J2EE zu Jakarta EE und MicroProfile 8
gedoplan.de
Config Fault Tolerance Health JWT Authentication
Metrics OpenAPI OpenTracing Rest Client
CDI JAX-RS JSON-B JSON-P
2019: Jakarta EE 8
2017:
Oracle behält Namens- und Urheberrechte
Java EE Jakarta EE
JPA Jakarta Persistence
JAX-RS Jakarta RESTful Web Services
…
Jakarta EE 8 (10.09.2019)
keine Funktionsänderung
codegleich zu Java EE 8 (Ausnahme: zentrale Dependency)
statt Referenzimplementierung: kompatible Implementierungen
Von J2EE zu Jakarta EE und MicroProfile 9
gedoplan.de
JEE
2020: Jakarta EE 9
Oracle behält Rechte auf Paketen javax.*
Pakete dürfen genutzt, aber nicht geändert werden
Jakarta EE 9 (22.11.2020)
keine funktionale Änderung
Umbenennung aller Pakete javax.*  jakarta.*
Von J2EE zu Jakarta EE und MicroProfile 10
gedoplan.de
Ausblick auf Jakarta EE 10
~ Q1 2022
CDI Alignment, u. a.
@Context  @Inject
@Asynchronous, @Lock, @Schedule  Jakarta Concurrency
@RolesAllowed  Jakarta Security
CDI Split-up
Von J2EE zu Jakarta EE und MicroProfile 11
gedoplan.de
CDI Core
CDI SE CDI EE
CDI Core
CDI SE CDI EE
CDI Lite
 Build-time artifacts
(Quarkus!)
(hatte EJB 1.0 auch!)
Ausblick auf Jakarta EE 10
Core Profile
Small runtimes
CDI Lite, REST, BV, JSON-*, …
MicroProfile Config  Jakarta Config
Java 17
Von J2EE zu Jakarta EE und MicroProfile 12
gedoplan.de
Core
Web
Full
JEE-Version Java-Version
8 8
9 8
9.1 11
10 17
Der Application Server ist tot – es lebe der Server!
Schwergewichtige Server?
Payara ~ 185 MB
WildFly ~ 247 MB
Klassisches Deployment
Thin WAR  Server
Variante: Server-JAR mit Deployment-Parameter
Development Mode
Von J2EE zu Jakarta EE und MicroProfile 13
gedoplan.de
java -jar payara-micro.jar thin.war java -jar wildfly-bootable.jar --deployment=thin.war
mvn wildfly-jar:dev-watch
www.youtube.com/watch?v=hlawraSfvMg
Quarkus
JAR mit Dependencies
nur benötigte Bausteine
embedded Server
Demo-Anwendung ~ 31 MB
Build-time Augmentation
Development Mode
Native Mode
Von J2EE zu Jakarta EE und MicroProfile 14
gedoplan.de
App.
CDI REST
Hiber
nate H2
JPA
More
github.com/GEDOPLAN/jee-demo
github.com/GEDOPLAN/jee-runtimes-demo
Projekte
www.gedoplan.de
Trainings in Berlin, Bielefeld, inhouse
www.gedoplan.de
Reviews, Coaching, …
Blog
 dirk.weil@gedoplan.de
@dirkweil
Von J2EE zu Jakarta EE und MicroProfile 15
gedoplan.de

Weitere ähnliche Inhalte

Ähnlich wie Von J2EE zu Jakarta EE und MicroProfile - Stand der Standards und Ausblick auf die Version 10

Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne BallastJava EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballast
gedoplan
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6
GFU Cyrus AG
 
MicroProfile-Anwendungen mit Quarkus
MicroProfile-Anwendungen mit QuarkusMicroProfile-Anwendungen mit Quarkus
MicroProfile-Anwendungen mit Quarkus
gedoplan
 
JavaFX goes open source
JavaFX goes open sourceJavaFX goes open source
JavaFX goes open source
Wolfgang Weigend
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OPITZ CONSULTING Deutschland
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEEguestc44b7b
 
2010-JOGL-02-Einfuehrung
2010-JOGL-02-Einfuehrung2010-JOGL-02-Einfuehrung
2010-JOGL-02-EinfuehrungJohannes Diemke
 
OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021
OPITZ CONSULTING Deutschland
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
gedoplan
 
Microprofile-Anwendungen mit Quarkus
Microprofile-Anwendungen mit Quarkus Microprofile-Anwendungen mit Quarkus
Microprofile-Anwendungen mit Quarkus
gedoplan
 
Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne BallastJava EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballast
gedoplan
 
German ADF News Session: JDev 11gR2 Extension
German ADF News Session: JDev 11gR2 Extension German ADF News Session: JDev 11gR2 Extension
German ADF News Session: JDev 11gR2 Extension
Ulrich Gerkmann-Bartels
 
Das 1×1 des java supports wie die wartung älterer jdk-versionen weitergeht
Das 1×1 des java supports wie die wartung älterer jdk-versionen weitergehtDas 1×1 des java supports wie die wartung älterer jdk-versionen weitergeht
Das 1×1 des java supports wie die wartung älterer jdk-versionen weitergehtWolfgang Weigend
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
gedoplan
 
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für Healthcare
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für HealthcareArtikel eHealthcare Kompendium: Service Orientierte Architekturen für Healthcare
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für Healthcare
Peter Affolter
 
2020 oracle lizenznews
2020 oracle lizenznews2020 oracle lizenznews
2020 oracle lizenznews
OPITZ CONSULTING Deutschland
 
Spring 2.0
Spring 2.0Spring 2.0
Spring 2.0
Thorsten Kamann
 
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemacht
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemachtJava EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemacht
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemacht
gedoplan
 
Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.
adesso AG
 
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer JungOSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
NETWAYS
 

Ähnlich wie Von J2EE zu Jakarta EE und MicroProfile - Stand der Standards und Ausblick auf die Version 10 (20)

Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne BallastJava EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballast
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6
 
MicroProfile-Anwendungen mit Quarkus
MicroProfile-Anwendungen mit QuarkusMicroProfile-Anwendungen mit Quarkus
MicroProfile-Anwendungen mit Quarkus
 
JavaFX goes open source
JavaFX goes open sourceJavaFX goes open source
JavaFX goes open source
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEE
 
2010-JOGL-02-Einfuehrung
2010-JOGL-02-Einfuehrung2010-JOGL-02-Einfuehrung
2010-JOGL-02-Einfuehrung
 
OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Microprofile-Anwendungen mit Quarkus
Microprofile-Anwendungen mit Quarkus Microprofile-Anwendungen mit Quarkus
Microprofile-Anwendungen mit Quarkus
 
Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne BallastJava EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballast
 
German ADF News Session: JDev 11gR2 Extension
German ADF News Session: JDev 11gR2 Extension German ADF News Session: JDev 11gR2 Extension
German ADF News Session: JDev 11gR2 Extension
 
Das 1×1 des java supports wie die wartung älterer jdk-versionen weitergeht
Das 1×1 des java supports wie die wartung älterer jdk-versionen weitergehtDas 1×1 des java supports wie die wartung älterer jdk-versionen weitergeht
Das 1×1 des java supports wie die wartung älterer jdk-versionen weitergeht
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für Healthcare
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für HealthcareArtikel eHealthcare Kompendium: Service Orientierte Architekturen für Healthcare
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für Healthcare
 
2020 oracle lizenznews
2020 oracle lizenznews2020 oracle lizenznews
2020 oracle lizenznews
 
Spring 2.0
Spring 2.0Spring 2.0
Spring 2.0
 
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemacht
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemachtJava EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemacht
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemacht
 
Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.
 
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer JungOSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
 

Von J2EE zu Jakarta EE und MicroProfile - Stand der Standards und Ausblick auf die Version 10

  • 1. Von J2EE zu Jakarta EE und MicroProfile Stand der Standards und Ausblick auf die Version 10 Expertenkreis Java, 19.08.2021 Dirk Weil, GEDOPLAN GmbH
  • 2. Dirk Weil GEDOPLAN GmbH, Bielefeld GEDOPLAN IT Consulting Consulting, coaching, concepts, reviews, development GEDOPLAN IT Training Trainings in Berlin, Bielefeld, on-site JEE since 1998 Speaker and author Von J2EE zu Jakarta EE und MicroProfile 2 gedoplan.de
  • 3. 1999: J2EE Umbrella Specification Teilspezifikationen ~ Open Source Von J2EE zu Jakarta EE und MicroProfile 3 gedoplan.de www.oracle.com/java/technologies/appmodel.html Community Driven
  • 4. 1999: J2EE Enterprise JavaBeans  Deklarative Komponentenverknüpfung  Scopes  Deklarative Transaktionssteuerung  (zu) komplex (bis EJB 2.1) Von J2EE zu Jakarta EE und MicroProfile 4 gedoplan.de www.itwissen.info/J2EE-Java-2-enterprise-edition-J2EE-Komponentenmodell.html
  • 5. 1999: J2EE Demo Ur-alt, aber läuft noch! Von J2EE zu Jakarta EE und MicroProfile 5 gedoplan.de HelloService WorldService public class HelloServiceBean implements SessionBean { private WorldService worldService; public String getHello() { return "Hello, " + this.worldService.getWorld(); } public void ejbCreate() throws RemoteException, CreateException { try { InitialContext context = new InitialContext(); WorldServiceHome worldServiceHome = (WorldServiceHome) context.lookup("java:comp/env/WorldService"); this.worldService = worldServiceHome.create(); <ejb-jar … version="2.1"> <enterprise-beans> <session> <ejb-name>HelloService</ejb-name> <local-home>de.gedoplan.showcase.service.HelloServiceHome</local-home> <local>de.gedoplan.showcase.service.HelloService</local> <ejb-class>de.gedoplan.showcase.service.HelloServiceBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> <ejb-local-ref> <ejb-ref-name>WorldService</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local-home>de.gedoplan.showcase.service.WorldServiceHome</local-home> <local>de.gedoplan.showcase.service.WorldService</local>
  • 6. 2006: Java EE 5 Von J2EE zu Jakarta EE und MicroProfile 6 gedoplan.de Dependency Injection! Cool! Machen wir auch. Und nehmen Annotationen statt XML! Spring JEE @Stateless public class HelloService { @EJB WorldService worldService; public String getHello() { return "Hello, " + this.worldService.getWorld(); } • keine Home-IF • keine Local-IF (ab EJB 3.1) • kein Deskriptor • @EJB wir alle Find' ich trotzdem doof!
  • 7. 2010: Java EE 6 Von J2EE zu Jakarta EE und MicroProfile 7 gedoplan.de JEE Versuchen wir's mal mit 'nem neuen Namen: CDI! @ApplicationScoped @Stateless public class HelloService { @Inject @EJB WorldService worldService; public String getHello() { return "Hello, " + this.worldService.getWorld(); } wir alle Ja, jetzt ist's leichtgewichtig! Cool!
  • 8. 2016: MicroProfile Neue Einflüsse: MicroServices, Docker/Kubernetes, Cloud JCP/Oracle: Von J2EE zu Jakarta EE und MicroProfile 8 gedoplan.de Config Fault Tolerance Health JWT Authentication Metrics OpenAPI OpenTracing Rest Client CDI JAX-RS JSON-B JSON-P
  • 9. 2019: Jakarta EE 8 2017: Oracle behält Namens- und Urheberrechte Java EE Jakarta EE JPA Jakarta Persistence JAX-RS Jakarta RESTful Web Services … Jakarta EE 8 (10.09.2019) keine Funktionsänderung codegleich zu Java EE 8 (Ausnahme: zentrale Dependency) statt Referenzimplementierung: kompatible Implementierungen Von J2EE zu Jakarta EE und MicroProfile 9 gedoplan.de JEE
  • 10. 2020: Jakarta EE 9 Oracle behält Rechte auf Paketen javax.* Pakete dürfen genutzt, aber nicht geändert werden Jakarta EE 9 (22.11.2020) keine funktionale Änderung Umbenennung aller Pakete javax.*  jakarta.* Von J2EE zu Jakarta EE und MicroProfile 10 gedoplan.de
  • 11. Ausblick auf Jakarta EE 10 ~ Q1 2022 CDI Alignment, u. a. @Context  @Inject @Asynchronous, @Lock, @Schedule  Jakarta Concurrency @RolesAllowed  Jakarta Security CDI Split-up Von J2EE zu Jakarta EE und MicroProfile 11 gedoplan.de CDI Core CDI SE CDI EE CDI Core CDI SE CDI EE CDI Lite  Build-time artifacts (Quarkus!) (hatte EJB 1.0 auch!)
  • 12. Ausblick auf Jakarta EE 10 Core Profile Small runtimes CDI Lite, REST, BV, JSON-*, … MicroProfile Config  Jakarta Config Java 17 Von J2EE zu Jakarta EE und MicroProfile 12 gedoplan.de Core Web Full JEE-Version Java-Version 8 8 9 8 9.1 11 10 17
  • 13. Der Application Server ist tot – es lebe der Server! Schwergewichtige Server? Payara ~ 185 MB WildFly ~ 247 MB Klassisches Deployment Thin WAR  Server Variante: Server-JAR mit Deployment-Parameter Development Mode Von J2EE zu Jakarta EE und MicroProfile 13 gedoplan.de java -jar payara-micro.jar thin.war java -jar wildfly-bootable.jar --deployment=thin.war mvn wildfly-jar:dev-watch www.youtube.com/watch?v=hlawraSfvMg
  • 14. Quarkus JAR mit Dependencies nur benötigte Bausteine embedded Server Demo-Anwendung ~ 31 MB Build-time Augmentation Development Mode Native Mode Von J2EE zu Jakarta EE und MicroProfile 14 gedoplan.de App. CDI REST Hiber nate H2 JPA
  • 15. More github.com/GEDOPLAN/jee-demo github.com/GEDOPLAN/jee-runtimes-demo Projekte www.gedoplan.de Trainings in Berlin, Bielefeld, inhouse www.gedoplan.de Reviews, Coaching, … Blog  dirk.weil@gedoplan.de @dirkweil Von J2EE zu Jakarta EE und MicroProfile 15 gedoplan.de