Slide 1

Slide 1 text

Microprofile Implementierungen Welche passt zu mir?

Slide 2

Slide 2 text

Wer bin ich? Tim Zöller JUG Mainz, ilum:e informatik ag > 10 Jahre Java Entwicklung 6 Jahre Consulting 4 Jahre Teamleitung 3 Jahre JUG Mainz

Slide 3

Slide 3 text

Was Ist Eclipse Microprofile? Eine kurzer Überblick über das Projekt – was macht es besonders? Was bedeutet es, “kompatibel” zur Spezifikation zu sein? Welche (Gängigen) Implementierungen gibt es? Vorstellung der Runtimes, welche die neueren Spezifikationen implementieren. Wer steckt dahinter? Was ist das Ziel? Implementierungen gegenübergestellt Welche Gemeinsamkeiten und Unterschiede gibt es? Was sind die Alleinstellungsmerkmale? Fazit Was könnt ihr aus der Präsentation mitnehmen? Was kann euch die Entscheidung vereinfachen? Die Agenda

Slide 4

Slide 4 text

Was ist Eclipse MicroProfile?

Slide 5

Slide 5 text

Die Spezifikation

Slide 6

Slide 6 text

Die Spezifikation (?) Momentan nicht definiert!

Slide 7

Slide 7 text

Welche Implementierungen gibt es?

Slide 8

Slide 8 text

Aktuelle Implementierungen Leichtgewichtige Microservices Geführt von Oracle Native Image Unterstützung Standalone-fähig Helidon Start als kommerziell supporteter Glassfish Fork Solide Basis Standalone-fähig Appserver-fähig Payara Geführt von RedHat Vormals: WildFly Swarm Abgekündigt bis September Standalone-fähig Thorntail Geführt von IBM Open Source Kern von WebSphere Liberty Standalone-fähig Appserver-fähig OpenLiberty Geführt von Sunesis Ursprünglich: Java EE API cloud ready Standalone-fähig Verbreitung in Slowenien und Österreich Kumuluz EE Geführt von RedHat Native Image Unterstützung Standalone-fähig Eigenes Ökosystem Quarkus

Slide 9

Slide 9 text

Nicht berücksichtigt TomEE Keine Unterstützung für Versionen > 2.1 (In stabilen Versionen) Wildfly 19 Bislang nur Support in Wildfly 19 Beta Websphere Liberty Nicht Open Source

Slide 10

Slide 10 text

Steckbrief: Helidon Sponsor: Oracle Besonderheiten: Geringer Footprint Reaktiver Kern Ohne MP Features: Native Image-fähig Projektstart: Februar 2019 Social: @helidon_project https://github.com/oracle/helidon Wichtige Personen: Dmitry Kornilov, Project Lead Einsatz: Sammlung von Bibliotheken auf Netty Basis

Slide 11

Slide 11 text

Steckbrief: Payara Sponsor: Payara Services Ltd. Einsatz: Application Server FAT JAR oder standalone Besonderheiten: Java EE / Jakarta EE kompatibel (Standalone “nur” Web Profile) Projektstart: 2014 Social: @Payara_Fish https://github.com/payara/Payara Wichtige Personen: Steve Millidge, Gründer

Slide 12

Slide 12 text

Steckbrief: Thorntail Sponsor: Red Hat Besonderheiten: Unterstützung einiger Jakarta EE Specs EOL im September Projektstart: 2015 (als Wildfly Swarm) Social: @thorntail_io https://github.com/thorntail/thorntail Wichtige Personen: Ladislav Thon, Project Lead Einsatz: FAT JAR fähig Smallrye Specs

Slide 13

Slide 13 text

Steckbrief: Thorntail Sponsor: Red Hat Besonderheiten: Unterstützung einiger Jakarta EE Specs EOL im September Projektstart: 2015 (als Wildfly Swarm) Social: @thorntail_io https://github.com/thorntail/thorntail Wichtige Personen: Ladislav Thon, Project Lead Einsatz: FAT JAR fähig Smallrye Specs

Slide 14

Slide 14 text

Steckbrief: OpenLiberty Sponsor: IBM Besonderheiten: Voll JEE kompatibel Hot Reload im Dev Modus Projektstart: September 2017 Social: @OpenLibertyIO https://github.com/OpenLiberty/open-liberty Wichtige Personen: Alasdair Nottingham, Project Lead Einsatz: Application Server FAT JAR oder standalone

Slide 15

Slide 15 text

Steckbrief: Kumuluz EE Sponsor: Sunesis Besonderheiten: Geringer Footprint Tools für Service Discovery Dukes Choice Award 2016 Projektstart: 2014 Social: @kumuluz https://github.com/kumuluz/kumuluzee Wichtige Personen: Jan Meznarič Einsatz: Sammlung von Bibliotheken FAT JAR

Slide 16

Slide 16 text

Steckbrief: Quarkus Sponsor: Red Hat Besonderheiten: Native Image fähig! Kein voller CDI Support Hot Reload im Dev Modus Projektstart: Februar 2019 Social: @QuarkusIO https://github.com/quarkusio/quarkus Wichtige Personen: Mark Little, VP of Engineering John Clingan, Senior Principal Product Manager Einsatz: FAT JAR Smallrye Specs

Slide 17

Slide 17 text

Implementierungen gegenübergestellt

Slide 18

Slide 18 text

Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung 3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11

Slide 19

Slide 19 text

Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung 3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11

Slide 20

Slide 20 text

Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung 3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11 !!!

Slide 21

Slide 21 text

Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung 3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11 !!!

Slide 22

Slide 22 text

Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung 3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11

Slide 23

Slide 23 text

Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung 3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11

Slide 24

Slide 24 text

Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung 3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11 !!!

Slide 25

Slide 25 text

Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung 3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11

Slide 26

Slide 26 text

Jakarta EE Native Image Low Footprint

Slide 27

Slide 27 text

Und endlich… das Fazit

Slide 28

Slide 28 text

Welche passt zu dir? Alle stabil und Einsatzbereit! Supportverträge mit Hersteller existent? Zusätzliche JEE Features hilfreich? Geringer Fußabdruck spart Kosten? Entwicklerworkflow? EGAL!

Slide 29

Slide 29 text

Auf den Punkt gebracht Verschiedene Implementierungen der Spezifikationen haben, wie beabsichtigt, Implementierungen für viele verschiedene Anwendungsfälle zur Folge Der Punkt