• Tests unitaires pour Google App Engine

    Les tests unitaires des applications GAE posent les problèmes classiques des applications déployées dans des conteneurs : peut-on tester les classes hors de son contexte cible, peut-on simuler le conteneur, ou faut-il déployer l’application pour la tester ?

    La première solution est celle qui s’approche le plus de l’unicité du test, il doit donc être privilégié autant que possible, c’est la technique qui est utilisée pour les POJOs sans contexte d’exécution. En revanche, c’est tout à fait impossible si notre classe a besoin d’une API fournie par le conteneur ou, pire encore, hérite d’une classe ou implémente une interface fournie par celui-ci. Ces cas sont classiques en JavaEE. Dans ce domaine, la tendance a été de remplacer le conteneur par des objets mock ou fake.

    Nous allons étudier ce qui est proposé par Google pour son App Engine.

  • JRebel avec OpenJDK et Grizzly

    Grâce au ParisJUG,j’ai pu obtenir une licence JRebel. JRebel est censé faire gagner du temps aux développeurs en leur évitant de redémarrer leur application ou serveur d’applications après chaque changement. Selon le serveur d’applications, le redéploiement à chaud peut répondre partiellement à ce besoin, mais JRebel semble aller plus loin, en rechargeant les classes au niveau de la JVM.

    Dans un projet récent, j’ai eu à travailler avec Grizzly, OpenJDK et Jersey pour développer des services RESTful, et j’ai compris l’intérêt que pouvait avoir ce type d’outil car, en phase d’évaluation de la plateforme, je fais beaucoup de petites modifications dont je veux voir immédiatement l’effet. Si redémarrer Grizzly est très rapide, cela demande des clics à des endroits différents dans l’IDE, Eclipse en l’occurrence. J’ai donc décider d’inclure JRebel dans cet environnement.

  • Silverpeas sur JBoss 5

    Dans mon billet précédent, j’avais installé Silverpeas v5 dans JBoss 4, sur une machine Debian 5. Je vais maintenant m’attaquer à l’installation de Silverpeas v5 dans JBoss 5, sur la même machine. Ce n’est toujours pas mon but ultime, mais comme je connais bien ce serveur d’applications, je continue ainsi à me faire la main. Tout d’abord, je dois noter que je n’ai aucune garantie de réussite et que je devrai probablement faire des modifications à la configuration de Silverpeas pour l’adapter aux contraintes de cette version de JBoss.

    Comme il n’y a pas de procédure prévue pour installer Silverpeas sur JBoss 5, je vais partir de mon installation sur JBoss 4, je vais récupérer les éléments (datasource, JMS, ear) et les modifier pour les adapter à JBoss 5.

  • Script de création de machine virutelle VirtualBox

    J’utilise régulièrement des machines virtuelles pour évaluer des produits ou pour élaborer des procédures d’installation. Ce procédé a plein d’avantages, comme pouvoir transférer le résultat sur d’autres machines, repartir facilement d’un environnement vierge ou ne pas polluer mon environnement de travail.

    J’utilise un nombre restreint de configurations types. Par exemple, pour toutes les installations de type serveur (JBoss, Glassfish, Hudson CI,…​), j’ai configuré une Debian avec Java, MySQL et quelques autres logiciels. Chaque fois que j’en ai besoin, je fais une copie de l’environnement étalon et je travaille sur cette copie.

    Le principal défaut de cette procédure est que la duplication de disque virtuel est facile à réaliser, mais pas la duplication de la configuration. J’ai donc décidé de faire un script shell pour automatiser la création de nouvelles machines virtuelles à partir du disque étalon.

  • Installation de Silverpeas

    Pour aujourd’hui, je me lance dans une installation de Silverpeas v5, la première version libre. Je pars sur une installation standard, c’est à dire avec JBoss 4.0, le serveur d’application préconisé. Celui-ci est un peu vieillot, mais si ça fonctionne, ce sera un bon début. J’essaierai plus tard sur un JBoss plus récent et/ou un Jonas.

    J’ai déroulé la procédure d’installation du début à la fin, sur une machine virtuelle vierge, sous Linux. J’ai utilisé une version de Silverpeas qui n’est pas finalisée, ce qui peut se ressentir à certaines étapes.