SpringPlatform

Die SpringPlatform hat am 24.09 bis zum 27.09.2018 in Washington stattgefunden. Pivotal hat in ihrem Youtube-Kanal jetzt alle Videos bereitgestellt.

Sehenswertes

Vorträge die mir sehr gut gefallen haben:

  • Josh Longs Vortrag stellt die unmittelbaren Vorteile der Verwendung von Cloud Contracts anhand eines Rest Services und Client dar. Zunächst werden die Client / Service Teile mit herkömmlichen Unittest gebaut und dann zeigt erspannend, dass ,obwohl beide Unittests grün waren, die Anwendung im Ganzen nicht funktioniert und zeigt nun auf wie leicht dieses Problem mit Cloud Contracts gelöst werden kann.

  • Neues aus Project Reactor Codename Californium. Der Releasetrain beinhaltet Reactor Core 3.2, Reactor Addons 3.2, Reactor Netty 0.8. Springframework 5.1 (und auch das bald erscheinende SpringBoot 2.1) beinhalten Californium. Flux und Mono können getagt werden und stehen als Micrometer Metrics zur Verfügung. Neue Operationen stehen zur Verfügung. doOnDiscard fängt alle Elemente die in dem Flow verworfen werden auf. onErrorContinue kann Exception abfangen und der Flow wird nicht durch fatale Fehler zerstört. Mit retryBackoff wird ein mächtiges Retry zur Verfügung gestellt.

  • JUnit 5 kurz und knapp. Sehr kompakte Übersicht. Features in der nächsten Version 5.4. JUnit 5 und Spring. Ab SpringBoot 2.1 kann @ExtendsWith(SpringExtension.class) entfallen. Es muss die Testmethode nur mit @SpringBootTest annotiert werden.

  • Das AxonFramework wird demnächst einen OSS Server enthalten. Der AxonServer weiß welche Applicationen laufen und wo welche CommandHandler vorhanden sind, da die Microservices das dem Server propagieren. Das heißt Autodiscovery für die CQRS Dienste kann mit dem Server realisiert werden. Die Microservices müssen nur das AxonFramework integrieren. Somit lassen sich die Anwendungen einfach skalieren.

  • Reactive Relation Databases Connectivity. Das Project R2DBC verspricht reaktiven Zugang zu Datenbanken. Aktuell gibt es einen H2 und einen Postgresql Client. Es sollten bald weitere Clients wie zum Beispiel für MySQL folgen. Es wird eine Demoanwendung auf Basis auf dem letzten SpringBoot erstellt. Lukas Eder ist auch bereits in R2DBC involviert und plant Jooq um R2DBC zu erweitern, so dass nicht nur JDBC als alleinige Schnittstelle benutzt werden kann. Die Unterstützung ist für Version 3.12 geplant.

  • Spring Data JDBC ist ein neues sehr einfaches und begrenztes ORM. Es steht mit SpringBoot 2.1.0.M4 zu Verfügung. Es werden die Unzulänglichkeiten von Hibernate angesprochen. Als neues Feature kommen Derived Queries in der nächsten Version, sowie Unterstüzung für Sorting und Paging. Auch hier wird auf den Reactive Zug aufgesprungen und R2DBC angesprochen. Projekthomepage befindet sich auf https://spring.io/projects/spring-data-jdbc.

  • Simon Ritter gibt einen kurzen Überblick über JDK 9,10,11 und zukünfitge Versionen und deren mögliche Features. Die Modularität die mit JDK 9 eingeführt wurde über das neue Release Model und das ab JDK 11 OpenJDK und OracleJDK den gleichen Funktions-/Features Umfang besitzen. Flight recorder und Mission Control sind ab JDK 11 Open Source. Browser Plugin, Java Web Start und JavaFX werden entfernt. Open JavaFX wird unabhängig weiterentwickelt. Java 10 Local Variable Type Inference JEP 286. Mit JVM 10 Java liest nicht mehr die CPU und vorhandenen Speicher des Hostsystems aus und respektiert die Resourcen vorgaben vom Docker Container. Mit JEP 323 wurde Lacal Variable Syntax erweitert, so dass var auch verwendet werden kann. Es gibt hierfür nur einen sinnvollen Einsatz. Nämlich in Verwendung mit Annotationen im Lambda-Ausdrücken.

  • In diesem Vortrag werden 2 unsichere Anwendungen, eine WebApplication und ein RestClient, mit einem OAuth 2.0 Resource Server mit Spring Security 5.1 gesichert. Joe Grandja und Josh Cummings stellen anhand einer Demo die neuen Fähigkeiten des Resource Servers und Neuerungen im WebClient vor. Quelltexte https://github.com/jzheaux/messaging-app/tree/springone2018-demo, https://github.com/spring-projects/spring-security/tree/master/samples/boot/oauth2webclient und https://github.com/spring-projects/spring-security/tree/master/samples/boot/oauth2resourceserver.