Oracle a publié la version 1.0 du Project Helidon, un ensemble de librairies Java open-source pour la construction de micro-services, avec des API plus stables que dans la version beta et le support de MicroProfile 1.2.
D’après les notes de publication, l’équipe Helidon a cessé de changer les API quelques mois avant la publication de cette V1. Helidon propose deux modèles de programmation: Helidon SE et Helidon MP. Helidon est un micro-framework qui propose un serveur Web réactif de construction de micro-services. Helidon MP s’appuie sur Eclipse MicroProfile et apporte les API JAX-RS, CDI et JSON-P/B.
Helidon propose enfin plusieurs composants pour construire des applications nativement prévues pour le Cloud.
Serveur Web
Le composant serveur Web, insipiré de NodeJS, fournit une API réactice de création de micro-services et d’applications Web. Le serveur Web gère les requêtes entrantes suivant des patterns de routage et de gestionnaires de requêtes HTTP. Il expose un gestionnaire de contenu statique et supporte la gestion des erreurs avec un comportement par défaut que l’on peut particulariser.
Configuration
Le composant de configuration fournit des API Java qui permettent de charger des paires clés / valeurs qui peuvent être utilisées pour configurer l'application elle-même. La configuration peut venir de plusieurs sources telles que le système de fichiers ou une URL. Le composant offre un mécanisme de détections de changements des sources de configuration.
Sécurité
Le composant de sécurité supporte les opérations d’authentification et d’identification. Les événements de sécurité sont audités par défaut. L’audit est configurable. Le composant supporte JWT, HTTP Basic et le contrôle d’accès qui s’appuie sur les attributs HTTP.
Mesures
Le composant de mesure permet de publier les statistiques de fonctionnement d’une application au format JSON ou plein texte.
Traces
Le composant de traçage supporte l’instrumentation et le traçage distribué. Le support d’Helidon pour le traçge s’appuie sur les APIs Open Tracing.
Health Check
Le composant de Health Check permet de configurer soi même le suivi la santé du serveur.
Le code suivant montre comment construire un serveur Web simple en utilisant Helidon SE qui sert du contenu statique : des images se trouvant sur le système de fichiers local.
import io.helidon.webserver.Routing;
import io.helidon.webserver.ServerConfiguration;
import io.helidon.webserver.StaticContentSupport;
import io.helidon.webserver.WebServer;
public static void main(String... args) {
var contentSupport = StaticContentSupport
.create(Paths.get("app/content/images"));
var routing = Routing
.builder()
.register("/api/v1/images", contentSupport)
.build();
var config = ServerConfiguration
.builder()
.port(8080)
.build();
WebServer
.create(config, routing)
.start();
}
Helidon contient un guide de démarrage avec deux exemples simples. Le premier pour Helidon SE et le second pour Helidon MP.
Vous pouvez retrouver l’Introduction à Helidon sur InfoQ avec l’interview de Dmitry Kornilov, Oracle senior software development manager, publié en octobre 2018