Se préparer à développer un produit Archetypes
La création d'un produit Plone basé sur Archetypes suit généralement ces différentes étapes :
- Création d'un modèle UML contenant les classes détaillées (diagramme de classe) ainsi que les workflows (diagramme d'états-transitions)
- Génération d'un squelette de produit à partir du modèle UML (la modification du modèle et la regénération est possible à tout moment, sans perte des éléments rajoutés manuellement)
- Ajout dans le produit de modifications manuelles : contenu des méthodes, redéfinition de templates, écriture de tests...
Installation de l'outil de modélisation UML
L'outil recommandé est ArgoUML car ce dernier est utilisé par la communauté de développeurs ArchGenXML, en outre il s'agit évidemment d'un outil libre et très facile à installer...
- récupérer la dernière version d'ArgoUML (0.24 au 06/2008) sur http://argouml.tigris.org/
- comme il s'agit d'un outil de modélisation développé en Java, l'installation de JRE est nécessaire
- pour lancer ArgoUML il suffit d'exécuter argouml.jar ou d'utiliser les fichiers de commandes argouml.bat (Windows) ou argouml.sh (Linux)
Il est intéressant d'utiliser ArgoUML avec un profil adapté à Plone. Ce profil nommé "argouml_profile.xmi" se trouve sur le svn dans le produit ArchGenXML (voir point suivant).
ArgoUML doit alors être exécuté en utilisant le profil, avec une commande similaire à "java -Dargo.defaultModel=c:\software\devlpt\argouml_profile.xmi -jar argouml.jar".
Installation d'ArchGenXML2 (qui génère le code)
Idéalement, il faut utiliser une version stable (tags) proposée sur le Subversion Archetypes de Plone
- ArchGenXML devra être récupéré grâce à l'outil subversion (commande "svn"), il faut donc l'installer auparavant (voir le tutoriel subversion)
- récupérer la version à installer sur http://svn.plone.org/svn/archetypes/ArchGenXML. Le répertoire de destination n'est pas important puisqu'ArchGenXML sera installé à un autre endroit par après. Tapez par exemple "svn co http://svn.plone.org/svn/archetypes/ArchGenXML/tags/2.0/ ArchGenXML"
- après avoir récupéré ArchGenXML2, il faut maintenant l'installer. Se positionner dans le dossier où a été récupéré ArchGenXML2 et taper "python setup.py install"
- ajoutez un fichier ".agx_zope_path" dans le dossier de l'utilisateur qui va exécuter archgenxml. Ajoutez y le chemin complet vers un installation de Zope 2.10.X, par exemple /opt/Zope-2.10.6/lib/python
Mise en place de la structure du produit
Au sein d'une instance Zope-2.10.x avec un Plone 3.x
- dans le dossier /Products de l'instance, ajouter un dossier avec le nom du produit à créer (par exemple "MyProduct")
- créer un dossier /model dans le dossier du produit dans lequel le modèle UML sera stocké
- ajouter un fichier generate.conf dans le dossier /model qui contiendra les paramètres de configuration nécessaires à ArchGenXML (voir un exemple sur http://svn.communesplone.org/svn/communesplone/CPClassifiedAd/trunk/model/generate.conf)
- ajouter un fichier generate.sh qui contiendra la ligne de commande appelant ArchGenXML (plus simple que d'écrire la ligne de commande lors de chaque génération) :
archgenxml --cfg generate.conf CPClassifiedAd.zargo -o ..
Génération du produit Archetypes
Dans le dossier du produit :
- sauvegarder le modèle UML dans le dossier /model du produit
- exécuter le fichier generate.sh en tapant "./generate.sh"
- le produit est alors généré et ArchGenXML nous affiche le déroulement dans un log à l'écran et nous prévient s'il y a eu un problème
Conclusion
Lorsque le produit est généré il peut déjà être testé dans l'interface de Plone. ArchGenXML est un générateur de squelette de produit Archetypes. Les profils, workflows et schemas seront générés entièrement depuis le modèle tandis que le corps des méthodes, les vues et autre fonctionnalités propres devront être complétées manuellement.