Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Von J2EE zu Jakarta EE und MicroProfile

Von J2EE zu Jakarta EE und MicroProfile

Präsentation zum Vortrag im Rahmen des Expertenkreises Java der GEDOPLAN GmbH am 19.08.2021

Dirk Weil

August 19, 2021
Tweet

More Decks by Dirk Weil

Other Decks in Technology

Transcript

  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  [email protected] @dirkweil Von J2EE zu Jakarta EE und MicroProfile 15 gedoplan.de