vendredi 23 décembre 2011

Debug Series - Les sources Java Alfresco

Introduction

Le saviez-vous : Alfresco peut être débuggué comme n’importe quelle application Java.
Ce dont vous avez besoin :
- Une instance d’Alfresco sur votre poste
- Un environnement de développement
- Le code source d’Alfresco (de la même version que votre instance)

Dans l’exemple que je vais suivre ici, j’utilise Alfresco Community 4.0a (dans un serveur tomcat, sur environnement Windows), l’environnement de développement Eclipse, au sein duquel j’ai importé les sources d’Alfresco community 4.0a.

Pour le téléchargement des sources d’Alfresco, vous pouvez visiter ces quelques liens :

Configuration

Notre objectif est de pouvoir debugguer Alfresco, en plaçant des points d’arrêt dans le code, en observant la valeur des variables à un instant t, etc …

Pour ce faire, il faut réaliser quelques configurations.

1/ Tout d’abord, en lisant la page suivante de la doc d’Apache tomcat :
http://wiki.apache.org/tomcat/FAQ/Developing
Il faut donc, dans votre installation d’Alfresco, modifier le fichier alfresco.bat pour ajouter, à la fin de la ligne « set JAVA_OPTS= » :

-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

On a ainsi configuré le serveur d’application pour qu’il « écoute » un éventuel debugger sur le port 8000.

2/ Alfresco étant lancé, on peut « activer » le debugger d’Eclipse.

Dans Eclipse, ouvrir le menu « Run/Debug configurations ». Sélectionner « Remote Java Application », puis cliquer sur le bouton en haut à gauche « New Launch configuration ».














Alors, dans le volet de droite, il faut configurer cette nouvelle configuration de Debug. A minima, voici ce dont il faut s’assurer :

- Donner un nom à la configuration
- Onglet « connect » / Vous pouvez laisser les paramètres de connextion par défaut (hôte : localhost, port : 8000)
- Onglet « source » / ajoutez l’ensemble des projets source Alfresco
- Onglet « common » : vous pouvez laisser les valeurs par défaut
(Bien sûr, avec un peu d’expérience, vous pourrez modifier l’ensemble des champs.)

Enfin, cliquez sur sur le bouton « debug », en bas de la fenêtre de configuration.

Debug Mode

Alors, une nouvelle « perspective » dans Eclipse s’ouvre : c’est la vue Debug.
Elle vous permet d’ouvrir des classes, d’y placer des points d’arrêt, de définir des variables pour en observer la valeur à un instant t, etc … comme pour toute application Java !

3 commentaires:

  1. Bonjour Romain,

    En complément de cette astuce toujours très utile, on peut ajouter que, pour disposer du "code source d’Alfresco (de la même version que votre instance)", l'utilisation du SDK Alfresco peut être une bonne idée.

    A chaque nouvelle version, le SDK correspondant est mis à disposition et inclus librairies, Javadoc et sources. C'est une bonne option pour éviter les décalages de sources ;-)

    (et pour pouvoir utiliser pleinement le SDK des versions 4.0a et 4.0b la lecture de ce billet peut être utile : http://charles.torda.net/2011/12/22/alfresco-4-0b-using-sdk-in-eclipse/)

    Cordialement,
    Charles Le Seac'h

    RépondreSupprimer
  2. Tout-à-fait, le SDK peut s'avérer plus pratique, notamment pour les utilisateurs non-familiers de SVN.
    Voici d'ailleurs des liens à ce sujet :
    http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fwhat-to-install-SDK.html
    http://wiki.alfresco.com/wiki/Alfresco_SDK

    RépondreSupprimer
  3. Bonjour Romain,

    Pour des installations Alfreso sous Windows en tant que service, ce tips peut-être très utile!
    http://www.bytefoundry.co.uk/blog/?p=54

    Guillaume Superczynski

    RépondreSupprimer