r51 - in trunk/bonzoms-business/src: main/xmi site site/resources/schemas site/rst site/rst/developper
Author: fdesbois Date: 2009-08-21 10:34:14 +0200 (Fri, 21 Aug 2009) New Revision: 51 Added: trunk/bonzoms-business/src/site/resources/schemas/ClassDiagram_Entities_generation.png Modified: trunk/bonzoms-business/src/main/xmi/bonzoms.zargo trunk/bonzoms-business/src/site/rst/developper/topia.rst trunk/bonzoms-business/src/site/rst/index.rst trunk/bonzoms-business/src/site/rst/specifications.rst trunk/bonzoms-business/src/site/site.xml Log: Add rst documentation Modified: trunk/bonzoms-business/src/main/xmi/bonzoms.zargo =================================================================== (Binary files differ) Added: trunk/bonzoms-business/src/site/resources/schemas/ClassDiagram_Entities_generation.png =================================================================== (Binary files differ) Property changes on: trunk/bonzoms-business/src/site/resources/schemas/ClassDiagram_Entities_generation.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/bonzoms-business/src/site/rst/developper/topia.rst =================================================================== --- trunk/bonzoms-business/src/site/rst/developper/topia.rst 2009-08-20 16:33:24 UTC (rev 50) +++ trunk/bonzoms-business/src/site/rst/developper/topia.rst 2009-08-21 08:34:14 UTC (rev 51) @@ -1,10 +1,131 @@ -Topia +Génération avec ToPIA +===================== -Entites Generation +:Author: $Author: fdesbois $ +:Version: 1.0 +:Revision: $Revision: 47 $ +:Date: $Date: 2009-08-19 19:01:06 +0200 (Wed, 19 Aug 2009) $ -- DAO -- Impl +*Created by fdesbois on 2009-08-19* +Topia est le framework principal pour le module Bonzoms-business. Il permet de générer les entités, les daos, les dtos et les services. Les transactions topia +sont également utilisés pour permettre de se connecter à une base de données pour la persistance des entités. Ainsi les services utilisent les daos pour +ajouter/modifier/supprimer et sélectionner les entités persistantes de la base de données. Cette dernière est configurable dans le fichier ContextBonzoms.properties :: + + hibernate.hbm2ddl.auto=update + hibernate.show_sql=false + + hibernate.dialect=org.hibernate.dialect.H2Dialect + hibernate.connection.username=sa + hibernate.connection.password= + hibernate.connection.driver_class=org.h2.Driver + hibernate.connection.url=jdbc:h2:file:~/h2data/bonzoms + +Actuellement, le fichier de propriétés par défaut utilise une base de données de type H2. Il est possible d'utiliser un autre fichier de propriétés au moment +de l'exécution de l'application. Ce fichier devra s'appeler **ContextBonzoms.properties** et être placé dans le dossier /etc de votre machine. + +.. _maven-eugene-plugin: http://maven-site.nuiton.org/eugene/maven-eugene-plugin/index.html + +Voici la configuration du plugin maven pour la génération des classes javas (`maven-eugene-plugin`_ ) :: + + <plugin> + <groupId>org.nuiton.eugene</groupId> + <artifactId>maven-eugene-plugin</artifactId> + <version>${generator.version}</version> + <executions> + <execution> + <phase>generate-sources</phase> + <!--Configuration of model generator--> + <configuration> + <addCompileDirectory>true</addCompileDirectory> + <includes>**/*.objectmodel</includes> + <templates>org.nuiton.topia.generator.TopiaMetaGenerator,org.nuiton.topia.generator.BeanGenerator, + org.nuiton.topia.generator.TopiaApplicationServiceMetaGenerator</templates> + <defaultPackage>${project.groupId}</defaultPackage> + <fullPackagePath>${project.groupId}</fullPackagePath> + <extractedPackages>${project.groupId}</extractedPackages> + </configuration> + <goals> + <goal>zargo2xmi</goal> + <goal>xmi2objectmodel</goal> + <goal>generate</goal> + </goals> + </execution> + </executions> + <dependencies> + <!-- Topia generation from zargo --> + <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-soa</artifactId> + <version>${topia.version}</version> + <exclusions> + <exclusion> + <groupId>org.codehaus.xfire</groupId> + <artifactId>xfire-java5</artifactId> + </exclusion> + </exclusions> + </dependency> + </dependencies> + </plugin> + +Comme vous pouvez le constater dans les *goals*, trois étapes de génération sont effectuées : + +- zargo2xmi : Extraction du fichier XMI du modèle zargo (créer via `ArgoUML 0.28`_ ). Le fichier zargo est placé dans le dossier *src/main/xmi*. + +- xmi2objectmodel : Création d'un fichier *objectmodel* depuis le fichier xmi (utilisation de la librairie `EUGene`_ ). Ce fichier est généré dans le dossier + *target/generated-sources/models* + +- generate : Génération via ToPIA des fichiers pour les entités, les daos, les dtos et les services. Les fichiers sont générés dans le dossier + *target/generated-sources/java*. Ce sont les trois générateurs utilisés qui permettent les différentes générations. + +.. _ArgoUML 0.28: http://argouml.tigris.org/ + +.. _EUGene: http://maven-site.nuiton.org/eugene/eugene/index.html + +Note + L'exclusion de xfire évite un conflit lors de l'utilisation de topia-soa. + +TopiaMetaGenerator +------------------ + +Le TopiaMetaGenerator inclus dans ToPIA-persistence permet la génération des entités et daos. Pour chaque entité du modèle avec le stéréotype **<<entity>>** 7 fichiers sont générés. +Prenons l'exemple pour l'entité nommé *ContactEntity* : + +- ContactEntity.java : Interface représentant l'entité. Elle comprend les attributs et méthodes décrits dans le modèle UML + les accesseurs générés pour chaque attribut. + Elle comprend aussi des constantes statiques représentant le nom des attributs existants. Pour ContactEntity nous avons un seul champs, le champs *contact*. + +- ContactEntityAbstract.java : Classe abstraite implémentant les méthodes générés dans l'interface. Seul les méthodes non écrite dans le modèle UML sont implémentés. + +- ContactEntityImpl.java : Classe héritant de la classe abstraite précédente et implémentant l'interface de l'entité. Cette classe est généré uniquement si aucune + méthodes sont écrites dans l'entité dans le modèle UML. En effet ces méthodes devront être implémentés par le développeur et la classe devra être créé dans le + package **org.chorem.bonzoms.persistence**. (Vous pouvez trouver un exemple pour l'entité *PartyEntity* -> PartyEntityImpl). + +- ContactEntityImpl.hbm.xml : Fichier de mapping hibernate pour l'entité. + +- ContactEntityDAO.java : Final class du DAO (Data Access Object) pour manipulation des entités (create, update, delete, find, findAll, ...). Hérite de ContactEntityDAOImpl. + +- ContactEntityDAOAbstract.java : Classe abstraite du DAO avec implémentation des méthodes spécifiques à l'entité. + +- ContactEntityDAOImpl.java : Herite de la classe abstraite et permet la surcharge ou l'ajout de méthodes pour le DAO. Cette classe est vide par défaut et peut + ne pas être généré si l'entité sur le diagramme possède des méthodes avec le stéréotype **<<dao>>** + +La génération respecte l'héritage. Ainsi il est possible de manipuler les DAO d'une classe père pour trouver des fils (Ex : PartyEntityDAO). + +Voici le diagramme qui permet de générer les entités de Bonzoms : + +.. image:: ../schemas/ClassDiagram_Entities_generation.png + :alt: Modèle du domaine - Entités de Bonzoms + :align: center + +Classes vertes : pas de génération des classes DAOImpl et Impl + +Classes jaunes : pas de génération de la classe Impl + +Classes roses : pas de génération de la classe DAOImpl + +BeanGenerator +------------- + DTO Generation - Dependances Modified: trunk/bonzoms-business/src/site/rst/index.rst =================================================================== --- trunk/bonzoms-business/src/site/rst/index.rst 2009-08-20 16:33:24 UTC (rev 50) +++ trunk/bonzoms-business/src/site/rst/index.rst 2009-08-21 08:34:14 UTC (rev 51) @@ -1 +1,46 @@ -Index \ No newline at end of file +Sommaire +======== + +Bonzoms est une application permettant la gestion des personnes, sociétés, leurs relations, rôles et contacts. + +Ce site regroupe les documentations utilisateur et développeur du module maven Bonzoms-business. + +Ce module contient la gestion métier de Bonzoms : implémentation des services, gestion de la persistance via ToPIA. + +Vous pouvez vous rendre sur la page de présentation de Bonzoms : `ici`_ . Ou allez voir les spécifications : `la`_ . + +.. _ici: presentation.html + +.. _la: specifications.html + +Documentation utilisateur : + +- Descriptions en détails des `services`_ de Bonzoms. + +- Format des données pouvant être `exportees`_ (utilisation du standard Oasis CIQ). + +- Les `relations`_ et rôles existants par défaut dans l'application Bonzoms. + +- La `FAQ`_ + +.. _services: user/services.html + +.. _exportees: user/export.html + +.. _relations: user/relations.html + +.. _FAQ: user/faq.html + +Documentation développeur : + +- `Organisation`_ du projet Bonzoms. + +- Utilisation de `ToPIA`_ pour la génération des classes java (entités, daos, dtos et services) + +- Utilisation de `ChoReg`_ pour l'export des données + +.. _Organisation: developper/organisation.html + +.. _ToPIA: developper/topia.html + +.. _ChoReg: developper/choreg.html Modified: trunk/bonzoms-business/src/site/rst/specifications.rst =================================================================== --- trunk/bonzoms-business/src/site/rst/specifications.rst 2009-08-20 16:33:24 UTC (rev 50) +++ trunk/bonzoms-business/src/site/rst/specifications.rst 2009-08-21 08:34:14 UTC (rev 51) @@ -1,5 +1,5 @@ Spécifications de Bonzoms -======================== +========================= :Author: $Author$ :Version: 1.0 @@ -58,7 +58,7 @@ Pour plus de détails techniques sur les dtos voir la documentation sur l'utilisation de `ToPIA`_. -.. _dto: developper/topia.html +.. _ToPIA: developper/topia.html Services -------- Modified: trunk/bonzoms-business/src/site/site.xml =================================================================== --- trunk/bonzoms-business/src/site/site.xml 2009-08-20 16:33:24 UTC (rev 50) +++ trunk/bonzoms-business/src/site/site.xml 2009-08-21 08:34:14 UTC (rev 51) @@ -29,6 +29,7 @@ <menu name="Utilisateur"> <item name="Services" href="user/services.html" /> <item name="Export" href="user/export.html" /> + <item name="Gestion des relations" href="user/relations.html" /> <item name="FAQ" href="user/faq.html" /> </menu> @@ -42,6 +43,7 @@ <menu name="Liens"> <item name="ToPIA" href="http://nuiton.org/embedded/topia/topia-persistence/index.html" title="Documentation ToPIA" /> + <item name="ArgoUML" href="http://argouml.tigris.org/" title="ArgoUML" /> <item name="ChoReg" href="http://chorem.org/embedded/choreg/choreg" title="Documentation ChoReg" /> <item name="OASIS CIQ" href="http://www.oasis-open.org/committees/ciq/" title="Standard Oasis CIQ" /> <item name="OASIS CIQ Api" href="http://chorem.org/embedded/choreg/oasis-ciq-api" title="Documentation Oasis CIQ Api" />
participants (1)
-
fdesbois@users.chorem.org