Modèle de conception Commande en langage Groovy

Le modèle de conception Commande fait partie des modèles de conception de type comportemental, présenté notamment dans le célèbre livre Design Patterns: Elements of Reusable Object-Oriented Software de Erich Gamma, Richard Helm, Ralph Johnson, et John Vlissides.
Dans cet article, je donnerai un exemple d'implémentation de ce modèle de conception en langage Groovy, dans le style de programmation orientée objet, puis ensuite dans le style de la programmation fonctionnelle, avec beaucoup moins de "cérémonie" (moins de déclarations de type).

En lire plus


MicroProfile REST Client

Faisant partie de la spécification parapluie MicroProfile, la spécification MicroProfile REST Client fournit une approche typée pour appeler des services RESTful sur HTTP, en se basant sur des interfaces Java.
L'objectif ici est de fournir un style de code beaucoup plus naturel, l’implémentation sous-jacente prenant en charge la communication entre le client et le service.
Ainsi, pour invoquer un service distant, on utilise une approche déclarative par la définition d'une interface, avec des méthodes annotées représentant les chemins et opérations du service cible.

En lire plus


Sécuriser un microservice avec MicroProfile JWT Authentication

L'API MicroProfile JWT Authentication 1.1 permet de sécuriser l'accès à une application web comportant des services web REST, au moyen de l'utilisation de jetons suivant la proposition JSON Web Token (RFC 7519) de l'Internet Engineering Task Force (IETF).

Un client d'un service REST est authentifié au moyen d'un jeton JWT, qui est essentiellement une chaîne de caractères JSON composée de trois parties encodées : un en-tête, une charge utile (comprenant des champs pour spécifier le nom de l'émetteur, la date d'expiration du jeton, etc.), et une signature.
Signé de manière cryptographique, un jeton JWT est vérifiable, et on peut ainsi s'assurer que son contenu n'a pas été altéré ; il peut aussi être transféré vers d'autres services.

En lire plus


MicroProfile 3.3

MicroProfile 3.3 est la dernière version (au moment de l'écriture de cet article) du projet MicroProfile de la fondation Eclipse ; c'est une spécification parapluie qui fournit un ensemble d'API axées sur l'écriture de microservices, afin de permettre une innovation rapide dans l'écosystème Java entreprise.
MicroProfile reprend certaines spécifications de Java/Jakarta EE 8, à savoir CDI, JAX-RS, JSON-B et JSON-P.

En lire plus


Example de microservice MicroProfile Reactive Messaging avec Apache Camel

Disponible depuis juillet dernier en version 1.0, l'API MicroProfile Reactive Messaging permet de développer des applications de flux de données réactifs, des microservices pilotés par des événements, et de mettre en oeuvre des modèles de type event sourcing (cf. MicroProfile Reactive Messaging 1.0 is now available), tout en utilisant un modèle de développement CDI.
Cette spécification est autonome et ne fait pas encore partie de la spécification parapluie MicroProfile.

En lire plus


Enregistrer automatiquement un document WSDL en ligne avec ses dépendances

Lorsqu'une application ou un service expose un service web SOAP et publie son document de description d'interface en ligne, son document WSDL (Web Services Description Language), il peut être pratique d'enregistrer localement ce document, ainsi que tous les documents importés, que ce soit d'autres documents WSDL ou des schémas XML, tout en gardant les liens entre ces documents.

En lire plus


Configurer des applications avec MicroProfile Config

MicroProfile Config est la spécification d'Eclipse MicroProfile définissant un mécanisme d'utilisation souple et extensible de configuration des applications ; au moment de l'écriture de cet article, MicroProfile Config est en version 1.3 et est inclus dans la version 2.2 de MicroProfile.
Au moyen de cette API, on peut accéder à l'ensemble des valeurs configurées pour une application sous la forme d'un ensemble de paires clé/valeur de type chaînes de caractères, et provenant de diverses sources de configuration ; celles-ci peuvent être externes, comme les variables d'environnements, ou internes à l'application, comme des fichiers de propriétés embarqués dans des archives.

En lire plus


Surveiller un microservice MicroProfile avec Prometheus et Grafana

Faisant partie de MicroProfile, l'API Metrics for Eclipse MicroProfile permet à un service REST Java/Jakarta EE d'exposer facilement des métriques, pouvant alors être exploitées à des fins de surveillance ; par défaut, on aura des mesures relatives à l'environnement d'exécution, tandis que l'on pourra également ajouter ses propres mesures au moyen d'annotations proposées par l'API Metrics.

En lire plus



MicroProfile 2.1

MicroProfile 2.1 est la dernière version (au moment de l'écriture de cet article) du projet MicroProfile de la fondation Eclipse ; c'est une spécification parapluie qui fournit un ensemble d'API axées sur l'écriture de microservices, afin de permettre une innovation rapide dans l'écosystème Java entreprise.
MicroProfile 2.x reprend certaines spécifications de Java/Jakarta EE 8, à savoir CDI, JAX-RS, JSON-B et JSON-P.

En lire plus