Je suis en train de faire un peu de doc pour Topia. Je voulais votre
avis dessous. Est-ce qu'il manque quelques choses ? Faut-il plus
détailler ?
How to
======
Ce document a pour objectif de prendre en main le framework Topia. Le
document est constitué de 4 parties, la modèlisation, la génération, la
configuration et l'utilisation.
Modélisation
------------
La première étape constiste à réaliser le modèle UML soit avec Argouml
soit avec Poséidon.
>>> Capture d'écran
Le stérotype «entity» sur les classes permet de préciser que la classe
est persister par Topia. D'autre stérotypes (extern, service, ...) sont
disponiples mais ne sont pas présenté.
Le fichier de modélisation peut être compléter par un fichier de
configuration nommé <nom fichier modélisation>.properties. Il contient
des informations techniques propres au librairie utilisé par topia.
>>> Exemple de fichier de configuration + explications + convention de
>>> nommage
Génération
----------
La génération des fichiers Topia se font par l'utilisation d'un plugin
maven. Le plugin est disponnible sur le repository maven de code lutin
à l'adresse suivante >>> www.
Exemple de configuration du plugin maven + explication
Généralement pour une classe modélisé, nous retrouvons 6 fichiers :
* Une interface
>>> Exemple
* Une classe abstraite
>>> Exemple
* Une implantation
>>> Exemple
* Une configuration hibernate
>>> Exemple
* DAO abstrait
>>> Exemple
* DAO
>>> Exemple
Une classe Helper est aussi générée, permettant l'accès à l'ensemble
des DAO.
Configuration
-------------
Un fichier contenant les informations de connexion à la base de données
et de configuration de Topia doit être créé au niveau des ressources du
projet.
>>> Exemple de fichier de configuration + explications
Utilisation
-----------
Implantation des méthodes
~~~~~~~~~~~~~~~~~~~~~~~~~
Si des méthodes ont été définis dans le modèle de données il faut créer
l'implantation correspondante. Le paquetage doit porter le même nom que
celui de la génération.
Gestion des transactions
~~~~~~~~~~~~~~~~~~~~~~~~
>>> Properties conf =
>>> Resource.getConfigProperties("/TopiaContext.properties");
Permet de charger un fichier contenant les informations de connexion à
la base et de configuration de Topia.
>>> TopiaContext rootContext = TopiaContextFactory.getContext(conf);
Récupère le context de départ pour la création de sous context pour la
gestion des entités.
>>> TopiaContext transaction = rootContext.beginTransaction();
Création d'un sous context pour la gestion des entités.
>>> transaction.commitTransaction();
Validation de l'état du context, les modifications des entités sont
reportées dans la base de données.
>>> transaction.rollBackTransaction();
Invalidation de l'état du context, les modifications des entités ne
sont pas reportées dans la base de données.
>>> transaction.closeContext();
Fermeture d'un sous context et de ses sous contexts.
>>> rootContext.commitTransaction();
Fermeture du context principal et de ses sous contexts.
Manipulation des entités
~~~~~~~~~~~~~~~~~~~~~~~~
>>> PersonDAO personDAO = <nom modele>Helper.getPersonDAO(transaction);
Récupération d'un DAO pour accéder à une entité.
>>> Person person = personDAO.findByTopiaId(id);
Les méthodes find permettent de récupérer une ou plusieurs selon
différents critères.
>>> person.setName("tutu");
Manipulation de l'entité par les getters et setters.
>>> Person person = personDAO.create();
Création d'une entité.
>>> personDAO.update(person);
Modification d'un entité.
>>> personDAO.delete(person);
Suppression d'une entité.