Neuigkeiten für das Webframework auf Jetty-Basis

Javalin 2.8.0 ist da: Verbesserungen für Validations & übersichtlichere Start-Logs

Florian Roos

© Shutterstock / hrynchak

Das leichtgewichtige Webframework Javalin liegt nun in Version 2.8.0 vor. Im Update enthalten sind unter anderem schlankere Start-Logs, der Support für Micrometer und einige Fixes.

Das Webframework Javalin kombiniert Java mit Kotlin, sodass damit Anwendungen sowohl in Java als auch in Kotlin entwickelt werden können. Es verspricht Leichtgewichtigkeit und zielt auf bessere Interoparabilität beider Programmiersprachen ab. Nun steht Javalin 2.8.0 zur Verfügung.

Schlankere Start-Logs

Das Javalin-Team hat zwei Veränderungen am Start-Log des Webframeworks vorgenommen, die sich auf den ersten Blick erkennen lassen: Man hat die Meldungen von Jetty aus dem Log entfernt und den Javalin-Schriftzug modernisiert. Den Wegfall der Jetty-Meldungen aus dem Log begründet das Team, wie in den Release Notes von Javalin 2.8.0 zu lesen ist, mit Feedback aus der Community.

Vorher:

[main] INFO io.javalin.Javalin -
_________________________________________
|        _                  _ _           |
|       | | __ ___   ____ _| (_)_ __      |
|    _  | |/ _` \ \ / / _` | | | '_ \     |
|   | |_| | (_| |\ V / (_| | | | | | |    |
|    \___/ \__,_| \_/ \__,_|_|_|_| |_|    |
|_________________________________________|
|                                         |
|    https://javalin.io/documentation     |
|_________________________________________|
[main] INFO io.javalin.Javalin - Starting Javalin ...
[main] INFO org.eclipse.jetty.server.Server - jetty-9.4.15.v20190215; built: 2019-02-15T16:53:49.381Z; git: eb70b240169fcf1abbd86af36482d1c49826fa0b; jvm 1.8.0_162-b12
[main] INFO org.eclipse.jetty.server.session - DefaultSessionIdManager workerName=node0
[main] INFO org.eclipse.jetty.server.session - No SessionScavenger set, using defaults
[main] INFO org.eclipse.jetty.server.session - node0 Scavenging every 600000ms
[main] INFO org.eclipse.jetty.server.handler.ContextHandler - Started i.j.c.u.initialize$httpHandler$1@e320068{/,null,AVAILABLE}
[main] INFO org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@52f759d7{/,null,AVAILABLE}
[main] INFO org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@7276c8cd{HTTP/1.1,[http/1.1]}{0.0.0.0:7000}
[main] INFO org.eclipse.jetty.server.Server - Started @2823ms
[main] INFO io.javalin.Javalin - Jetty is listening on: [http://localhost:7000/]
[main] INFO io.javalin.Javalin - Javalin has started \o/

Nachher:

[main] INFO io.javalin.Javalin -
           __                      __ _
          / /____ _ _   __ ____ _ / /(_)____
     __  / // __ `/| | / // __ `// // // __ \
    / /_/ // /_/ / | |/ // /_/ // // // / / /
    \____/ \__,_/  |___/ \__,_//_//_//_/ /_/

        https://javalin.io/documentation

[main] INFO io.javalin.Javalin - Starting Javalin ...
[main] INFO io.javalin.Javalin - Listening on http://localhost:7070/
[main] INFO io.javalin.Javalin - Javalin started in 267ms \o/

Außerdem wurde am Verhalten von Javalin bei gescheiterten Startversuchen gearbeitet, Logs werden bei fehlerhaften Starts nicht mehr erstellt.

Micrometer & veränderte Validations

Über den Befehl app.enableMicrometer() können Entwickler nun Micrometer aktivieren. Micrometer ist eine von Pivotal entwickelte Fassade zum Sammeln von Metriken.

Lesen Sie Auch: Micrometer: Anwendungsmetriken sammeln leichtgemacht

Validations wurden dem Funktionsumfang von Javalin in Version 2.2.0 hinzugefügt. Das Team beschreibt sie als eines der beliebtesten Javalin-Features. Ab sofort sind ctx.validated...-Methoden deprecated, das Entfernen dieser ist für Javalin 3 angekündigt. An die Stelle der bisherigen Validation-Methoden treten sogenannte Overloads. Durch die daraus resultierenden Syntax-Änderungen sollen mit Javalin geschriebene Controller besser lesbar werden.

Vorher:

val myQpStr = ctx.queryParam("my-qp")
val myQpInt = ctx.validatedQueryParam("my-qp").asInt().getOrThrow()
val myQpInt = ctx.validatedQueryParam("my-qp").asInt().check{ it  > 4 }.getOrThrow()
val instant = ctx.validatedQueryParam("my-qp").asClass().getOrThrow()

Nachher:

val myQpStr = ctx.queryParam("my-qp")
val myQpInt = ctx.queryParam("my-qp").get()
val myQpInt = ctx.queryParam("my-qp").check{ it > 4 }.get()
val instant = ctx.queryParam("my-qp").get()

Neben den bereits erwähnten Änderungen sind in Javalin 2.8.0 auch einige Fixes enthalten. Dazu gehört, dass Jetty nicht mehr versucht eine Request zu wiederholen, wenn in einem Handler ein java.lang.Error ausgegeben wird.

Weitere Informationen zu Javalin 2.8.0 können auf der Homepage des Frameworks sowie im Repository auf GitHub abgerufen werden.

Geschrieben von
Florian Roos
Florian Roos
Florian Roos ist Redakteur für Software & Support Media. Er hat Politikwissenschaft an der Technischen Universität Darmstadt studiert und erste redaktionelle Erfahrungen in den Bereichen Games und Consumer-Hardware gesammelt.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: