Java für alte Plattformen kompilieren

Heute soll es einmal um einige Compiler-Flags gehen, und zwar um -source, -target und das mit Java 9 eingeführte --release (JEP 247).
Während man mit -source das Quellcodelevel setzen kann (-source 1.6 würde es beispielsweise auf Java 6 setzen), lässt sich mit –target das Level im Ziel setzen.
Dies funktioniert natürlich nur so lange, wie man im Quellcode keine Sprachfeatures verwendet, die in der ausgewählten Version nicht verfügbar sind. Wenn man beispielsweise die mit Java 8 eingeführten Lambdas verwendet und versucht, das Programm auf Java 1.6 zurück zu portieren, ist dies entsprechend nicht möglich.
Continue reading

Posted in Did you know?, Java and Quality, Java Runtimes - VM, Appserver & Cloud | Tagged , , , , , | Leave a comment

Spring Boot in Docker und Docker Compose

Dank Docker setzt sich das Konzept der Containerisierung, welches bereits die weltweite Logistik revolutioniert hat, nun auch in der IT Welt durch. In diesem Artikel soll es um die Software Docker des gleichnamigen Unternehmens Docker Inc. gehen. Dieser Artikel soll anhand einiger Beispiele die Funktionsweise von Docker Containern und Docker Compose erläutern.
Continue reading

Posted in Java Runtimes - VM, Appserver & Cloud | Tagged , , , , , , , , | Leave a comment

Release von Java 10

Nach der Umstellung auf die sechsmonatigen Release-Zyklen ist nun kurz nach der Version 9 bereits Java 10 erschienen. Das mag verwunderlich erscheinen, da sich viele Entwickler noch gar nicht tiefer mit den Modularisierungsmöglichkeiten der letzten Version auseinandergesetzt haben und bisher kaum Anwendungen migriert wurden. Selbst viele Tool- und Frameworkhersteller sind im Moment noch dabei, überhaupt kompatible bzw. für Java 9 brauchbare Lösungen zu entwickeln. Von einer wirklichen Modularisierung sind die meisten ebenfalls noch weit entfernt.

Aber mit den neuen, kürzeren Releasezyklen wurde von Oracle auch der Long-Term-Support angepasst, nur noch jedes dritte Release wird eine langjährige Unterstützung bieten. Nach Java 8 wird dies erst wieder die Version 11 sein, die voraussichtlich im September 2018 erscheinen soll. Der Support für Java 9 ist bereits ausgelaufen und der für 10 läuft schon wieder in einem halben Jahr aus.

Continue reading

Posted in Java Basics | Tagged , , , , | 1 Comment

Java EE wurde in Jakarta EE umbenannt

Java EE heißt seit dem 26. Februar 2018 Jakarta EE. Wie wir bereits wissen, hat Oracle gegen Ende letzten Jahres Java EE an die Eclipse Foundation, also die Open Source Community übergeben. Das war die Geburt des EE4J Projekts.

Diese Übergabe bringt aber auch “negative Konsequenzen” mit sich: Das als Trademark geschützte Markenzeichen Java darf nicht mehr verwendet werden. Neue Technologien und APIs dürfen nicht mehr das javax-Package verwenden, die bestehenden Technologien im javax-Namensraum dürfen in den bestehenden Packages weiterentwickelt werden.

Um einen neuen Namen zu finden, konnte die bisherige Java EE Community Namensvorschläge abgeben und für die Kandidaten (Brand Name selection #1) abstimmen. Von den dort vorgeschlagenen Namen haben zwei die Endrunde erreicht: Enterprise Profile und Jakarta EE (Brand Name Selection #2). Der glückliche Gewinner ist Jakarta EE (die größte Stadt auf der Insel Java ;-)) mit knapp 65% der 7000 Teilnehmer der Abstimmung.

Posted in Java EE | Tagged , | Leave a comment

Gradle 4.6

Vor wenigen Tagen wurde Gradle 4.6 veröffentlicht, und wie immer sind einige interessante Änderungen dabei:

  • JUnit 5
  • BOM Unterstützung
  • Einschränkungen für transitive Abhängigkeiten
  • Optionale Abhängigkeiten
  • Eigene CMD Parameter für Tasks

Continue reading

Posted in Build, config and deploy | Tagged , , | Leave a comment

Spring Boot 2.0 GA

Die freudige Nachricht: Spring Boot 2.0 ist verfügbar!

Spring Boot hat sich mittlerweile zum Standard-Framework für die meisten Spring-Projekte entwickelt. Es ist damit sehr einfach, neue Spring Projekte aufzusetzen. Einen Großteil des Konfigurationsaufwands wird dem Entwickler durch Konventionen abgenommen, sodass die Entwicklung der Fachlogik unmittelbar nach dem Erstellen des Projektes beginnen kann.

Vor diesem Hintergrund ist es natürlich sehr spannend zu sehen, was der zweite große Major-Release nach Version 1.0 (April 2014) alles zu bieten hat. Der Eindruck, dass sich in der Zwischenzeit nichts getan hat, mag ein wenig täuschen. Die Entwicklung von Spring Boot stand in der Zwischenzeit keinesfalls still. So brachten die Minor-Releases 1.1 bis 1.5 in den vergangenen fast vier Jahren immer wieder spürbare Verbesserungen mit sich. Stellt sich die Frage, warum man sich nun für eine neue Major-Version entschieden hat?
Continue reading

Posted in Spring Universe | Tagged , , , , , , , | Leave a comment

Welches JavaScript Framework passt zu mir?

Eine der wohl am häufigsten gestellten Fragen im Bereich Webseitenentwicklung ist die Frage, welches Framework eingesetzt werden soll. In diesem letzten Beitrag der Blog-Serie “Welches JavaScript Framework passt zu mir?” werden die Vor- und Nachteile der in den vorherigen Beiträgen genannten Frameworks aufgelistet. Abschließend wird in einer Zusammenfassung ein Überblick darüber gegeben, in welchem Kontext welches Framework vorteilhaft ist.
Continue reading

Posted in Web as a Platform | Tagged , , , , , | Leave a comment