Archive

Archive for the ‘Java’ Category

Outillage pour GWT

En ce moment je travaille sur des tests de performance d’une application GWT.

Comme d’habitude au petit déjeuner je consulte mon newsreader et je tombe sur cette annonce de l’équipe Google.

Le Debug Panel permet d’analyser finement les performances d’une application GWT vu du client. A commencer par de lancement de l’application : temps passé à télécharger les scripts, temps passé dans le onModuleLoad.

bootstrap

Cet outil permet également de écomposer les appels de services RPC : temps de sérialisation , temps passé à poster les donnés vers le serveur, temps de receptin des données en retour, temps de désérialisation et durée de mise à jour de l’interface.

service

Il y a des journées qui commencent moins bien 🙂

Étiquettes :

GWT : Fonctionalités et Roadmap

Voici une présentation réalisée par Fred Sauer, elle détaille les objectifs, les fonctionnalités actuelles ainsi que les nouveautés de GWT 2.0.

Étiquettes :

Maven2 au ChtiJUG

Ce soir j’ai participé à la deuxième réunion du ChtiJUG, le club des Javaistes du Nord.

Thème de la soirée : Maven2, la présentation était effectuée par Arnaud Héritier, commiter et membre du comité du projet.

Cela fait maintenant 6 ans que je pratique Maven et je venais surtout pour profiter de l’expérience d’Arnaud que l’on imagine avoir participé à de multiples mises en places.

J’ai trouvé la présentation intéressante, Arnaud ne manie pas la langue de bois et n’est pas avar en anecdotes et conseils.

Voici les points que j’ai retenu de sa présentation :

  • Maven ne convient pas à tous les projets, notamment quand il n’y a pas de besoin de standardisation ou de réutilisation
  • Dans un premier temps, se contenter d’une mise en place simpliste, en évitant de sur utiliser les capacités avancées de l’outil : héritages à n niveaux, trop de modules, profils, …
  • De concentrer ensuite sur la sécurisation du build : utiliser un proxy maven pour pallier à une défaillance des serveurs centraux, préciser la version de tous les plugins.
  • Enfin : industrialiser le build : mettre en place une intégration continue, mettre en place les outils et rapports qualité, automatiser la release.

Arnaud a également pas mal partagé sur sa vision des outils de l’écosystème Maven et se montre très enthousiaste quand il parle de Nexus (proxy et référentiel maven)  ou de Hudson (intégration continue)

Autre remarque d’Arnaud : configurez Maven pour qu’il s’adapte à votre IDE et pas l’inverse : il faut passer le moins de temps possible dans la console.

Je pense que la fin de la présentation ainsi que certaines questions ont du plonger une bonne partie de la salle dans de profonds doutes quand au coté simple de l’outil, le niveau était assez relevé 🙂

Coup de chapeau à mon ami et collègue Jérémy qui a brillamment gagné une licence IntelliJ IDEA en répondant à une question difficile : de quel projet est issu Maven : vous le saviez vous ?

Étiquettes : ,

Sortie de Sonar 1.6

9 février 2009 1 commentaire

Le blog du projet Sonar annonce la sortie de la version 1.6 de ce très bon outil de suivi qualité.

Voici une liste des nouveautés :

  • Paramétrages des règles au sein de profils, ces profils contiennent tous les paramètres et sont entièrement exportables.
  • Possibilité de définir des seuils d’alerte, au sein des profils. Cela permet de matérialiser le respect des objectifs de qualité du projet par une icône en fonction de son état.
    Pour chaque alerte, on peut définir un seuil de « orange » et un seuil « rouge ». Un flux Atom permet de s’abonner à ces alertes.
  • Et enfin, la grosse nouveauté de mon point de vue, la possibilité d’affecter un profil différent à chaque projet et donc d’adapter les règles au contexte et aux choix de chaque équipe.

A noter que la mise à jour se fait sans difficulté.

Étiquettes : ,

GWT 1.6 accélere la compilation en mode brouillon

Comme d’habitude l’ami Sami nous annonce les futures fonctionnalités de GWT, cette fois ci il nous présente la compilation en mode brouillon :  » Draft Compile »

Bob Vauter propose en effet un patch qui ajoute une option « -draftCompile » au compilateur GWT, cette option désactive les optimisations qui visent à réduire la taille du JavaScript généré. Bob annonce un gain de l’ordre de 50%, il me tarde de vérifier cela sur un de mes projets.

Cette option sera donc particulièrement adaptée aux tests de déploiement en mode web, le hosted mode restant bien sur à utiliser pour les développements de tous les jours.

Sur le projet que je suis en ce moment, j’ai mis en place trois types de déploiement :

  • Hosted mode : le plus utilisé pour les développements, il a un temps de démarrage court et permet de recharger les dernières versions des classes sans redémarrer. A moins de bricoler ce mode ne permet pas de tester les éventuelles JSP qui accompagnent les modules GWT.
  • Serveur léger Jetty : maven permet très facilement de lancer le serveur léger Jetty, cela permet de tester la version compilée et packagée sous forme de war de notre application.
  • Serveur cible : l’application est packagée sous forme de war et est déployée sur le serveur qui sera utilisé en production.

