Archives de
Tag: java

Quarkus Tip : Comment NE PAS créer une extension Quarkus

Quarkus Tip : Comment NE PAS créer une extension Quarkus

Quand on développe une application composée de plusieurs composants, il est fréquent de vouloir partager du code dans une librairie externe, par exemple via un JAR externe intégré comme une dépendance de vos composants. Quarkus est un framework d’extension, chaque extension qu’il propose permet d’intégrer une technologie (client BDD, framework ORM, …) à Quarkus, pour qu’elle puisse être configurée globalement, utilisée facilement via CDI (injection de dépendances), fonctionner avec GraalVM, … Quarkus a son propre système de build, via son…

Lire la suite Lire la suite

Quarkus et les Google Cloud Functions

Quarkus et les Google Cloud Functions

Quarkus est un framework de développement de microservice pensé pour le cloud et les conteneurs. Il est pensé pour avoir une utilisation mémoire réduite et un temps de démarrage le plus court possible. Il se base principalement sur des standards (Jakarta EE, Eclipse MicroProfile, …) et permet l’utilisation de librairies Java matures et très répandues via ses extensions (Hibernate, RESTeasy, Vert.X, Kafka, …). Quarkus a été pensé pour le cloud dès sa conception, il permet le développement d’applications Cloud Ready…

Lire la suite Lire la suite

Quarkus Tip : Séléctionner un bean au runtime

Quarkus Tip : Séléctionner un bean au runtime

Lors du développement d’une application, il est très fréquent d’avoir plusieurs implémentations d’un service, et de devoir sélectionner l’une où l’autre en fonction de l’environnement sur lequel elle est déployée. Un exemple classique : un service qui appelle une API d’un partenaire externe qu’on veut appeler uniquement en production, et donc mocker sur les environnements de développement et de test / UAT / staging. Quarkus essaye de déporter au build time, via son plugin Maven ou Gradle, le plus de…

Lire la suite Lire la suite

Java 17 : quoi de neuf ?

Java 17 : quoi de neuf ?

Maintenant que Java 17 est features complete (Rampdown Phase Two au jour d’écriture de l’article), c’est le moment de faire le tour des fonctionnalités qu’apporte cette nouvelle version, à nous, les développeurs. Cet article fait partie d’une suite d’article sur les nouveautés des dernières versions de Java, pour ceux qui voudraient les lire en voici les liens : Java 16, Java 15, Java 14, Java 13, Java 12, Java 11, Java 10, et Java 9. Cette release ne contient pas beaucoup de JEP,…

Lire la suite Lire la suite

Profiler une application Java dans un conteneur déployé dans kubernetes avec JFR – Java Flight Recorder

Profiler une application Java dans un conteneur déployé dans kubernetes avec JFR – Java Flight Recorder

La plupart des clients chez lesquels j’interviens aujourd’hui utilisent Kubernetes pour déployer leurs applications. Bien que Kubernetes soit un super outil, si on a besoin de ce type d’outil (qui est une discussion dans laquelle je ne rentrerais pas ici), il peut apporter une certaine complexité quant aux moyens de « regarder » le comportement de nos applications en cours de fonctionnement. Quand j’ai un problème de performance sur une application, j’utilise régulièrement un profiler Java. Il en existe de nombreux, mais…

Lire la suite Lire la suite

Introduction à Quickperf

Introduction à Quickperf

QuickPerf est une bibliothèque de test pour Java permettant d’évaluer et d’améliorer rapidement les performances de votre application. Le grand intérêt de Quickperf réside dans le fait que cela s’effecue via des tests unitaires, ce qui permet, après avoir détecté et corrigé un problème de performance, d’avoir des tests de non-régression pour que celui-ci ne revienne jamais ! Vous pouvez alors évaluer en continue les performances de votre application via votre environnement d’intégration continue ! Quickperf peut être utilisé pour…

Lire la suite Lire la suite

Java 16 : quoi de neuf ?

Java 16 : quoi de neuf ?

Maintenant que Java 16 est features complete (Rampdown Phase Two au jour d’écriture de l’article), c’est le moment de faire le tour des fonctionnalités qu’apporte cette nouvelle version, à nous, les développeurs. Cet article fait partie d’une suite d’article sur les nouveautés des dernières versions de Java, pour ceux qui voudraient les lire en voici les liens : Java 15, Java 14, Java 13, Java 12, Java 11, Java 10, et Java 9. Cette nouvelle version compte pas moins de 17 JEP mais…

Lire la suite Lire la suite

Benchmark : conversion de long en byte[]

Benchmark : conversion de long en byte[]

J’utilise beaucoup Kafka ces derniers temps, et dans Kafka, beaucoup de choses sont des tableaux de bytes, même les headers ! Comme j’ai de nombreux composants qui s’échangent des messages, j’ai ajouté des headers pour aider au suivi des messages, et entre autres un header timestamp qui a comme valeur System.currentTimeMillis(). Il m’a donc fallut transformer un long en tableau de byte; d’une manière très naïve, j’ai codé ça : String.valueOf(System.currentTimeMillis()).getBytes(). Mais instancier une String à chaque création de header…

Lire la suite Lire la suite

Java 15 : quoi de neuf ?

Java 15 : quoi de neuf ?

Maintenant que Java 15 est features complete (Rampdown Phase One au jour d’écriture de l’article), c’est le moment de faire le tour des fonctionnalités qu’apporte cette nouvelle version, à nous, les développeurs. Cet article fait partie d’une suite d’article sur les nouveautés des dernières versions de Java, pour ceux qui voudraient les lire en voici les liens : Java 14, Java 13, Java 12, Java 11, Java 10, et Java 9. Cette nouvelle version apporte son lots de nouvelles JEP, dont la principale…

Lire la suite Lire la suite

Quarkus, jlink et Application Class Data Sharing (AppCDS)

Quarkus, jlink et Application Class Data Sharing (AppCDS)

Quarkus est optimisé pour démarrer rapidement et avoir une empreinte mémoire très faible. Ceci est vrai en déployant dans une JVM standard mais encore plus en déployant notre application comme un exécutable natif via GraalVM. Quarkus facilite grandement la création d’exécutable natif, grâce à ça, une application Quarkus démarre en quelques dizaines de millisecondes et avec une empreinte mémoire très faible : quelques dizaines de Mo de RSS (Resident Set Size – totale d’utilisation de mémoire du processus Java vu…

Lire la suite Lire la suite