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

Pimp your Jakarta EE applications

Dirk Weil
October 16, 2023

Pimp your Jakarta EE applications

Slides for my presentation at EclipseCon 2023 in Ludwigsburg and JCON World 2023 Online

Dirk Weil

October 16, 2023
Tweet

More Decks by Dirk Weil

Other Decks in Programming

Transcript

  1. Dirk Weil Studied Informatik at RWTH Aachen Living in Bielefeld

    CEO of GEDOPLAN GmbH (www.gedoplan.de) JEE since 1999 Speaker and author 2 gedoplan.de Pimp your Jakarta EE applications
  2. Starting Point Java EE 8 war deployable in WildFly 26

    or similar REST API, CDI based business logic, JPA based persistence Demo: https://github.com/GEDOPLAN/pimp-jee.git 3 gedoplan.de Demo Pimp your Jakarta EE applications
  3. Java EE 8 to Jakarta EE 10 Renaming hell: javax

    → jakarta: JEE package names see https://gedoplan.de  Blog  Migration zu Jakarta EE 10 – neue Paketnamen Configuration property names Deployment descriptor XML namespaces: … http://xmlns.jcp.org/xml/ns/… → https://jakarta.ee/xml/ns/… Update of standard dependencies: javax:javaee-api:8.0 → jakarta.platform:jakarta.jakartaee-api:10.0.0 4 gedoplan.de Pimp your Jakarta EE applications
  4. Java EE 8 to Jakarta EE 10 Open Rewrite https://docs.openrewrite.org/

    (Source) Code refactorings specified in recipes using Lossless Semantic Trees (LST) 5 gedoplan.de Demo Pimp your Jakarta EE applications
  5. Classical / traditional JEE Runtime: Application Server 6 Application classes

    Configuration files (Deployment descriptors, Properties, …) JEE Server CDI runtime JPA runtime REST runtime Technical configuration * JRE build deploy run * Subsystem connections (database, messaging, …) Security … small (xxx kB) big (xxx MB) gedoplan.de Pimp your Jakarta EE applications
  6. „Jar Server“ Runtime 7 Application classes Configuration files JRE build

    run Fat JAR Hollow JAR + Deployment gedoplan.de groß (xx MB) Server modules / extensions CDI runtime JPA runtime REST runtime Technical configuration * * Subsystem connections (database, messaging, …) Security … Pimp your Jakarta EE applications
  7. WildFly Bootable Jar Maven Plugin org.wildfly.plugins:wildfly-jar-maven-plugin Downloads and configures a

    WildFly server Just the server: Hollow jar Server + application: Fat jar Dev mode with automatic hot reload 8 gedoplan.de Demo Pimp your Jakarta EE applications
  8. „Micro“ Runtime Framework 9 Application classes Configuration files * CDI

    runtime JPA runtime REST runtime JRE build run groß (xx MB) Fat JAR JAR + Dependencies * Application configuration Subsystem connections (database, messaging, …) Security … gedoplan.de Pimp your Jakarta EE applications
  9. Quarkus Like Spring Boot … but JEE based Optimized at

    build time („augmentation“) for memory usage and time to first response https://quarkus.io/ 10 gedoplan.de Demo Pimp your Jakarta EE applications
  10. Quarkus Cool features Dev mode with hot reloading Dev services

    Continuous testing Native mode Huge eco system 11 gedoplan.de Pimp your Jakarta EE applications
  11. Move ahead: MicroProfile https://microprofile.io/ Optimizing Enterprise Java for a Microservices

    Architecture Including Config Configure from environment variables, properties and more API and injection Health Is the application up and ready? Metrics Publish runtime metrics … 12 gedoplan.de Demo Pimp your Jakarta EE applications
  12. Links github.com/GEDOPLAN/pimp-jee Demo project speakerdeck.com/dirkweil Slides gedoplan.de Blog Trainings in

    Berlin, Bielefeld, Köln, inhouse Coaching Development  [email protected] 13 gedoplan.de Pimp your Jakarta EE applications