Plugins Hudson – Episode 1 : La création du plugin

Aujourd’hui, nous allons traiter du développement de plugins pour Hudson.

Cela fait maintenant un peu plus d’un mois que je travaille sur un plugin hudson permettant de générer des statistiques globales sur l’état d’exécution des jobs hudson : le global-build-stats hudson plugin. Ce plugin est particulièrement utile pour du monitoring Hudson et permet de détecter des problèmes sur différents axes : temps, typologie de build, typologie de résultat du build.

A l’occasion de la première release stable du plugin (la 0.1), j’ai décidé de partager sur ce blog l’ensemble des facilités et problèmes que j’ai pu rencontrer durant les développements de ce plugin. Ces retours seront formalisés par un ensemble de billets (à priori trois ou quatre) s’organisant autours des problématiques suivantes :

  • Mise en place d’un nouveau plugin
  • Comment et où poser des points d’extension
  • Présentation du framework MVC d’Hudson : Stapler
  • Persister ses données
  • Coté présentation : le scripting Jelly et les comportements javascript d’Hudson
  • La première release : le déploiement et les outils de communication autours du plugin
  • La mise en place de la sécurité

Lire le reste de cette entrée »

Publié dans Hudson, Maven. 2 Comments »

Présentation Portails & Portlets Java au JUG de Bordeaux

Vous n’avez pas pu vous déplacer pour participer à la dernière présentation du JUG de Bordeaux que j’ai eu le plaisir d’animer ?
Et bien vous êtes passé à coté d’une belle présentation (en toute objectivité/modestie bien sur ! ;-)).

Allez, je vais être sympa : les slides sont disponibles dans les ressources du JUG donc n’hésitez  pas à les parcourir !

En terme de ressenti :
– Bizarrement, j’étais beaucoup plus stressé à répéter le week end précédent tout seul devant mon ordi, que devant les 40 personnes présentes ce soir là
– Je n’ai pas assez utilisé le verre d’eau pendant la présentation (dur dur pour la gorge le lendemain !)
– Je n’ai malheureusement pas pu présenter beaucoup de « démos techniques » sur Liferay … j’en avais pourtant sous le coude mais manque de temps (je suis trop bavard !)
– Les questions / échanges étaient très constructifs … j’ai moi-même appris plein de choses sur le sujet en donnant la présentation (comme généralement lorsqu’on présente quelque chose … j’ai ce même ressenti lorsque je donne une formation)
– L’ensemble des retours que j’ai eu étaient bons (en même temps, je  vois mal quelqu’un me dire « c’était naze » ;-)) … certains non habitués du JUG (=non geeks) m’ont même dit « tu le répète pas hein … mais ça m’a même intéressé ! » (vous constaterez que je ne répète jamais les confidences qu’on me fait)
– En terme de charge de travail perso, cette présentation a été, pour moi, beaucoup moins gourmande que l’élaboration du Dojo randori TDD : du coup, ben j’ai bien envi de recommencer … faut juste que je trouve un sujet original/intéressant !… Un truc autours de maven, hudson et de plugins (hudson/maven) ?

Pour résumer : que du positif !

Merci encore à l’équipe du JUG de Bordeaux (Xavier, Greg et Fabrice), et longue vie à ce dernier !

Spring ROO : Premiers retours

SpringSource nous a fait un cadeau de fin d’année en nous annonçant, le 31 Décembre 2009, la release de la version 1.0.0 de Spring ROO. Pour rappel, Spring ROO est un interpréteur en ligne de commande, dont l’objectif est de vous permettre de développer rapidement des applications standards via de la génération de code. Pour illustrer l’outil, rien de mieux qu’une petite phrase issue de la documentation officielle :

[…] Most of the time you’ll just go about programming in your text editor or IDE as usual. As you make changes to your project, Roo intelligently determines what you’re trying to do and takes care of doing it for you automatically.

J’ai donc profité d’une journée de mauvais temps pour tester un peu tout ça. Ce billet illustre mes retours.

Mes attentes

Mes attentes sur cette étude sur Spring ROO étaient les suivantes :
– Avoir déjà un premier bagage sur les possibilités offertes par Spring ROO
– Etudier les possibilités de customisations de ce générateur de code
– L’idée sous-jacente étant l’industrialisation de mes développements récurrents

Les questions que je me posais en début d’analyse :

ROO est-il transparent dans les devs ? Quelle adhérence a-t-on avec ce dernier ?
Possibilité de customisation des templates utilisés ? (pour la génération d’une Entity par exemple)
Possibilité de rajout des commandes « à nous » pour générer des choses spécifiques à notre domaine fonctionnel ? (notion de « cartridges » en MDA)
Quelle customisation possible sur l’initialisation de projet ? (ex: utilisation d’archetype maven possible ?)
Quel mode de génération ? Plutôt one shot ou incrémental ?
L’outil peut-il être utilisé dans une approche itérative de type MDA ?