Die Neuerungen im Webframework

Wicket 8 erschienen: Java-Webframework unterstützt Lambda-Ausdrücke

Hartmut Schlosser

Das Webframework Wicket ist in Version 8 erschienen. Das seit 2007 bei der Apache Foundation entwickelte Open-Source-Projekt bringt zahlreiche neuen Features. In vollem Umfang unterstützt werden die Neuerungen aus Java 8.

Hauptthema der achten Auflage des Wicket Frameworks ist Java 8. Während Wicket bereits in früheren Versionen mit Java 8 zusammenarbeitete, so war das API doch nicht dahingehend optimiert. Mit Wicket 8 sollen die Vorteile der Neuerungen aus Java 8 jedoch vollständig genutzt werden können.

Insbesondere betrifft dies die in Java 8 eingeführten Lambda-Ausdrücke. Wie das Wicket-Team beschreibt, wurden die Möglichkeiten der Integration von Lambdas in Wicket sorgfältig geprüft und gegen Fragen der Performance und des Speicherverbrauchs abgewogen. Die Ergebnisse sind in Form eines stabilen APIs nun in das achte Wicket-Major-Release eingeflossen.

Der Support von Lambdas ist in Wicket 8 nun durchweg gegeben. Für viele Modelle stehen Factories für Lambda-Ausdrücke zur Verfügung. Das Prinzip der Subklassen bleibt als Erweiterungsmechanismus für Wicket-Komponenten indes erhalten.

Ein weiteres Feature in Java 8 ist das neue Date/Time API. Dieses wird in Wicket 8 nun von Haus aus unterstützt. Die neuen Typen können konvertiert, validiert und an Komponenten gebunden werden.

Auch der Typ „Optional“ aus Java 8 wird in Wicket 8 unterstützt. Dieser kommt in Situationen ins Spiel, in denen Konstrukte den Wert Null annehmen können. Beispielsweise nutzt AjaxFallbackLink in dem unteren Beispiel „Optional“, um anzuzeigen, ob der Link via AJAX oder durch einen anderen Request ausgelöst wurde.

// WICKET 7:
add(new AjaxFallbackLink<Void>("wicket7") {
    @Override
    public void onClick(AjaxRequestTarget target) {
        if(target != null) {
            // ...
        }
    }
});
// WICKET 8:
add(new AjaxFallbackLink<Void>("wicket8") {
    @Override
    public void onClick(Optional<AjaxRequestTarget> target) {
        if(target.isPresent()) {
            // ...
        }
    }
});

Wer auf Wicket 8 aktualisieren möchte, benötigt Java in Version 8. Die Java-8-Features sollen so integriert sein, dass Anwendungen ohne kompletten Rewrite weiterhin funktionieren. Dennoch wurden einige API-Änderungen vollzogen, die bei einer Migration auf Wicket 8 zu Compile-Fehlern führen. Ein Migrations-Guide ist unter https://s.apache.org/wicket8migrate zu finden.

Über Apache Wicket

Das Webframework Wicket wird bereits seit 2004 entwickelt und ist seit 2007 als quelloffenes Apache-Top-Level-Projekt verfügbar. Hauptgedanke des Frameworks ist die Trennung von in Java geschriebener Logik und der Darstellung in HTML bzw. CSS. Wicket ist strikt Komponenten-basiert, wobei eines der wichtigsten Design-Ziele eine Wiederverwendbarkeit derselben ist.

Wicket-Anwendungen bestehen aus Bäumen von Komponenten, in denen Event Handler über Listener auf Http-Ereignisse reagieren. Der Server-seitige Zustand wird automatisch verwaltet. Jede Server-Page enthält hierfür eine Hierarchie von Stateful-Komponenten, wobei die Komponentenmodelle letztlich einfache POJOs (Plain Old Java Objects) sind. Wicket unterhält eine Map dieser Server-seitigen Pages in jeder Anwender-Session. Entwickler müssen zum Speichern des Zustandes somit niemals direkt ein HttpSession-Objekt oder ähnliche Wrapper verwenden.

LESEN SIE AUCH:

Technologie-Trends 2018: Das sind die Top-Frameworks

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: