Jonathan Pineau : Retour de JRebel, offert par le Toulouse JUG

Ce retour fait suite au gain d’une licence JRebel lors de la soirée du Toulouse JUG autour du Framework Play.

Présentation rapide

JRebel est un outil proposé par la société ZeroTurnaround à destination des développeurs ayant pour but d’améliorer leur productivité. Pour cela, il fournit un système de prises en compte à chaud des modifications sans nécessiter le redéploiement de l’application ou le redémarrage du serveur.

Il se présente sous la forme d’un plugin « java agent » à déclarer au niveau de la JVM du serveur d’application et d’un fichier de configuration « rebel.xml » à placer à la racine du répertoire contenant les fichiers « .class » pour chaque application et module du projet. A l’exécution, cet agent surveille les classpath indiqués dans le fichier « rebel.xml » puis agit sur le Class Loader en chargeant les nouvelles versions des classes (d’après ce que j’ai pu comprendre, il s’agit d’un monitoring des classpath en se basant sur les timestamp des fichiers .class pour détecter les modifications).

Pour plus de détails, la documentation et les forums permettent une prise en main rapide pour les cas d’utilisation standards.

Prise en Main

Pour prendre en main l’outil, j’ai effectué les premiers tests sur un projet personnel basé sur Spring MVC avec utilisation de Spring Web Flow, le tout s’exécutant dans le conteneur Tomcat.

Pour les technologies Spring, ZeroTurnaround fournit de nombreux exemples (documentation, FAQ, screencast). La mise en place de JRebel a donc été rapide. Pour les quelques problèmes survenus au démarrage, une recherche sur les forums permet de rapidement cerner les erreurs de paramétrage.

Pour les personnes ayant assisté aux soirées sur Play ou Grails, les présentateurs ont mis en avant la prise en compte des modifications sans redémarrage du serveur parmi les avantages par rapport aux autres frameworks JEE dits « standards ». Avec JRebel, un projet Spring « classique » profite d‘un fonctionnement très proche.

L’apport de JRebel est un plus indéniable pour le développement. Il permet d’améliorer la

productivité du développeur aussi bien dans la phase de création que leur de la validation ou du support d’une application. Malgré quelques ratés ayant nécessité de redémarrer Tomcat, ce premier test m’a convaincu de pousser l’expérimentation en condition réelle sur un projet professionnel.

Utilisation en condition réelle

Afin de faire un retour plus pertinent, j’ai configuré JRebel sur mon environnement de

développement professionnel. Point important, la société pour laquelle je travaille utilise un

framework interne, donc non listé comme pris en charge par JRebel.

Alors que la mise en place fut plutôt rapide pour le projet Spring, la tâche a été beaucoup

plus compliquée sur ce second environnement. Après plusieurs échecs, j’ai fini par trouver un paramétrage assurant la prise en compte des modifications pour les projets web principaux, les modules externes étant plus ou moins bien pris en charge.

Après environ trois semaines d’utilisation en condition réelle, JRebel affiche une estimation de 3 heures économisées (pour 14 jours de développement). Toutefois, malgré la prise en compte des modifications, notre framework interne nécessite un redéploiement de l’application web dans la plupart des cas.

La problématique rencontrée n’est pas à mettre sur le compte de JRebel mais sur le fonctionnement particulier de notre framework. Pour que certaines modifications soient prises en compte, la chaîne de démarrage de l’application web est impérative. Pour utiliser JRebel de manière optimale avec ce framework, le développement d’un plugin JRebel prenant en compte ses particularités semble inévitable et met fin à mes tests.

Conclusion

Les Plus :

  • JRebel améliore la productivité de développement. Il peut être également intéressant lors de la phase de support où le nombre de redémarrages peut être élevé
  • Bonne intégration aux différents IDE et gestion de la majorité des conteneurs de servlet et serveurs JEE
  • Gestion d’un grand nombre de frameworks
  • Documentation et support

Les Moins :

  • Solution payante. Il peut être difficile de justifier l’achat sachant que la solution se limite aux développeurs et ne profite pas aux clients finaux en environnement de production
  • Solution complexe à mettre en œuvre avec certaines architectures (problème sur la gestion des modifications sur plusieurs modules externes) ou des frameworks « exotiques »

Jonathan Pineau

Publié dans REX | Commentaires fermés

Prochaines soirées : Choisissez la programmation

Votre avis nous intéresse, et Léonardo vous a concocté un petit cocktail de sujets bien chaud. A vous de choisir quels sujets seront de préférence présentés en cette année 2012.
Alors, plutôt Kotlin ou Lucène ?

Publié dans JUG | Commentaires fermés

Soirée Grails le 19/01 à l’EPITECH

Découvrez Grails et l’un des projets les plus importants développé en France avec Grails!

Le 19/01 à l’Epitech, à 18h30, Vincent Barrier et Franck Silvestre animeront une soirée Grails.

Ces deux toulousains, grands utilisateurs de Grails, nous présenteront une introduction à Grails, ainsi que l’utilisation de Grails pour développer l’ENT des Lycées de la Région Île de France: Lilie.

Plus de détails sur la soirée, et le formulaire d’inscription sur le site JugEvents.

Venez nombreux et parlez-en autour de vous!

Gaël pour le Toulouse JUG.

Publié dans JUG | Commentaires fermés

Retour sur la soirée performances

Cette soirée aura été féminine mais surtout performante ;-)
Un retour sur Devoxx où Marianne nous aura résumé les grandes annonces dont celle du premier Devoxx France en Avril prochain.
Claude nous a présenté l’organisation Duchess, ce qui nous a permis de bien comprendre la démarche de ce regroupement. Par exemple, les Duchess apportent également à ses adhérentes des conseils sur l’intégration dans un univers plutôt masculin. Discussion intéressante sur la discrimination positive (celle d’embaucher des filles): Cela n’a pas lieu d’être; la soirée a montré que les Duchess valent bien des Jugger Toulousains.
La présentation sur le thème de la performance a proposé un bon panorama d’un grand nombre de situations sans sombrer dans un cas technique particulier. Claude a placé quelques exemples qu’elle a rencontré lors de son parcours pro, ce qui apportait une touche de concret vu que le thème ne se prêtait pas à l’exposé de code.

L’apéro de fin a permis d’échanger autour du thème de la soirée, et de discuter des thèmes à venir. Le premier trimestre est déjà quasiment bouclé.

Publié dans JUG, Soirées | Commentaires fermés

Soirée Performances en Java le 7/12 à l’EPITECH

Identifiez les problèmes de performances dans vos applications Java!

Le 7/12 à l’Epitech, à 18h30, Claude Falguière, qui a déjà traité ce sujet dans différents JUG et conférences, nous donnera les clés pour résoudre ce problème difficile.

Nous aurons aussi un retour de Devoxx 2011 par Claude et par Marianne Jullien.

Plus de détails sur la soirée, et le formulaire d’inscription sur le site JugEvents.

Venez nombreux et parlez-en autour de vous. Ce sera la première fois que nous accueillerons des Duchess, donc faisons-leur honneur.

Gaël pour le Toulouse JUG.

Publié dans JUG | Commentaires fermés