Je pense que le mode « draftCompile »pourrait nous être utile dans le mode « serveur léger » car dans ce cas les tests sont faits sur la machine locale et la taille du javascript importe peu.

Sortie de Sonar 1.5

La version 1.5 de l’outil de suivi qualité Sonar est sortie aujourd’hui.

J’ai mis en place cet outil sur un de mes projets et je le trouve très pratique, la configuration est très simple et cela permet à toute l’équipe d’avoir une vue à la fois synthétique et précise des marqueurs qualité.

La version 1.5 amène des changements sympatiques au niveau de l’interface graphique et surtout une ouverture vers d’autres outils de mesure via un système de plugins.

Cet article du blog Sonar détaille les principaux changements

Voici un graphique de suivi qualité que l’on peut, par exemple, afficher dans la war room ou sur le site projet.

Indicateurs qualité

Sonar est une solution beaucoup plus utilisable que le plugin dashboard maven qui est moins mur.

Dans tous les cas, il faut au minimum que l’équipe adhère aux règles qualité et il est préférable que l’équipe définisse elle même les règles de développement.

Étiquettes : ,

Roadmap GWT 1.6

11 décembre 2008 1 commentaire

La roadmap de GWT 1.6 vient d’être publiée, voici son contenu :

  • Nouvelle structure de déploiement : les fichiers statiques ne seront plus dans le classpath, mais comme pour les applications classiques ils seront dans la partie « publique » du War.
  • Passage de Tomcat à Jetty : le serveur par défaut en hosted mode sera maintenant jetty un système de plugins permettra de changer de serveur. Le passage à Jetty accelerera très probablement le démarrage du hosted mode.
  • Nouvelle gestion d’évènements : La gestion des évènements sera revue et uniformisée entre les différents composants, les Listeners actuels seront dépréciés.
  • Intégration du DatePicker et du LazyPanel : Ces deux composants passent de l’incubateur au projet principal. Le DatePicker est un assistant à la saisie de date très bien conçu et internationalisé, le LazyPanel permet lui de différer l’initialisation d’un sous ensemble de votre application afin d’accélérer le temps de démarrage.
  • Optimisation du StringBuilder : l’implémentation actuelle est notamment peu efficace avec InternetExplorer, la prochaine aura des spécificités en fonction du navigateur.
  • Optimisation du compilateur : comme à chaque version, le compilateur est optimisé et le temps de compilation sera réduit.

Les évolutions suivantes seront intégrées dans les versions ultérieures :

  • Fragmentation du code généré : Cette fonctionnalité ne sera finalement pas intégrée à la version 1.6, c’est ma déception en ce qui concerne cette version, car avec le temps de compilation, la modularité des applications produites reste un problème important.
  • Story Of Your Compile (SOYC) : un rapport sur le processus de compilation qui va notamment permettre de savoir quelle quantité de JavaScript est générée par quelle classe.
  • Hosted mode dans le browser de votre choix
  • Ui Binder : création d’une IHM par déclaration ??? cette fonctionalité sera bientôt intégrée dans l’incubateur, stay tuned 🙂
  • Client Bundle : généralisation du Image Bundle aux autres ressources statiques (CSS, texte, …)
  • Optimisation des performances du mode RPC
Étiquettes :

GWT 2.0 : Hosted mode dans le browser de votre choix

7 décembre 2008 1 commentaire

Après les fragments de GWT 1.6, l’ami Sami nous présente le « Out Of Process Hosted Mode » qui permettra d’exécuter l’application dans le navigateur de votre choix en mode développement et non plus avec l’unique moteur de rendu supporté sur chaque plateforme (Win : IE, Linux : Mozilla, Mac : WebKit).

L’intégration dans les navigateurs se fera à l’aide de plugins qui communiqueron avec la JVM GWT via une socket TCP. A ce stade le javascript se sera pas encore généré et on gardera toujours la possibilité de rentrer en debug dans le code « client ».

Étiquettes :

Ca bouge du coté des plugins maven pour GWT

Charlie Collins annonce qu’il va rejoindre le projet Mojo afin de fusionner le plugin GWT-Maven qu’il a réalisé avec celui du projet Mojo : gwt-maven-plugin.

Je pense que c’est une très bonne nouvelle pour l’industrialisation des projets GWT, tous les efforts d’outillage autour de maven porteront sur le même produit.

Étiquettes : ,

Suivre vos applications avec Appspy

Olivier m’a envoyé hier un email pour m’annoncer la sortie de son nouveau projet OpenSource : Appspy.

Appspy offre une solution pour le suivi de vos applications Java coté serveur en production, vous pourrez ainsi consolider toutes sortes de données issues des différentes instances de vos applications et par exemple savoir quelles URLs sont sollicitées, quelles URLs sont lentes ou encore comparer les temps de réponse entre deux versions.

Les applications intègrent un module client qui collecte les données et les fournit au serveur qui permet de les visualiser sous formes de rapports paramétrables. Le tout est disponible sous la licence Apache 2.0 qui est « business friendly ».

Je ne vais pas tarder à essayer cet outil sur un de mes projets, je vous en dirai plus à ce moment la. Ayant eu l’occasion d’utiliser un ancien produit de la même gamme écrit par Olivier, je suis assez impatient 🙂

Étiquettes : ,