Exemples de scripts Groovy pour produire et consommer des messages avec Apache Kafka
Si Apache Kafka permet d'exécuter des producteurs et des consommateurs de messages vers ou depuis des topics en mode console, il peut aussi être utile et pratique d'écrire ses propres producteurs et consommateurs, sous la forme de scripts Groovy.
Les exemples de scripts proposés ici tirent parti du système Grape de Groovy, pour télécharger automatiquement, si besoin, les librairies dépendantes ; on a ainsi des scripts autonomes s'exécutant grâce à la commande groovy
.
Exemple d'un client HTTP déclaratif de Micronaut en langage Kotlin
Destiné à la création de microservices sur la machine virtuelle Java, le framework Micronaut dispose de fonctionnalités impressionnantes facilitant l'activité du développeur.
L'une d'elles est notamment la possibilité de construire des clients HTTP réactifs, de manière déclarative, afin d'appeler un autre microservice Micronaut par exemple, ou bien de consommer une API externe.
C'est ce nous allons voir, au travers d'un exemple d'un tel client, dans une application Micronaut développée en langage Kotlin, pour consommer l'API SWAPI (The Star Wars API), et dont le code source est disponible ici : declarative-http-client.
Lambdas et closures
Mise à jour le 14 juil. 2022.
Dans la page web Lambda, Martin Fowler décrit les lambdas comme un concept informatique appelés également Closures, Fonctions Anonymes ou Blocs.
Un lambda est un bloc de code pouvant être passé en tant que valeur comme paramètre dans un appel de fonction ; cette valeur peut aussi être exécutée à la demande.
On parle de closure si un lambda fait référence à des variables en dehors du contexte dans lequel il est créé.
Créer un tableau de bord en JavaFX avec la librairie TilesFX
Partagée sur Bitbucket, odelia-tilesfx est une application JavaFX que j'ai développée en langage Kotlin, et qui construit un tableau de bord constitué d'informations relatives au Bitcoin.
Le support de Server-Sent Events dans Grails
Le plugin Grails RxJava ajoute le support de Server-Sent Events, rendant possible dans un contrôleur Grails, l'envoi d'événements du serveur vers un client l'ayant sollicité à l'aide de l'API JavaScript EventSource
.
L'API EventSource
Server-Sent Events (SSE) est standardisée dans le cadre de HTML5 par le W3C.
Introduction à l'API Events de Grails 3.3
Le framework web Grails dispose d'une API appelée Events permettant à des composants de l'application de communiquer entre eux, grâce à des événements et sans dépendance à la compilation.
Il s'agit là d'événements asynchrones, et toute la plomberie est prise en charge par Grails qui, par ailleurs, laisse le choix de l'implémentation sous-jacente comme GPars ou RxJava.
Les fonctions d'extension de Kotlin
De manière similaire au langage C#, Kotlin fournit la possibilité d'étendre une classe existante avec vos propres méthodes, par le mécanisme des fonctions d'extension.
Une fonction d'extension est une fonction que l'on définit en dehors d'une classe, mais qui va pouvoir être appelée comme étant une méthode de cette classe.
Les objets compagnons de Kotlin
S'inspirant d'autres langages de programmation, Kotlin a emprunté à Scala la notion d'objets companions ; dans le langage Kotlin, un objet compagnon se déclare dans une classe Kotlin comme un objet marqué du mot-clé companion
.
La déclaration d'un objet compagnon est un cas particulier de déclaration d'un objet ; celle-ci utilise le mot-clé object
, et permet de définir en fait un singleton, selon le modèle de conception de même nom.
Kotlin prend donc en charge cette notion au niveau du langage, ce qui évite de l'implémenter soi-même comme on devrait le faire avec Java par exemple.
Implémenter automatiquement un service de données avec GORM
Avec sa nouvelle version 6.1, la librairie d'accès aux données GORM pour Hibernate, utilisée par le framework web Grails (mais pouvant également s'en affranchir), propose l'implémentation automatique de services de données (data services).
En quoi cela diffère t-il des opérations CRUD qui sont injectés dans les objets métiers pris en charge par GORM, et des différentes manières d'effectuer des requêtes à partir des types de ces objets ?
Fermer automatiquement une ressource avec la fonction use de Kotlin
La fonction use
du langage Kotlin est l'équivalent de la construction try-with-resources
du langage Java (apparue en version 7), car elle permet de fermer automatiquement un objet dont le type supporte l'interface Closeable
.
L'intérêt d'une telle fonction est d'assurer que la ressource que l'on utilise sera bien refermée automatiquement (et que les ressources du système associées soient libérées), par un appel à la méthode Closeable.close()
.