Agents Java et outils de développement


Voici une petite introduction aux agents Java et la présentation de 2 outils utilisant cette technologie afin de faciliter les développements.

Agents Java

Un agent Java, c’est d’abord un jar que l’on rajoute au lancement de la JVM par le paramètre -javaagent:vers/mon/agent.jar
C’est ensuite des classes Java qui vont intervenir au niveau du class loader afin de pouvoir faire de multiples choses.

Introduction aux agents Java : http://www.gcuisinier.net/blog/2012/06/15/javaagents/

Agent Java

Exemples d’outils pour le développement en Java

Flow Visual Debugger

Pour avoir rencontré les 2 personnes qui sont à temps plein sur ce projet, je vais faire un peu  de pub pour ce concept que je trouve innovant : findtheflow.io
Il s’agit d’un outil de débuggage ou de découverte du fonctionnement d’un programme Java de façon visuelle.
Cela utilise un agent Java à renseigner en paramètre sur la ligne de commande de lancement de la JVM et une webapp d’affichage qui pour le moment est hébergée sur internet.
Néanmoins, il est important de souligner qu’aucune information n’est stockée par la webapp, les informations restent même en local d’après ce que l’on m’a expliqué.
Pour l’aspect découverte, il s’agit de rendre visuel / graphique le déroulement du programme.
Pour l’aspect débuggage, cela se passe en 2 étapes :

  • enregistrement de l’éxecution
  • restitution graphique autant de fois que l’on veut et à la vitesse que l’on veut. Plus besoin de break-point et de relancer n fois en mode débug pour voir la valeur d’une propriété que l’on a oubliée de tracer.

L’outil est disponible en standalone et en plugin Eclipse (à partir de la version Juno 4.2).

Yiquan Zhou, membre de l’équipe, nous fait la démo en anglais :

  • Recording mode

  • Debugging mode

 

JRebel

2ème outils également pour aider le développement : JRebel

Il s’agit d’un agent Java permettant le hotswap de code Java afin d’accélérer le développement.
Par exemple sur le développement d’une API REST, on peut modifier le code et le tester sans relancer à chaque fois un build et un déploiement, voir même un redémarrage du serveur.

Pour le code Java (Batch, Backend, UI…) : https://zeroturnaround.com/software/jrebel/

Pour les applications Android : https://zeroturnaround.com/software/jrebel-for-android/

Une présentation de son utilisation : http://blog.jetoile.fr/2010/02/jrebel-ou-comment-accelerer-le_24.html

A noter tout de même que cet outil n’est pas gratuit, il y a une licence à acquérir.

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *