À partir du composant CDML, nous avons utilisé les fonctionnalités de SmartTools permettant la génération de code. Dans notre exemple, nous avons testé la génération du code sur le composant XML.
Voici les étapes que nous avons suivies.
Nous avions besoin d'information pour localiser SmartTools par rapport a Eclipse pour connaître l'emplacement de SmartTools par rapport à Eclipse et afin de connaître le contexte dans lequel nous travaillons(SmartTools ou Eclipse).
Pour ce faire, nous avons édité le fichier SmartTools.properties.(ant/developer/SmartTools.properties)
Nous avons rajouté deux élements:
SmartTools.Eclipse=yes (permet de connaître le contexte)
SmartTools.Eclipse.dir=../SmartTools (localisation de SmartTools)
Notons qu'il est nécessaire de copier le répertoire ant/developer/ dans le répertoire Eclipse.
Ainsi, dans le fichier SmartTools.properties contenu dans le répertoire eclipse/ant/developer SmartTools.Eclipse=yes et dans le contexte SmartTools SmartTools.Eclipse=no.
Modifications de classes
JavaCompiler.java
Rajout d un test pour mettre le classpath à jour dans le cas ou l'on se trouve dans le contexte eclipse.
AbsyntCompile.java
Rajout d un test pour vérifier si le class loader est null et si l'on se trouve bien sous SmartTools. Dans ce cas, on appelle la méthode getDocType avec seulememt deux argumemts(c'est a dire sans le ClassLoader).
AbstractComponentGenerator.java
même remarque
ComponentGenerator.java
Rajout d'un test pour ne pas construire le fichier .jar dans le contexte Eclipse.