vendredi 30 mai 2008

Google I/O : une démo Android

Voici une petite démo de plus de la plateforme Google Android provenant de la conférence google I/O à San Francisco:

mercredi 28 mai 2008

Continuum, Maven2 et Clearcase

C'est possible!

Faire de l'intégration continue en utilisant le trio Continuum / Maven2 / Subversion est bien répandu. Le trio maintenant bien huilé...

Il se trouve que chez mon client, le système de gestion de contrôle de source est le produit d'IBM : Rational Clearcase.

Dans le cadre de la mise en oeuvre d'un serveur d'intégration continue, il a alors fallu faire fonctionner le trio Continuum / Maven2 / Clearcase. C'est au moment de commencer qu'on ressent un grand moment de solitude... Le but du jeu est de permettre à Continuum par l'intermédiaire de Maven de faire un "update" des sources pour vérifier si des choses ont changées et relancer une commande de build Maven.

Une particularité de Clearcase, qui reste un outil très puissant (mais un peu usine à gaz à mon gout), concerne la façon dont il structure son arborescence de sources sous forme de composants.

La difficulté principale réside dans la définition de l'url du SCM dans chacun des pom des projets.

Voici la procédure de mise en oeuvre :
*rajouter un fichier de conf clearcase sur le serveur d'intégration continue dans le fichier MAVEN_HOME/conf/clearcase-settings.xml avec ce contenu :
<clearcase-settings>
<useVWSParameter>false</useVWSParameter>
<clearcaseType>UCM</clearcaseType>
</clearcase-settings>

*rajouter l'url scm dans chacun des pom de vos projets :
 <scm>
<connection>scm:clearcase:load \<My_Vob\My\Project\Dir>:/<PVOB_Name>:<View_Name></connection>
</scm>
où :
- My_Vob\My\Project\Dir : nom du vob dans lequel se trouve le projet + chemin d'accès à la racine du projet.
- PVOB_Name : nom du PVOB. le PVOB correspond au nom du projet racine dans le project explorer du client Clearcase.
- View_Name : nom de la vue Clearcase

*Il faut ensuite importer le pom du ou des projets dans continuum

*Il faut enfin définir des commandes maven de build dans chacun des projets. Attention! Il faut modifier le champs "Nom du fichier POM*" : au lieu de :
pom.xml
il faut préciser le chemin relatif d'accès au fichier + le nom du fichier. Il faut renseigner le champ de cette façon :
<My_Vob\My\Project\Dir\>pom.xml

lundi 26 mai 2008

Garbage Collector

Si vous cherchez des infos concernant le Garbage Collector en Java ainsi que les différents algorithmes existants voici un ensemble de liens qui peuvent vous être utile :

Monitorer le Garbage Collector avec JConsole

Il est possible de monitorer le Garbage Collector d'une JVM de façon distante sans posséder d'outils complexe.
Voici ce dont vous avez besoin :
  • avoir accès à la JVM du Garbage Collector que vous voulez monitorer.
  • avoir un jdk >=1.5 permettant d'utiliser la JConsole. JConsole est un client JMX intégré dans le jdk à partir de la version 1.5.
L'ojectif est d'ouvrir le connecteur JMX de la JVM pour permettre à la JConsole de s'y connecté. Une fois connecté, la JConsole nous donne toutes les informations utiles sur le Garbage Collector.

Voici la procédure en 2 étapes :
  • Ouvrir le connecteur de la JVM : Il faut démarrer la JVM en lui passant des options de lancement supplémentaires :
    -Dcom.sun.management.jmxremote.port=<port>

    -Dcom.sun.management.jmxremote.authenticate=false

    -Dcom.sun.management.jmxremote.ssl=false
  • Lancer JConsole: Le programme se trouve dans le répertoire /bin de votre JDK :

  • Renseigner le champ JMX URL avec une url du type :
    service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi
  • Se connecter.
  • Aller dans l'onglet "Memory" :

  • Une combobox permet de choisir le graphique désiré en temps réel permettant de voir les différents espaces mémoires de la JVM et la façon dont le Garbage Collector les gère.