Topia-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
February 2009
- 4 participants
- 64 discussions
r1371 - topia-service/trunk/src/test/java/org/codelutin/topia/index
by chatellier@users.labs.libre-entreprise.org 13 Feb '09
by chatellier@users.labs.libre-entreprise.org 13 Feb '09
13 Feb '09
Author: chatellier
Date: 2009-02-13 14:00:36 +0000 (Fri, 13 Feb 2009)
New Revision: 1371
Modified:
topia-service/trunk/src/test/java/org/codelutin/topia/index/IndexTest.java
Log:
Close context (test failed in site phase)
Modified: topia-service/trunk/src/test/java/org/codelutin/topia/index/IndexTest.java
===================================================================
--- topia-service/trunk/src/test/java/org/codelutin/topia/index/IndexTest.java 2009-02-12 16:51:27 UTC (rev 1370)
+++ topia-service/trunk/src/test/java/org/codelutin/topia/index/IndexTest.java 2009-02-13 14:00:36 UTC (rev 1371)
@@ -15,8 +15,6 @@
* License along with this program. If not, see
* <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
-
-
package org.codelutin.topia.index;
import org.codelutin.topia.TopiaContext;
@@ -29,7 +27,6 @@
import org.junit.Assert;
import org.junit.Test;
-import java.io.File;
import java.util.Properties;
import java.util.SortedSet;
@@ -53,15 +50,10 @@
config.setProperty("hibernate.show_sql", "true");
config.setProperty("hibernate.hbm2ddl.auto", "create");
- new File("/tmp/topiadb/").mkdirs();
- config.setProperty("topia.dao.flatfile.directory", "/tmp/topiadb/h2");
- config.setProperty("topia.dao.flatfile.mapping.key", "firstname");
-
config.setProperty("topia.persistence.classes", entitiesList);
- config.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
+ config.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
config.setProperty("hibernate.connection.driver_class", "org.h2.Driver");
- config.setProperty("hibernate.connection.url",
- "jdbc:h2:file:/tmp/topiaderby;create=true");
+ config.setProperty("hibernate.connection.url","jdbc:h2:file:/tmp/topiaderby;create=true");
config.setProperty("hibernate.connection.username", "sa");
config.setProperty("hibernate.connection.password", "");
@@ -113,6 +105,9 @@
for (IndexEntry result : results) {
System.out.println("Index result: " + result.getScore() + " topiaId: " + result.getTopiaId());
}
+
+ // test fail without close
+ context.closeContext();
}
}
1
0
r1370 - topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator
by tchemit@users.labs.libre-entreprise.org 12 Feb '09
by tchemit@users.labs.libre-entreprise.org 12 Feb '09
12 Feb '09
Author: tchemit
Date: 2009-02-12 16:51:27 +0000 (Thu, 12 Feb 2009)
New Revision: 1370
Modified:
topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/DAOHelperGenerator.java
topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaGeneratorUtil.java
Log:
generate DAOHelper with any fqn classes :)
fix bug on cleanImports method (use a very weak test)
Modified: topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/DAOHelperGenerator.java
===================================================================
--- topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/DAOHelperGenerator.java 2009-02-12 15:00:55 UTC (rev 1369)
+++ topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/DAOHelperGenerator.java 2009-02-12 16:51:27 UTC (rev 1370)
@@ -82,36 +82,45 @@
/*{<%=copyright%>
}*/
}
+ String packageName = getProperty("defaultPackage");
+/*{package <%=packageName%>;
+
+}*/
String modelName = GeneratorUtil.capitalize(model.getName());
- String daoClazzName = modelName+"DAOHelper";
+ String daoHelperClazzName = modelName+"DAOHelper";
String entityEnumName = modelName+"EntityEnum";
+ List<ObjectModelClass> classes = TopiaGeneratorUtil.getEntityClasses(model,true);
-/*{package <%=getProperty("defaultPackage")%>;
+ List<String> imports = computeImports(packageName, classes);
+ if (log.isDebugEnabled()) {
+ log.debug("imports for class <" + daoHelperClazzName + ">");
+ }
+ for (String anImport : imports) {
+ if (log.isDebugEnabled()) {
+ log.debug("import " + anImport);
+ }
+/*{import <%=anImport%>;
+}*/
+ }
+/*{
+public class <%=daoHelperClazzName%> {
-import org.codelutin.topia.TopiaContext;
-import org.codelutin.topia.TopiaException;
-import org.codelutin.topia.framework.TopiaContextImplementor;
-import org.codelutin.topia.persistence.TopiaDAO;
-import org.codelutin.topia.persistence.TopiaEntity;
-
-public class <%=daoClazzName%> {
-
}*/
- List<ObjectModelClass> classes = TopiaGeneratorUtil.getEntityClasses(model,true);
+
/*{ /**
* no instance for this helper
*)
- protected <%=daoClazzName%>() {
+ protected <%=daoHelperClazzName%>() {
}
}*/
for (ObjectModelClass clazz : classes) {
- String clazzFQN = clazz.getQualifiedName();
String clazzName = clazz.getName();
+ String daoClazzName = clazzName + "DAO";
/*{
- public static <%=clazzFQN%>DAO get<%=clazzName%>DAO(TopiaContext context) throws TopiaException {
+ public static <%=daoClazzName%> get<%=daoClazzName%>(TopiaContext context) throws TopiaException {
TopiaContextImplementor ci = (TopiaContextImplementor) context;
- <%=clazzFQN%>DAO result = (<%=clazzFQN%>DAO) ci.getDAO(<%=clazzFQN%>.class);
+ <%=daoClazzName%> result = (<%=daoClazzName%>) ci.getDAO(<%=clazzName%>.class);
return result;
}
}*/
@@ -127,7 +136,7 @@
@SuppressWarnings({"unchecked"})
public static <T extends TopiaEntity, D extends TopiaDAO<? super T>> D getDAO(TopiaContext context, T entity) throws TopiaException {
- TopiaContextImplementor ci = (TopiaContextImplementor)context;
+ TopiaContextImplementor ci = (TopiaContextImplementor) context;
<%=entityEnumName%> constant = <%=entityEnumName%>.valueOf(entity);
D dao = (D) ci.getDAO(constant.getContractClass());
return dao;
@@ -148,7 +157,7 @@
@SuppressWarnings({"unchecked"})
public static Class<? extends TopiaEntity>[] getContractClasses() {
<%=entityEnumName%>[] values = <%=entityEnumName%>.values();
- Class<? extends TopiaEntity>[] result = (Class<? extends TopiaEntity>[]) java.lang.reflect.Array.newInstance(Class.class, values.length);
+ Class<? extends TopiaEntity>[] result = (Class<? extends TopiaEntity>[]) Array.newInstance(Class.class, values.length);
for (int i = 0; i < values.length; i++) {
result[i] = values[i].getContractClass();
}
@@ -158,7 +167,7 @@
@SuppressWarnings({"unchecked"})
public static Class<? extends TopiaEntity>[] getImplementationClasses() {
<%=entityEnumName%>[] values = <%=entityEnumName%>.values();
- Class<? extends TopiaEntity>[] result = (Class<? extends TopiaEntity>[]) java.lang.reflect.Array.newInstance(Class.class, values.length);
+ Class<? extends TopiaEntity>[] result = (Class<? extends TopiaEntity>[]) Array.newInstance(Class.class, values.length);
for (int i = 0; i < values.length; i++) {
result[i] = values[i].getImplementationClass();
}
@@ -180,10 +189,9 @@
}*/
for (Iterator<ObjectModelClass> i=classes.iterator(); i.hasNext();) {
ObjectModelClass clazz = i.next();
- String clazzFQN = clazz.getQualifiedName();
String clazzName = clazz.getName();
/*{
- <%=clazzName%>(<%=clazzFQN%>.class)<%=(i.hasNext() ? "," : ";")%>}*/
+ <%=clazzName%>(<%=clazzName%>.class)<%=(i.hasNext() ? "," : ";")%>}*/
}
/*{
@@ -235,7 +243,7 @@
return entityEnum;
}
}
- throw new IllegalArgumentException("no entity defined for the class " + klass + " in : " + java.util.Arrays.toString(<%=entityEnumName%>.values()));
+ throw new IllegalArgumentException("no entity defined for the class " + klass + " in : " + Arrays.toString(<%=entityEnumName%>.values()));
}
}
}*/
@@ -269,8 +277,27 @@
log.debug("Full entities list : " + entitiesList);
}
/*{
-} //<%=daoClazzName%>
+} //<%=daoHelperClazzName%>
}*/
}
+ protected List<String> computeImports(String packageName, List<ObjectModelClass> classes) {
+ java.util.Set<String> imports = new java.util.HashSet<String>(java.util.Arrays.asList(
+ java.lang.reflect.Array.class.getName(),
+ java.util.Arrays.class.getName(),
+ org.codelutin.topia.TopiaContext.class.getName(),
+ org.codelutin.topia.TopiaException.class.getName(),
+ org.codelutin.topia.framework.TopiaContextImplementor.class.getName(),
+ org.codelutin.topia.persistence.TopiaDAO.class.getName(),
+ org.codelutin.topia.persistence.TopiaEntity.class.getName()));
+
+ for (ObjectModelClass clazz : classes) {
+ String clazzFQN = clazz.getQualifiedName();
+ imports.add(clazzFQN);
+ imports.add(clazzFQN + "DAO");
+ }
+ List<String> cleanImports = TopiaGeneratorUtil.cleanImports(packageName, imports);
+ java.util.Collections.sort(cleanImports);
+ return cleanImports;
+ }
} //DAOHelperGenerator
Modified: topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaGeneratorUtil.java
===================================================================
--- topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaGeneratorUtil.java 2009-02-12 15:00:55 UTC (rev 1369)
+++ topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaGeneratorUtil.java 2009-02-12 16:51:27 UTC (rev 1370)
@@ -851,7 +851,7 @@
for (Iterator<String> it = fqns.iterator(); it.hasNext();) {
String fqn = it.next();
int lastIndex = fqn.lastIndexOf(".");
- if (lastIndex == packageLength) {
+ if (lastIndex == packageLength && fqn.startsWith(packageName)) {
// same package
it.remove();
continue;
1
0
r1369 - topia/trunk/topia-persistence/src/site/fr/rst
by jcouteau@users.labs.libre-entreprise.org 12 Feb '09
by jcouteau@users.labs.libre-entreprise.org 12 Feb '09
12 Feb '09
Author: jcouteau
Date: 2009-02-12 15:00:55 +0000 (Thu, 12 Feb 2009)
New Revision: 1369
Modified:
topia/trunk/topia-persistence/src/site/fr/rst/Devel.rst
topia/trunk/topia-persistence/src/site/fr/rst/FAQ.rst
topia/trunk/topia-persistence/src/site/fr/rst/HibernateMapping.rst
topia/trunk/topia-persistence/src/site/fr/rst/Isolation.rst
topia/trunk/topia-persistence/src/site/fr/rst/ModelGeneration.rst
topia/trunk/topia-persistence/src/site/fr/rst/SchemaMigration.rst
topia/trunk/topia-persistence/src/site/fr/rst/Todo.rst
topia/trunk/topia-persistence/src/site/fr/rst/TopiaDocumentation.rst
topia/trunk/topia-persistence/src/site/fr/rst/event.rst
topia/trunk/topia-persistence/src/site/fr/rst/howto.rst
topia/trunk/topia-persistence/src/site/fr/rst/project.rst
topia/trunk/topia-persistence/src/site/fr/rst/security.rst
Log:
Spelling and grammatical corrections on documentation
Modified: topia/trunk/topia-persistence/src/site/fr/rst/Devel.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/Devel.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/Devel.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -1,16 +1,16 @@
TopiaContextFactory
===================
-Le topia context est créé en fesant la demande sur le *TopiaContextFactory*.
+Le topia context est créé en faisant la demande sur le *TopiaContextFactory*.
On peut passer en paramètre au *TopiaContextFactory* un object *Property* qui
-permet de configurer le context. Si on ne donne pas de fichier un fichier de
+permet de configurer le context. Si aucun fichier est passé en paramètre, un fichier de
propriété **TopiaContextImpl.properties** est recherché dans le classpath.
Fichier de configuration
========================
Le fichier de configuration est un fichier lisible par un objet *Property*.
-Il contient différente information:
+Il contient différentes informations :
- liste des entités à gérer
- type de DAO à utiliser
- option de connexion à la base de données
@@ -19,43 +19,39 @@
Liste des entités à gérer
-------------------------
-Il est possible de définir les entités soit directement un indiquant un
+Il est possible de définir les entités soit directement en indiquant un
répertoire contenant les mappings hibernate::
topia.persistence.directories=<path>
-doit en indiquant une liste de classe séparé par des virgule::
+soit en indiquant une liste de classe séparé par des virgule::
topia.persistence.classes=<list de classe>
Le mieux est d'utiliser la liste de classe qui est non spécifique à une
-persistence ou à une plateform.
+persistence ou à une plateforme.
Type de DAO à utiliser
----------------------
-Par défaut si cette option n'est pas spécifiée, les entités sont géré par
+Par défaut si cette option n'est pas spécifiée, les entités sont gérées par
hibernate. On peut préciser d'utiliser le même type de DAO pour toutes les
-entités en une seul fois avec::
+entités en une seule fois avec::
topia.dao.default.class=<DAO class name>
On peut aussi préciser un DAO spécifique pour une entité particulière::
- topia.dao.<fully qualify class name>=<DAO class name>
+ topia.dao.<fully qualified class name>=<DAO class name>
Pour simplifer un peu l'écriture, deux alias de DAO on été fait:
- **hibernate** est remplacé par *org.codelutin.topia.persistence.hibernate.TopiaDAOHibernate*
- **flatfile** est remplacé par *org.codelutin.topia.persistence.flatfile.TopiaDAOFlatFile*
-La plupart du temps on ne spécifie dans ces options que le DAO de base
-(hibernate, flatfile, ...) et non pas un DAO spécifique pour l'entité qui
-aurait des méthodes de recherche supplémentaire, car la méthode **getDao**
-du *TopiaContext* encapsule automatiquement ce DAO générique par un DAO
-spécifique si celui-ci est trouvé. Le DAO spécifique doit avoir exactement
-le même nom que l'entité avec DAO à la fin. Si vous souhaitez implanter ce
-genre de DAO spécifique, il devra étendre la classe *TopiaDAODelegator*.
+La plupart du temps, on ne spécifie, dans ces options, que le DAO de base (hibernate, flatfile, ...) et non pas un DAO spécifique pour l'entité qui aurait des méthodes de recherche supplémentaire. Ceci car la méthode **getDao** du *TopiaContext* encapsule automatiquement ce DAO générique par un DAO spécifique si celui-ci est trouvé. Le DAO spécifique doit avoir exactement
+le même nom que l'entité avec DAO à la fin.
+Si vous souhaitez implanter ce genre de DAO spécifique, il devra étendre la classe *TopiaDAODelegator*.
Option de connexion à la base de données
----------------------------------------
@@ -63,7 +59,7 @@
Flatfile
~~~~~~~~
-La seul option à renseigner est le répertoire ou les entités doivent être
+La seule option à renseigner est le répertoire ou les entités doivent être
sauvées::
topia.dao.flatfile.directory=<path>
@@ -71,13 +67,11 @@
Hibernate
~~~~~~~~~
-Les options pour hibernate peuvent être directement dans le fichier de
-configuration principale ou dans un fichier de configuration secondaire dans
-ce cas il faut indiquer dans le principale le chemin de ce fichier::
+Les options pour hibernate peuvent être directement dans le fichier de configuration principal ou dans un fichier de configuration secondaire. Dans ce cas il faut indiquer dans le fichier de configuration principal le chemin de ce fichier::
topia.persistence.properties.file=<filesystem or classpath path>
-Les options hibernates sont les optiions hibernate classique:
+Les options hibernates sont les options hibernate classique :
- hibernate.connection.username
- hibernate.connection.password
@@ -88,15 +82,14 @@
Les services à activer
----------------------
-Il est possible d'indiqué les services à activer grâce aux options::
+Il est possible d'indiquer les services à activer grâce aux options::
topia.service.<service name>=<class>
topia.service.security=org.codelutin.topia.security.TopiaSecurityServiceImpl
topia.service.index=org.codelutin.topia.index.LuceneIndexer
topia.service.history=org.codelutin.topia.history.TopiaHistoryServiceImpl
-Le nom du service doit correspondre au nom de service que le service
-retourne, sinon il est désactivé.
+<service name> doit correspondre au nom de service que <class> retourne, sinon il est désactivé.
Les services disponibles actuellement sont:
@@ -112,8 +105,8 @@
en récupérant des nouveaux *TopiaContext* fils, de s'enregistrer en tant que
listener pour recevoir les notifications de modification sur les entités.
-Sur les *TopiaContext* fils on peut récupérer des DAO qui permettent de
-créer, modifier, recherché les entités.
+Sur les *TopiaContext* fils, on peut récupérer des DAO qui permettent de
+créer, modifier, rechercher les entités.
DAO
===
@@ -127,7 +120,7 @@
- hibernate
- flatfile
-Il est possible d'ajouter d'autre type de persistence en implantant
+Il est possible d'ajouter d'autres types de persistence en implantant
*TopiaDAOAbstract*.
Il est possible de faire un DAO spécial pour un type d'entité, par exemple
@@ -148,7 +141,7 @@
======
Normalement **Topia** est fait pour pouvoir générer n'importe quel type de POJO
-et les rendre persistent. Mais il est plus simple d'utiliser la génération
+et les rendre persistants. Mais il est plus simple d'utiliser la génération
de code fournit avec **Topia** pour générer les entités à partir d'un
diagramme UML. Dans ce cas toutes les entités héritent de *TopiaEntity* qui
contient des méthodes pour s'enregistrer sur les modifications des attributs
@@ -182,7 +175,7 @@
public static final String SERVICE_NAME = "monservice";
-Un service peut avoir besoin de nouvelle entités pour fonctionner pour cela
+Un service peut avoir besoin de nouvelles entités pour fonctionner. Pour cela
il faut retourner la liste des entités grâce à la méthode
**getPersistenceClasses**.
Modified: topia/trunk/topia-persistence/src/site/fr/rst/FAQ.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/FAQ.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/FAQ.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -1,18 +1,18 @@
-Probleme lors du chargement d'une entity
+Problème lors du chargement d'une entity
========================================
-Le chargement utilise les methodes Set des proprietes, il faut donc faire
+Le chargement utilise les méthodes Set des propriétés, il faut donc faire
attention si on les surcharge.
-Il faut faire attention lors de l'ajout de method sur l'entity qui ont la
-meme signature que des methods Set de properties avec juste des arguments
-different, car elles peuvent etre utilisées a la place de la vrai methode
-pour quelque valeur (par exemple null)
+Il faut faire attention lors de l'ajout, sur l'entity, de méthodes qui ont la
+même signature que des méthods Set de propriétés avec juste des arguments
+différents, car elles peuvent être utilisées à la place de la vrai méthode
+pour quelque valeur (par exemple null).
Faire fonctionner les Web Services Topia via RMI
================================================
-L'utilisation des Web Services sur RMI impose la generation de classes sauvées
+L'utilisation des Web Services sur RMI impose la génération de classes sauvées
sur disque.
-Elle sont construite à la volée et sauvées dans le dossier "./topiagen".
+Elle sont construites à la volée et sauvées dans le dossier "./topiagen".
-Ce dossier doit donc se trouver dans le classpath.
\ No newline at end of file
+Ce dossier doit donc se trouver dans le classpath.
Modified: topia/trunk/topia-persistence/src/site/fr/rst/HibernateMapping.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/HibernateMapping.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/HibernateMapping.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -2,8 +2,8 @@
Mapping hibernate
=================
-Ce document d'écrit les choix de mapping fait en fonction des différentes en
-fonction du diagramme de classe UML.
+Ce document décrit les choix de mapping faits en fonction
+du diagramme de classe UML.
JDBC
====
@@ -11,7 +11,7 @@
Généralité
----------
-- Tous les objets utilise le versionnement dans un champs version::
+- Tous les objets utilisent le versionnement dans un champs version::
<version name="topiaVersion" type="long" node="@topiaVersion"/>
@@ -28,22 +28,22 @@
Identifiant
-----------
-Lors de la description de la classe, on peut indiquer de ne pas généré de clé
-technique dans ce cas, la cle metier est uitlisé (tagvalue: technicalKey=false).
-Par défaut une clé technique est utilisé et est de la forme uuid.hex::
+Lors de la description de la classe, on peut indiquer de ne pas générer de clé
+technique. Dans ce cas, la clé métier est utilisée (tagvalue: technicalKey=false).
+Par défaut une clé technique est utilisée et est de la forme uuid.hex::
<id name="topiaId" column="topiaId" type="string">
<generator class="uuid.hex"/>
</id>
-La description de la cle metier est fait par un tagvalue sur la classe
-(tagvalue: key=prop1,prop2,prop3). Si une cle technique est utilisée une
-contrainte d'unicité est tout de même fait sur la cle métier.
+La description de la clé métier est faite par un tagvalue sur la classe
+(tagvalue: key=prop1,prop2,prop3). Si une clé technique est utilisée, une
+contrainte d'unicité est tout de même faite sur la clé métier.
-La cle metier sert aussi pour le toString, equals, hashCode.
+La clé métier sert aussi pour le toString, equals, hashCode.
Si l'id d'une entité est composé de plusieurs champs, ces champs doivent-être
-rassemblé dans une classe indépendante de l'entité. Par contre le mapping
+rassemblés dans une classe indépendante de l'entité. Par contre le mapping
assemble l'entity et son id dans la même table::
<composite-id name="#field" class="#class">
@@ -52,7 +52,7 @@
<key-property name="#field3" column="#col3"/>
</composite>
-Si l'id est un objet simple il peut-être directement mis dans l'entité.
+Si l'id est un objet simple il peut être directement mis dans l'entité.
Relation 1-0
------------
@@ -77,8 +77,8 @@
Composition
-----------
-Le composant peut changer de proprietaire (set methode) mais le
-proprietaire pert en meme temps le lien vers son composé.
+Le composant peut changer de propriétaire (set méthode) mais le
+propriétaire perd en même temps le lien vers son composé.
Aggregation
-----------
@@ -86,11 +86,11 @@
Si une classe est aggrégée avec une autre, alors elle suit la vie de l'entité
à laquelle elle est aggrégée (cascade delete, update)
-Elle ne peut pas etre affecté a une autre entité pas de set sur cette classe
+Elle ne peut pas être affectée a une autre entité. Pas de set sur cette classe
vers l'autre classe.
XML
===
-Toutes les propriétés sont des éléments sauf la cle technique qui est un
+Toutes les propriétés sont des éléments sauf la clé technique qui est un
attribut.
Modified: topia/trunk/topia-persistence/src/site/fr/rst/Isolation.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/Isolation.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/Isolation.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -2,55 +2,55 @@
Isolation des TopiaContexts
===========================
-remarque: les requetes ne sont pas bonne, mais sont la pour donner l'idée
+Remarque: les requètes ne sont pas bonnes, mais sont là pour donner l'idée
générale.
-Pour mettre en place l'isolation entre les différents TopiaContexts créé par
-begionTransaction, il faut ajouter un nouvelle propriété sur les
+Pour mettre en place l'isolation entre les différents TopiaContexts créés par
+beginTransaction, il faut ajouter un nouvelle propriété sur les
TopiaEntity: TopiaContextId. Cette propriété prend la valeur de l'id du
-TopiaContext qui a créé ou chargé l'objet. On voit donc que plusieurs objet
+TopiaContext qui a créé ou chargé l'objet. On voit donc que plusieurs objets
ayant le même id peuvent exister, le TopiaContextId doit donc faire partie
-de la cle de l'objet. Il faut aussi ajouter un champs TopiaDeleted pour
-savoir si un objet a ete effacé ou non.
+de la clé de l'objet. Il faut aussi ajouter un champs TopiaDeleted pour
+savoir si un objet a été effacé ou non.
Dans le mapping hibernate pour chaque class d'entité, on a un filtre:
where TopiaContextId == :id || (TopiaContextId > 0 && TopiaContextId <= :id)
Ce filtre n'est pas suffisant car on a toutes les versions commités de
l'objet jusqu'a :id, il faut un autre filtre apres les recherches pour
-n'avoir que les dernieres versions des entites et supprimé dans ce groupe
-les entites marquées effacées.
+n'avoir que les dernieres versions des entites et supprimer dans ce groupe
+les entitées marquées et effacées.
where TopiaContextId = max(TopiaContextId) && isDeleted=false group by topiaId
Lors d'un beginTransaction le nouveau TopiaContext active ce filtre pour son
propre id.
-De cette manière un TopiaContext ne voit que les objets qu'il a cree et/ou
-modifié ou les objets plus ancien que lui.
+De cette manière un TopiaContext ne voit que les objets qu'il a créé et/ou
+modifié, ou les objets plus ancien que lui.
Cet Id est: - System.nanoTime() et donc toujours négatif.
Lors d'un commit d'un TopiaContext, on passe tous les TopiaContextId de
-toutes les entités qui sont egal a l'id du TopiaContext en sa version
+toutes les entités qui sont égales a l'id du TopiaContext en sa version
positive: update <table> set TopiaContextId = -:id where TopiaContextId = :id
-De plus le TopiaContext renouvelle sont id et modifie tous les filtres pour
-qu'il ait la vision d'objet créé par d'autre TopiaContext avant son commit
+De plus le TopiaContext renouvelle son id et modifie tous les filtres pour
+qu'il aie la vision d'objets créés par d'autre TopiaContext avant son commit.
-Lors d'un rollback il suffit de faire le renouvellement de l'id et la mise a
+Lors d'un rollback il suffit de faire le renouvellement de l'id et la mise à
jour des filtres.
-Sous transaction
+Sous-transaction
================
-La gestion des TopiaContextId pourrait offrire les sous-transactions, si
-dans le filtre on ajoutait comme condition au lieu de TopiaContextId == :id
+La gestion des TopiaContextId pourrait offrir les sous-transactions, si
+dans le filtre on ajoutait comme condition, au lieu de TopiaContextId == :id,
TopiaContextId in (:idList) ou idList serait la liste des ids du
-TopiaContext courant ainsi que des TopiaContext parent.
+TopiaContext courant ainsi que des TopiaContext parents.
Historisation
=============
-La gestion des TopiaContextId permet d'offire l'historisation de tous les
+La gestion des TopiaContextId permet d'offrir l'historisation de tous les
objets. Car tous les objets commités sont conservés avec un TopiaContextId
différent pour chaque version.
@@ -58,7 +58,7 @@
============
- Mettre en place les champs supplémentaires: TopiaContextId, TopiaDeleted
-- Modifier la cle primaire pour ajouter TopiaContextId
+- Modifier la clé primaire pour ajouter TopiaContextId
- Ajouter les filtres dans les mappings
- Ajouter un id sur les TopiaContext
- Modifier le comportement de DAO.delete pour qu'il marque juste l'objet
Modified: topia/trunk/topia-persistence/src/site/fr/rst/ModelGeneration.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/ModelGeneration.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/ModelGeneration.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -81,4 +81,4 @@
<!-- la version peut être plus récente -->
<version>2.1.0</version>
<scope>compile</scope>
-</dependency>
\ No newline at end of file
+</dependency>
Modified: topia/trunk/topia-persistence/src/site/fr/rst/SchemaMigration.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/SchemaMigration.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/SchemaMigration.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -1,10 +1,10 @@
=====================================
-Comment migrer d'un schema a un autre
+Comment migrer d'un schéma à un autre
=====================================
Une application modifie et ajoute des objets. La persistence doit donc être
adaptée à ces changements. Le problème est la migration des données
-existants dans le nouveau schéma.
+existantes dans le nouveau schéma.
Voici quelques idées d'implantations.
@@ -12,10 +12,10 @@
========================
Hibernate permet de mapper les objets de la base de données dans des
-dynamic-map. Nous n'avons donc pas besoin de pojo pour les représenter, ils
+dynamic-map. Nous n'avons donc pas besoin de pojo pour les représenter, il
nous suffit d'avoir le mapping hibernate.
-L'idée est donc lors de la modification de schéma de regrouper tous les
+L'idée est donc, lors de la modification de schéma, de regrouper tous les
anciens mapping dans un seul fichier de mapping qui contiendra le numero de
version du schema.
@@ -28,23 +28,25 @@
Avantage
--------
-Le changement de schema est fait en java
+Le changement de schéma est fait en java
Désavantage
-----------
-Il faut dans la base une table qui indique dans quelle version de schema
-actuelle est la base (Topia->schemaVersion), ou bien il faut faire une base
-par version, le numero de version etant dans le nom de la base (inconveniant
-le nom de la base change a chaque version), a moins qu'on ne puisse faire un
-changement de schema dans une transaction, donc on peut lire les anciennes
-données dans une transaction et on ecrit les nouvelles dans une autre
-transaction sur la meme table mais qui aurait des schema differents.
+Il faut dans la base une table qui indique dans quelle version de schéma
+actuelle est la base (Topia->schemaVersion).
+Une autre solution est de faire une base
+par version, le numero de version étant dans le nom de la base (inconveniant :
+le nom de la base change a chaque version).
+Une autre solution possible est de faire un
+changement de schéma dans une transaction, donc on peut lire les anciennes
+données dans une transaction et on écrit les nouvelles dans une autre
+transaction sur la même table mais qui aurait des schéma différents.
-Il faut dans les noms des tables le numero de version du schema pour que les
+Il faut, dans les noms des tables, le numéro de version du schéma pour que les
les anciennes tables ne servent pas comme nom pour les nouvelles.
-Il faut soit faire l'aggregation des mapping dans un seul fichier, soit
+Il faut soit faire l'aggrégation des mapping dans un seul fichier, soit
n'utiliser qu'un seul fichier pour les mappings, soit avoir un fichier par
classe et par version, mais il est moins simple de retrouver tous les
fichiers de mapping et surtout moins simple
@@ -88,8 +90,8 @@
Il est aussi possible de lire une base en XML. On utiliserait donc la même
technique que pour les dynamic-map, mais on utiliserait du XSL pour
-convertir le XML vers le schema souhaité. De cette facon il n'y a pas besoin
-de table intermédiaire ni de numero de version de schema dans les tables.
+convertir le XML vers le schéma souhaité. De cette facon il n'y a pas besoin
+de table intermédiaire ni de numéro de version de schéma dans les tables.
- Export XML en utilisant le vieux mapping
- converion en enchainant les transformations XSL
@@ -98,13 +100,13 @@
Inconvéniant
------------
-si le volume est important il peut-etre long de tous transformer en XML.
+si le volume est important il peut-etre long de tout transformer en XML.
Kettle
======
Une autre idee est de ne pas utiliser hibernate mais kettle pour la
migration des données. Nous aurions de la même façon dans le nom des tables
-un numero de version de schema. Un fichier kettle decrirait la migration
-d'une version à une autre. Et les différents fichier serait chainé pour
-arrivé au schema souhaité.
+un numero de version de schéma. Un fichier kettle decrirait la migration
+d'une version à une autre. Et les différents fichiers serait chaînés pour
+arriver au schéma souhaité.
Modified: topia/trunk/topia-persistence/src/site/fr/rst/Todo.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/Todo.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/Todo.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -1,4 +1,4 @@
-Recherche a faire:
+Recherches à faire:
- des persistences hibernates sur LDAP ou FlatFile
- des outils de migration/evolution de schema
@@ -11,7 +11,7 @@
.getGenericSuperclass()).getActualTypeArguments()[0];
-Regarder si TopiaContext ne pourrait pas etre remplacé par un PicoContainer
+Regarder si TopiaContext ne pourrait pas être remplacé par un PicoContainer
http://www.hibernate.org/180.html
http://www.hibernate.org/182.html
@@ -21,18 +21,18 @@
Generation
==========
-- (2) import/export XML dans ToPIA, a mettre dans le mapping hibernate (en partie fait, mais très stable...)
+- (2) import/export XML dans ToPIA, à mettre dans le mapping hibernate (en partie fait, mais très stable...)
Gestion des versions des POJO
=============================
-mettre en place serialVersionUID sur les entites
+mettre en place serialVersionUID sur les entités
Gestion des droits et de la sécurité
====================================
-Le createur de l'objet n'est pas dans l'objet lui meme mais dans une table a
+Le créateur de l'objet n'est pas dans l'objet lui même mais dans une table a
part.
Owner: topiaId de l'entity, id du propriétaire
@@ -40,8 +40,8 @@
Les droits des objets sont dans une table a part
(voir http://www.hibernate.org/140.html)
-Il serait bon que les droits s'applique sur un group ou un user. Et qu'un user
-puisse apportenir a un group, et qu'un group puisse aussi appartenir a un group
+Il serait bon que les droits s'appliquent sur un group ou un user. Et qu'un user
+puisse appartenir a un group, et qu'un group puisse aussi appartenir a un group
Il faut aussi modifier le Policy ou autre pour pouvoir lire les permissions
dans hibernate lorsqu'on nous les demandes. Mettre des méthodes statique dans
@@ -220,4 +220,4 @@
- TODO Check wether this method could be used to generate getter and setters
-- Uniformiser et faire hériter les générateurs des interfaces et classe d'impl pour que le générateur de la classe d'impl soit capable de générer aussi l'interface
\ No newline at end of file
+- Uniformiser et faire hériter les générateurs des interfaces et classe d'impl pour que le générateur de la classe d'impl soit capable de générer aussi l'interface
Modified: topia/trunk/topia-persistence/src/site/fr/rst/TopiaDocumentation.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/TopiaDocumentation.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/TopiaDocumentation.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -7,14 +7,14 @@
- abstraction de la persistence
- sauvegarde/restauration en XML
-- securite sur les instances d'objets
-- generation de code meme si non obligatoire pour utiliser ToPIA
+- sécurité sur les instances d'objets
+- génération de code même si non obligatoire pour utiliser ToPIA
-Ce qu'il serait bien de recuperer par rapport a la version 2
+Ce qu'il serait bien de récuperer par rapport à la version 2
- support des sous-transactions
-peut-etre plus tard
+peut-être plus tard
- gestion des services
- distribution transparente
@@ -23,22 +23,22 @@
===============
Un point d'entre le TopiaContext sur lequel on ouvre des transactions ce qui
-retourne un autre TopiaContext a partir duquel on recupere les DAO des
-differentes entités qui permettent de faire les traitements que l'on souhaite.
+retourne un autre TopiaContext à partir duquel on récupère les DAO des
+différentes entités qui permettent de faire les traitements que l'on souhaite.
Ensuite on peut appeler la methode commit de ce sous TopiaContext pour mettre
-a jour la base de données et permettre a d'autre TopiaContext d'avoir la
+à jour la base de données et permettre à d'autres TopiaContext d'avoir la
nouvelle vision de nos objets.
-Chaque TopiaContext creer sur le TopiaContext root sont independant.
+Chaque TopiaContext créé sur le TopiaContext root est indépendant.
Lorsque l'on travaille avec un objet provenant d'un TopiaContext sur lequel
-on a fait un rollback celui-ci n'est plus valide et il vaut mieux en recuperer
-une version correct sur le TopiaContext.
+on a fait un rollback, celui-ci n'est plus valide et il vaut mieux en recupérer
+une version correcte sur le TopiaContext.
-Apres avoir fait un commit ou un rollback sur un TopiaContext on peut continuer
+Après avoir fait un commit ou un rollback sur un TopiaContext on peut continuer
a l'utiliser et refaire des commits pour synchroniser de temps en temps les
-modification fait sur la base.
+modification faites sur la base.
Un TopiaContext peu servir aussi longtemps que l'on souhaite, il ne maintient
pas inutilement de transaction sur la base.
Modified: topia/trunk/topia-persistence/src/site/fr/rst/event.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/event.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/event.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -1,67 +1,67 @@
-Gestion des evenements
+Gestion des évènements
======================
-On peut se mettre listener sur deux sortes d'evenement les TopiaEntityEvent et
-les TopiaVetoableEntityEvent. La difference entre les deux est le moment de
+On peut se mettre listener sur deux sortes d'évènements : les TopiaEntityEvent et
+les TopiaVetoableEntityEvent. La difference entre les deux se situe sur le moment de
l'appel.
TopiaVetoableEntityEvent
------------------------
-Les TopiaVetoableEntityEvent sont appelé avant l'action, ce qui
+Les TopiaVetoableEntityEvent sont appelés avant l'action, ce qui
permet de l'interdire en levant une exception (par exemple pour gérer la
sécurité).
-Les TopiaVetoableEntityEvent contiennent la classe au quel se rapporte l'event
+Les TopiaVetoableEntityEvent contiennent la classe à laquelle se rapporte l'event
et si possible l'identifiant de l'objet qui sera impacté. Cela n'est pas
-toujours, par exemple lors de la creation l'identifiant n'existe pas forcement
+toujours le cas; par exemple lors de la creation, l'identifiant n'existe pas forcément
et donc ne peut-etre donné.
Propagation
~~~~~~~~~~~
-Les TopiaVetoableEntityEvent sont aussi leve pour tous les contexts pere
-du context qui a produit l'event et ceci juste apres avoir prevenu les
+Les TopiaVetoableEntityEvent sont aussi levés pour tous les contexts pères
+du context qui a produit l'event et ceci juste apres avoir prévenu les
listeners du context courant.
TopiaEntityEvent
----------------
-Les TopiaEntityEvent sont appelé après l'action pour prévenir du changement.
+Les TopiaEntityEvent sont appelés après l'action pour prévenir du changement.
-Les TopiaEntityEvent contiennent l'entity au quel se rapporte l'event
+Les TopiaEntityEvent contiennent l'entity à laquelle se rapporte l'event
Propagation
~~~~~~~~~~~
Les TopiaEntityEvent sont propagé au context pere lors du commit du context.
-Si un rollback est fait alors ce sont les listeners du context eux meme qui
-sont prevenu du changement.
+Si un rollback est fait, alors ce sont les listeners du context eux-même qui
+sont prévenus du changement.
Implantation
============
-Les DAO sont responsable de l'appel des methodes fire sur le context qui les
-a créer lors de l'appel sur ceux-ci des methodes create, update, delete, find
+Les DAO sont responsables de l'appel des méthodes fire sur le context qui les
+a créés lors de l'appel sur ceux-ci des methodes create, update, delete, find
(pour le chargement).
Le cas Hibernate
----------------
-Dans le DAO hibernate le context est listener des différents evenements levés
-par la session. Mais ces evenements ne sont levé que lors du commit. Dans Topia
-on souhaite avoir directement un evenement lors d'un create, update ou delete
-sur le DAO. Le DAO hibernate leve donc des evenements lorsque l'on appelle
-ces methodes.
+Dans le DAO hibernate le context est listener des différents évènements levés
+par la session. Mais ces évènements ne sont levés que lors du commit. Dans Topia
+on souhaite avoir directement un évènement lors d'un create, update ou delete
+sur le DAO. Le DAO hibernate lève donc des évènements lorsque l'on appelle
+ces méthodes.
-On a aussi des evenements lors du commit, il est donc possible qu'on est le
-par exemple le meme evenement Update deux fois envoyé au listener si on fait
+On a aussi des évènements lors du commit. Il est donc possible qu'on aie,
+par exemple, le même évènement Update envoyé deux fois au listener si on fait
un update sur le DAO suivi du commit sur le context.
-On conserve tout de meme le mecanisme d'evenement leve au moment du commit par
-hibernate car il est beaucoup plus puissant, il permet d'etre prevenu aussi de
-modification apporté au constituant d'une entite et non pas seulement des
-evenement portant sur l'entite elle meme comme dans le mecanisme implante dans
-les DAO.
+On conserve tout de meme le mécanisme d'évènement levé au moment du commit par
+hibernate car il est beaucoup plus puissant. Il permet aussi d'être prévenu de
+modifications apportées aux constituants d'une entité et non pas seulement des
+évènements portants sur l'entité elle-même comme c'est le cas dans le mecanisme
+implanté dans les DAO.
Modified: topia/trunk/topia-persistence/src/site/fr/rst/howto.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/howto.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/howto.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -2,7 +2,7 @@
======
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
+est constitué de 4 parties, la modélisation, la génération, la configuration et
l'utilisation.
Modélisation
@@ -12,12 +12,12 @@
(http://argouml.tigris.org) soit avec Poséidon (http://www.gentleware.com)
Le stérotype «entity» sur les classes permet de préciser que la classe est
-persistée par Topia. D'autre stérotypes (extern, service, ...) sont disponiples
+persistée par Topia. D'autre stérotypes (extern, service, ...) sont disponibles
mais ne sont pas présentés.
-Le fichier de modélisation peut être compléter par un fichier de configuration
+Le fichier de modélisation peut être complété par un fichier de configuration
nommé <nom fichier modélisation>.properties. Il contient des informations
-techniques propres au librairie utilisé par Topia.
+techniques propres aux librairies utilisé par Topia.
Exemple :
@@ -97,7 +97,7 @@
<scope>compile</scope>
</dependency>
-Pour une classe modélisé, nous retrouvons 6 fichiers :
+Pour une classe modélisée, nous retrouvons 6 fichiers :
* Une interface
* Une classe abstraite
* Une implantation
@@ -123,7 +123,7 @@
# [true | false]
hibernate.show_sql=false
-# Permet de préciser les classes à persister
+# Permet de préciser les classes a persister
topia.persistence.classes=org.codelutin.Person, org.codelutin.Pet
# Informations de connection :
@@ -149,7 +149,7 @@
Implantation des méthodes
~~~~~~~~~~~~~~~~~~~~~~~~~
-Si des méthodes ont été définis dans le modèle de données il faut créer
+Si des méthodes ont été définies 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.
@@ -199,7 +199,7 @@
>>> Person person = personDAO.findByTopiaId(id);
-Les méthodes find permettent de récupérer une ou plusieurs selon différents
+Les méthodes find permettent de récupérer une ou plusieures entités selon différents
critères.
>>> person.setName("tutu");
Modified: topia/trunk/topia-persistence/src/site/fr/rst/project.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/project.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/project.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -1,5 +1,5 @@
-List de projet similaire ou se rapprochant
-==========================================
+Liste de projets similaires ou se rapprochant
+=============================================
subPersistence
--------------
@@ -9,4 +9,4 @@
:url: http://subpersistence.sourceforge.net/
Librairie d'abstraction de libraire de mapping O/R
-Supporte Hibernate pour l'instant semble vouloir supporter aussi Castor
+Supporte Hibernate pour l'instant. Semble vouloir supporter aussi Castor.
Modified: topia/trunk/topia-persistence/src/site/fr/rst/security.rst
===================================================================
--- topia/trunk/topia-persistence/src/site/fr/rst/security.rst 2009-02-12 14:00:23 UTC (rev 1368)
+++ topia/trunk/topia-persistence/src/site/fr/rst/security.rst 2009-02-12 15:00:55 UTC (rev 1369)
@@ -1,24 +1,24 @@
-Implantation de la securite
+Implantation de la sécurité
===========================
-La securite est une simple objet java qui herite de TopiaHelper
+La sécurité est un simple objet java qui hérite de TopiaHelper
-Il se met alors listener sur tous les events vetoables et leve des exceptions
-si la personne qui essai de charger/creer/modifier/supprimer l'objet n'en a pas
+Il se met alors listener sur tous les events vetoables et lève des exceptions
+si la personne qui essaie de charger/créer/modifier/supprimer l'objet n'en a pas
le droit.
-Le service de securite vient avec son fichier de configuration. Dans ce fichier
-il y a les parametres utile au service pour retrouver les informations sur les
+Le service de sécurité vient avec son fichier de configuration. Dans ce fichier
+il y a les paramètres utiles au service pour retrouver les informations sur les
droits.
-TopiaHelper est en fait une interface qui contient la methode
+TopiaHelper est en fait une interface qui contient la méthode
init(TopiaContext, Properties)
package
-------
-:org.codelutin.topia.security: pour tout ce qui touche a la securite
+:org.codelutin.topia.security: pour tout ce qui touche a la sécurité
(TopiaAuthenticationHelper, TopiaAuthorisationHelper, LoginModule, Filter, ...)
-:org.codelutin.topia.security.entities: pour les entities utiles a la definition
- de la securite (user, group, permission)
+:org.codelutin.topia.security.entities: pour les entities utiles à la définition
+ de la sécurité (user, group, permission)
1
0
r1368 - topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator
by chatellier@users.labs.libre-entreprise.org 12 Feb '09
by chatellier@users.labs.libre-entreprise.org 12 Feb '09
12 Feb '09
Author: chatellier
Date: 2009-02-12 14:00:23 +0000 (Thu, 12 Feb 2009)
New Revision: 1368
Modified:
topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaJavaValidator.java
Log:
Add a check on duplicated attribute name
Modified: topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaJavaValidator.java
===================================================================
--- topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaJavaValidator.java 2009-02-12 11:24:15 UTC (rev 1367)
+++ topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaJavaValidator.java 2009-02-12 14:00:23 UTC (rev 1368)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2008 Code Lutin
+ * Copyright (C) 2008, 2009 Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -18,6 +18,9 @@
package org.codelutin.topia.generator;
+import java.util.ArrayList;
+import java.util.List;
+
import org.codelutin.generator.models.object.ObjectModel;
import org.codelutin.generator.models.object.ObjectModelAttribute;
import org.codelutin.generator.models.object.ObjectModelClass;
@@ -52,13 +55,13 @@
@Override
protected boolean validateAttribute(ObjectModelAttribute attr) {
- boolean isValid = true;
+ boolean isValid = super.validateAttribute(attr);
// type null ou vide
if (attr.getType() == null || attr.getType().isEmpty()) {
isValid = false;
- addError(attr, "Invalid name \"" + attr.getType() + "\"");
+ addError(attr, "Invalid type \"" + attr.getType() + "\"");
}
// name = java reserved keywords
@@ -81,9 +84,23 @@
@Override
protected boolean validateClass(ObjectModelClass clazz) {
- // TODO test if attribute name is duplicated
+ boolean isValid = super.validateClass(clazz);
- return super.validateClass(clazz);
+ // test attribute names duplication
+ List<String> attributesName = new ArrayList<String>();
+ for(ObjectModelAttribute attr : clazz.getAttributes()) {
+ if(attributesName.contains(attr.getName())) {
+ addError(attr, "Attribute name " + attr.getName()
+ + " already exists");
+
+ isValid = false;
+ }
+ else {
+ attributesName.add(attr.getName());
+ }
+ }
+
+ return isValid;
}
/*
@@ -92,8 +109,6 @@
@Override
protected boolean validateModel(ObjectModel model) {
- // TODO test if default package name is not good
-
return super.validateModel(model);
}
1
0
r1367 - topia/trunk/topia-persistence/src/test/java/org/codelutin/topia/generator
by tchemit@users.labs.libre-entreprise.org 12 Feb '09
by tchemit@users.labs.libre-entreprise.org 12 Feb '09
12 Feb '09
Author: tchemit
Date: 2009-02-12 11:24:15 +0000 (Thu, 12 Feb 2009)
New Revision: 1367
Modified:
topia/trunk/topia-persistence/src/test/java/org/codelutin/topia/generator/TopiaTestCase.java
Log:
destroy db after test
Modified: topia/trunk/topia-persistence/src/test/java/org/codelutin/topia/generator/TopiaTestCase.java
===================================================================
--- topia/trunk/topia-persistence/src/test/java/org/codelutin/topia/generator/TopiaTestCase.java 2009-02-12 11:17:11 UTC (rev 1366)
+++ topia/trunk/topia-persistence/src/test/java/org/codelutin/topia/generator/TopiaTestCase.java 2009-02-12 11:24:15 UTC (rev 1367)
@@ -31,6 +31,7 @@
import org.codelutin.topiatest.Department;
import org.codelutin.topiatest.DepartmentDAO;
import org.hibernate.cfg.Environment;
+import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
@@ -54,7 +55,7 @@
protected static Properties config = null;
/** TopiaContext */
- protected TopiaContext context = null;
+ protected static TopiaContext context = null;
/**
* Init les proprietes de connection a la base
@@ -69,9 +70,15 @@
config.setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread");
config.setProperty(Environment.DIALECT,"org.hibernate.dialect.H2Dialect");
config.setProperty(Environment.DRIVER,"org.h2.Driver");
- config.setProperty(Environment.URL, "jdbc:h2:file:/tmp/" + TopiaTestCase.class + "/db/data_" + System.currentTimeMillis());
+ config.setProperty(Environment.URL, "jdbc:h2:file:/tmp/" + TopiaTestCase.class.getSimpleName() + "/db/data_" + System.currentTimeMillis());
}
+ @AfterClass
+ public static void after() throws TopiaException {
+ // destroy database
+ context.clear(true);
+ }
+
/**
* Create base with schema created.
*/
1
0
r1366 - topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator
by tchemit@users.labs.libre-entreprise.org 12 Feb '09
by tchemit@users.labs.libre-entreprise.org 12 Feb '09
12 Feb '09
Author: tchemit
Date: 2009-02-12 11:17:11 +0000 (Thu, 12 Feb 2009)
New Revision: 1366
Modified:
topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaMetaGenerator.java
Log:
pas de generation, si pas d'entite a generer
Modified: topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaMetaGenerator.java
===================================================================
--- topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaMetaGenerator.java 2009-02-12 09:41:17 UTC (rev 1365)
+++ topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/TopiaMetaGenerator.java 2009-02-12 11:17:11 UTC (rev 1366)
@@ -43,6 +43,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.codelutin.generator.models.object.ObjectModelClass;
/**
* Cette classe est un Generateur qui constitue le point d'entree dans ToPIA.
@@ -122,6 +123,15 @@
//On n'empeche pas la génération si le modèle n'est pas valide
validateModel(model);
+ // test before all if there is some entities to generate
+ List<ObjectModelClass> classes = TopiaGeneratorUtil.getEntityClasses(model,true);
+
+ if (classes.isEmpty()) {
+ // no entity to generate, can stop safely
+ log.warn("no entity to generate, " + getClass().getName() + " is skipped");
+ return;
+ }
+
generatePersistence(model, destDir);
}
@@ -131,7 +141,7 @@
ObjectModelGenerator generator;
if (excludeTemplates.contains(generatorClass.getName())) {
// exclude generator
- log.info("exclude generateur " + generatorClass);
+ log.info("exclude generator " + generatorClass);
continue;
}
try {
1
0
r1365 - in topia/trunk/topia-ui/src/test/java/org/codelutin: test/web topiauitest/entities
by chatellier@users.labs.libre-entreprise.org 12 Feb '09
by chatellier@users.labs.libre-entreprise.org 12 Feb '09
12 Feb '09
Author: chatellier
Date: 2009-02-12 09:41:17 +0000 (Thu, 12 Feb 2009)
New Revision: 1365
Removed:
topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/
Modified:
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Contact.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Society.java
Log:
Fix javadoc
Modified: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Contact.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Contact.java 2009-02-12 09:29:46 UTC (rev 1364)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Contact.java 2009-02-12 09:41:17 UTC (rev 1365)
@@ -50,8 +50,9 @@
}
/**
- * @param nom
- * @param prenom
+ * @param id
+ * @param name
+ * @param firstName
* @param age
* @param fonction
*/
@@ -121,7 +122,7 @@
}
/**
- * @param prenom the prenom to set
+ * @param firstName the prenom to set
*/
public void setFirstName(String firstName) {
this.firstName = firstName;
Modified: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Society.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Society.java 2009-02-12 09:29:46 UTC (rev 1364)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Society.java 2009-02-12 09:41:17 UTC (rev 1365)
@@ -33,7 +33,7 @@
private String name;
- private String adress;
+ private String address;
/**
*
@@ -45,27 +45,27 @@
/**
* @param id
* @param name
- * @param adresse
+ * @param address
*/
- public Society(String id, String name, String adress) {
+ public Society(String id, String name, String address) {
this();
this.id = id;
this.name = name;
- this.adress = adress;
+ this.address = address;
}
/**
- * @return the adresse
+ * @return the address
*/
- public String getAdress() {
- return adress;
+ public String getAddress() {
+ return address;
}
/**
- * @param adresse the adresse to set
+ * @param address the adresse to set
*/
- public void setAdress(String adress) {
- this.adress = adress;
+ public void setAddress(String address) {
+ this.address = address;
}
/**
1
0
r1364 - in topia/trunk/topia-ui: . src/test/java/org/codelutin src/test/java/org/codelutin/test/web src/test/java/org/codelutin/test/web/pages src/test/java/org/codelutin/topiauitest src/test/java/org/codelutin/topiauitest/entities src/test/java/org/codelutin/topiauitest/utils src/test/java/org/codelutin/topiauitest/web src/test/java/org/codelutin/topiauitest/web/base src/test/java/org/codelutin/topiauitest/web/components src/test/java/org/codelutin/topiauitest/web/pages src/test/java/org/co
by chatellier@users.labs.libre-entreprise.org 12 Feb '09
by chatellier@users.labs.libre-entreprise.org 12 Feb '09
12 Feb '09
Author: chatellier
Date: 2009-02-12 09:29:46 +0000 (Thu, 12 Feb 2009)
New Revision: 1364
Added:
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Contact.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/ContactDAO.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Society.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/SocietyDAO.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/utils/
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/utils/HibernateUtils.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/base/
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/components/
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/LoginForm.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/
Removed:
topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/base/
topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/components/
topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/LoginForm.java
topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/contactManagement/
Modified:
topia/trunk/topia-ui/pom.xml
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/base/BasePage.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/base/SessionBean.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/components/ContextLink.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/components/Layout.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/ContactForm.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/ContactList.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/ContactView.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/SocietyForm.java
topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/SocietyView.java
topia/trunk/topia-ui/src/test/xmi/contact.zargo
Log:
Suppression de topia-persistence en dependance test scope.
Modified: topia/trunk/topia-ui/pom.xml
===================================================================
--- topia/trunk/topia-ui/pom.xml 2009-02-12 09:09:04 UTC (rev 1363)
+++ topia/trunk/topia-ui/pom.xml 2009-02-12 09:29:46 UTC (rev 1364)
@@ -20,13 +20,6 @@
<dependencies>
<dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>topia-persistence</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
<groupId>org.codelutin</groupId>
<artifactId>lutinutil</artifactId>
</dependency>
@@ -41,6 +34,23 @@
<artifactId>tapestry-core</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-ehcache</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<!-- ************************************************************* -->
@@ -69,37 +79,15 @@
<groupId>org.codelutin</groupId>
<artifactId>maven-generator-plugin</artifactId>
<version>${generator.version}</version>
- <configuration>
- <testPhase>true</testPhase>
- <fullPackagePath>org.codelutin.test</fullPackagePath>
- <extractedPackages>org.codelutin.test</extractedPackages>
- </configuration>
<executions>
- <execution>
- <id>generate-objectmodel</id>
- <phase>generate-test-sources</phase>
- <configuration>
- <!--testPhase>true</testPhase>
- <fullPackagePath>org.codelutin.test</fullPackagePath>
- <extractedPackages>org.codelutin.test</extractedPackages-->
- <defaultPackage>org.codelutin.test</defaultPackage>
- <includes>**/*.objectmodel</includes>
- <templates>org.codelutin.topia.generator.TopiaMetaGenerator</templates>
- </configuration>
- <goals>
- <goal>zargo2xmi</goal>
- <goal>xmi2objectmodel</goal>
- <goal>generate</goal>
- </goals>
- </execution>
<execution>
<id>generate-statemodel</id>
<phase>generate-test-sources</phase>
<configuration>
- <!--testPhase>true</testPhase>
- <fullPackagePath>org.codelutin.test</fullPackagePath>
- <extractedPackages>org.codelutin.test</extractedPackages-->
+ <testPhase>true</testPhase>
+ <fullPackagePath>org.codelutin.topiauitest</fullPackagePath>
+ <extractedPackages>org.codelutin.topiauitest</extractedPackages>
<includes>**/*.statemodel</includes>
<templates>org.codelutin.topia.generator.TapestryWebGenerator</templates>
<extraClassPathDirectory>target/classes</extraClassPathDirectory>
@@ -111,16 +99,7 @@
</goals>
</execution>
</executions>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>topia-persistence</artifactId>
- <version>${project.version}</version>
- <!--scope>compile</scope-->
- <!--scope>runtime</scope-->
- </dependency>
- </dependencies>
+
</plugin>
</plugins>
Deleted: topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/LoginForm.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/LoginForm.java 2009-02-12 09:09:04 UTC (rev 1363)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/LoginForm.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -1,88 +0,0 @@
-/* *##%
- * Copyright (C) 2006 Code Lutin
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *##%*/
-
-package org.codelutin.test.web.pages;
-
-import org.apache.tapestry5.annotations.Component;
-import org.apache.tapestry5.annotations.Persist;
-import org.codelutin.test.web.components.Layout;
-
-/**
- * ProjectForm.java
- *
- * @author chatellier
- * @version $Revision: 1.1 $
- *
- * Last update : $Date: 2007/05/14 07:56:43 $
- * By : $Author: E023931M $
- *
- * Based on authentication tutorial :
- * http://new2java.blogspot.com/2007/05/tsa503pageslogin-step-01.html
- */
-public class LoginForm {
-
- /** layout */
- @SuppressWarnings("unused")
- @Component
- private Layout layout;
-
- @Persist
- private String user;
- private String password;
-
- /**
- * Form validation
- */
- Object onSuccess() {
-
- /*if(user.equals("demo") && password.equals("demo")) {
- String sessionBeanAttr = "aso:" + SessionBean.class.getName();
- ((SessionBean)_request.getSession(true).getAttribute(sessionBeanAttr)).setLogged(true);
- }*/
-
- return null;
- }
-
- /**
- * @return the password
- */
- public String getPassword() {
- return password;
- }
-
- /**
- * @param password the password to set
- */
- public void setPassword(String password) {
- this.password = password;
- }
-
- /**
- * @return the user
- */
- public String getUser() {
- return user;
- }
-
- /**
- * @param user the user to set
- */
- public void setUser(String user) {
- this.user = user;
- }
-}
Added: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Contact.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Contact.java (rev 0)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Contact.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -0,0 +1,150 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package org.codelutin.topiauitest.entities;
+
+/**
+ * Contact.java
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class Contact {
+
+ private String id;
+
+ private String name;
+
+ private String firstName;
+
+ private int age;
+
+ private String fonction;
+
+ private Society society;
+
+
+ /**
+ *
+ */
+ public Contact() {
+ super();
+ }
+
+ /**
+ * @param nom
+ * @param prenom
+ * @param age
+ * @param fonction
+ */
+ public Contact(String id, String name, String firstName, int age, String fonction) {
+ this();
+ this.id = id;
+ this.name = name;
+ this.firstName = firstName;
+ this.age = age;
+ this.fonction = fonction;
+ }
+
+ /**
+ * @return the age
+ */
+ public int getAge() {
+ return age;
+ }
+
+ /**
+ * @param age the age to set
+ */
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ /**
+ * @return the fonction
+ */
+ public String getFonction() {
+ return fonction;
+ }
+
+ /**
+ * @param fonction the fonction to set
+ */
+ public void setFonction(String fonction) {
+ this.fonction = fonction;
+ }
+
+ /**
+ * @return the id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the nom
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @return the prenom
+ */
+ public String getFirstName() {
+ return firstName;
+ }
+
+ /**
+ * @param prenom the prenom to set
+ */
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ /**
+ * @return the society
+ */
+ public Society getSociety() {
+ return society;
+ }
+
+ /**
+ * @param society the society to set
+ */
+ public void setSociety(Society society) {
+ this.society = society;
+ }
+
+ /**
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+}
Added: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/ContactDAO.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/ContactDAO.java (rev 0)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/ContactDAO.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -0,0 +1,92 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+package org.codelutin.topiauitest.entities;
+
+import java.util.List;
+
+import org.codelutin.topiauitest.utils.HibernateUtils;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.criterion.Restrictions;
+
+
+/**
+ * SocietyDAO.java
+ *
+ * @author chatellier
+ * @version $Revision: 1.1 $
+ *
+ * Last update : $Date: 2007/05/14 07:56:43$
+ * By : $Author: chatellier $
+ */
+public class ContactDAO {
+
+ /**
+ * Session factory
+ */
+ private SessionFactory sf;
+
+ private Session session;
+
+ public ContactDAO() {
+ sf = HibernateUtils.getSessionFactory();
+ }
+
+ public void beginTransaction() {
+ session = sf.getCurrentSession();
+ session.beginTransaction();
+ }
+
+ public void commit() {
+ session.getTransaction().commit();
+ }
+
+ @SuppressWarnings("unchecked")
+ public Contact getContactById(String ID) {
+
+ List<Contact> lm = (List<Contact>) session
+ .createCriteria(Contact.class).add(Restrictions.eq("id", ID)).list();
+ Contact c = null;
+ if (lm.size() == 1) {
+ c = lm.get(0);
+ }
+
+ return c;
+ }
+
+ @SuppressWarnings("unchecked")
+ public List<Contact> getContactList() {
+
+ List<Contact> lc = (List<Contact>) session
+ .createCriteria(Contact.class).list();
+
+ return lc;
+ }
+
+ public void delete(Contact c) {
+ session.delete(c);
+ }
+
+ public void create(Contact c) {
+ session.save(c);
+ }
+
+ public void update(Contact c) {
+ session.saveOrUpdate(c);
+ }
+}
Added: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Society.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Society.java (rev 0)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/Society.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -0,0 +1,98 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package org.codelutin.topiauitest.entities;
+
+/**
+ * Society.java
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class Society {
+
+ private String id;
+
+ private String name;
+
+ private String adress;
+
+ /**
+ *
+ */
+ public Society() {
+ super();
+ }
+
+ /**
+ * @param id
+ * @param name
+ * @param adresse
+ */
+ public Society(String id, String name, String adress) {
+ this();
+ this.id = id;
+ this.name = name;
+ this.adress = adress;
+ }
+
+ /**
+ * @return the adresse
+ */
+ public String getAdress() {
+ return adress;
+ }
+
+ /**
+ * @param adresse the adresse to set
+ */
+ public void setAdress(String adress) {
+ this.adress = adress;
+ }
+
+ /**
+ * @return the id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+}
Added: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/SocietyDAO.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/SocietyDAO.java (rev 0)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/entities/SocietyDAO.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -0,0 +1,93 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+package org.codelutin.topiauitest.entities;
+
+import java.util.List;
+
+import org.codelutin.topiauitest.utils.HibernateUtils;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.criterion.Restrictions;
+
+
+/**
+ * SocietyDAO.java
+ *
+ * @author chatellier
+ * @version $Revision: 1.1 $
+ *
+ * Last update : $Date: 2007/05/14 07:56:43$
+ * By : $Author: chatellier $
+ */
+public class SocietyDAO {
+
+ /**
+ * Session factory
+ */
+ private SessionFactory sf;
+
+ private Session session;
+
+ public SocietyDAO() {
+ sf = HibernateUtils.getSessionFactory();
+ }
+
+ public void beginTransaction() {
+ session = sf.getCurrentSession();
+ session.beginTransaction();
+ }
+
+ public void commit() {
+ session.getTransaction().commit();
+ }
+
+ @SuppressWarnings("unchecked")
+ public Society getSocietyById(String ID) {
+
+ List<Society> lm = (List<Society>) session
+ .createCriteria(Society.class).add(Restrictions.eq("id", ID)).list();
+ Society s = null;
+ if (lm.size() == 1) {
+ s = lm.get(0);
+ }
+
+ return s;
+ }
+
+ public void delete(Society s) {
+ session.delete(s);
+ }
+
+ public void create(Society s) {
+ session.save(s);
+ }
+
+ public void update(Society s) {
+ session.saveOrUpdate(s);
+ }
+
+ /**
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ public List<Society> getSocietiesList() {
+ List<Society> lc = (List<Society>) session
+ .createCriteria(Society.class).list();
+ return lc;
+ }
+}
Added: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/utils/HibernateUtils.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/utils/HibernateUtils.java (rev 0)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/utils/HibernateUtils.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -0,0 +1,52 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package org.codelutin.topiauitest.utils;
+
+import org.hibernate.SessionFactory;
+import org.hibernate.cfg.Configuration;
+
+public class HibernateUtils {
+
+ private static final SessionFactory sessionFactory;
+
+ static {
+ try {
+ Configuration cfg = new Configuration();
+
+ cfg.configure("hibernate.cfg.xml");
+
+ // creer le schema en base
+ // ca creer la base
+ //SchemaExport schemaExport = new SchemaExport(cfg);
+ //schemaExport.create(false, true);
+
+ // Create the SessionFactory from hibernate.cfg.xml
+ sessionFactory = cfg.buildSessionFactory();
+
+ } catch (Throwable ex) {
+ // Make sure you log the exception, as it might be swallowed
+ System.err.println("Initial SessionFactory creation failed." + ex);
+ throw new ExceptionInInitializerError(ex);
+ }
+ }
+
+ public static SessionFactory getSessionFactory() {
+ return sessionFactory;
+ }
+}
Copied: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/base (from rev 1362, topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/base)
Property changes on: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/base
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/base/BasePage.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/base/BasePage.java 2009-02-12 00:15:30 UTC (rev 1362)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/base/BasePage.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2007 Code Lutin
+ * Copyright (C) 2009 Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-package org.codelutin.test.web.base;
+package org.codelutin.topiauitest.web.base;
/**
Modified: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/base/SessionBean.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/base/SessionBean.java 2009-02-12 00:15:30 UTC (rev 1362)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/base/SessionBean.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 Code Lutin
+ * Copyright (C) 2009 Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-package org.codelutin.test.web.base;
+package org.codelutin.topiauitest.web.base;
import java.io.Serializable;
Copied: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/components (from rev 1362, topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/components)
Property changes on: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/components
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/components/ContextLink.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/components/ContextLink.java 2009-02-12 00:15:30 UTC (rev 1362)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/components/ContextLink.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 Code Lutin
+ * Copyright (C) 2009 Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-package org.codelutin.test.web.components;
+package org.codelutin.topiauitest.web.components;
import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.annotations.Parameter;
Modified: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/components/Layout.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/components/Layout.java 2009-02-12 00:15:30 UTC (rev 1362)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/components/Layout.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 Code Lutin
+ * Copyright (C) 2009 Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-package org.codelutin.test.web.components;
+package org.codelutin.topiauitest.web.components;
import java.util.Locale;
Copied: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/LoginForm.java (from rev 1362, topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/LoginForm.java)
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/LoginForm.java (rev 0)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/LoginForm.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -0,0 +1,88 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package org.codelutin.topiauitest.web.pages;
+
+import org.apache.tapestry5.annotations.Component;
+import org.apache.tapestry5.annotations.Persist;
+import org.codelutin.topiauitest.web.components.Layout;
+
+/**
+ * ProjectForm.java
+ *
+ * @author chatellier
+ * @version $Revision: 1.1 $
+ *
+ * Last update : $Date: 2007/05/14 07:56:43 $
+ * By : $Author: E023931M $
+ *
+ * Based on authentication tutorial :
+ * http://new2java.blogspot.com/2007/05/tsa503pageslogin-step-01.html
+ */
+public class LoginForm {
+
+ /** layout */
+ @SuppressWarnings("unused")
+ @Component
+ private Layout layout;
+
+ @Persist
+ private String user;
+ private String password;
+
+ /**
+ * Form validation
+ */
+ Object onSuccess() {
+
+ /*if(user.equals("demo") && password.equals("demo")) {
+ String sessionBeanAttr = "aso:" + SessionBean.class.getName();
+ ((SessionBean)_request.getSession(true).getAttribute(sessionBeanAttr)).setLogged(true);
+ }*/
+
+ return null;
+ }
+
+ /**
+ * @return the password
+ */
+ public String getPassword() {
+ return password;
+ }
+
+ /**
+ * @param password the password to set
+ */
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ /**
+ * @return the user
+ */
+ public String getUser() {
+ return user;
+ }
+
+ /**
+ * @param user the user to set
+ */
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
Property changes on: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/LoginForm.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement (from rev 1362, topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/contactManagement)
Property changes on: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/ContactForm.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/contactManagement/ContactForm.java 2009-02-12 00:15:30 UTC (rev 1362)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/ContactForm.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2007 Code Lutin
+ * Copyright (C) 2009 Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -16,12 +16,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-package org.codelutin.test.web.pages.contactManagement;
+package org.codelutin.topiauitest.web.pages.contactManagement;
import java.util.ArrayList;
import java.util.List;
-import org.apache.tapestry5.Link;
import org.apache.tapestry5.OptionGroupModel;
import org.apache.tapestry5.OptionModel;
import org.apache.tapestry5.SelectModel;
@@ -29,16 +28,10 @@
import org.apache.tapestry5.ValueEncoder;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.internal.OptionModelImpl;
-import org.codelutin.test.TapestryTestDAOHelper;
-import org.codelutin.test.entities.Contact;
-import org.codelutin.test.entities.ContactDAO;
-import org.codelutin.test.entities.ContactImpl;
-import org.codelutin.test.entities.Society;
-import org.codelutin.test.entities.SocietyDAO;
-import org.codelutin.topia.TopiaContext;
-import org.codelutin.topia.TopiaContextFactory;
-import org.codelutin.topia.TopiaException;
-import org.codelutin.topia.TopiaNotFoundException;
+import org.codelutin.topiauitest.entities.Contact;
+import org.codelutin.topiauitest.entities.ContactDAO;
+import org.codelutin.topiauitest.entities.Society;
+import org.codelutin.topiauitest.entities.SocietyDAO;
/**
@@ -66,7 +59,7 @@
public ContactForm() {
societyDao = new SocietyDAO();
contactDao = new ContactDAO();
- contact = new ContactImpl();
+ contact = new Contact();
use_for_new = true;
}
@@ -107,21 +100,16 @@
public Object onSubmit() {
// store contact
// chech if update !!!
-
- try {
- TopiaContext context = TopiaContextFactory.getContext();
- // FIXME get proper DAO
- contact.setSociety(society);
- if(use_for_new) {
- contactDao.create(contact);
- }
- else {
- contactDao.update(contact);
- }
- context.commitTransaction();
- } catch (TopiaException e) {
- // TODO log
- }
+
+ contactDao.beginTransaction();
+ contact.setSociety(society);
+ if(use_for_new) {
+ contactDao.create(contact);
+ }
+ else {
+ contactDao.update(contact);
+ }
+ contactDao.commit();
return super.onActionFromContactStore();
}
@@ -131,7 +119,7 @@
*/
public void setEmptyContact() {
- contact = new ContactImpl();
+ contact = new Contact();
use_for_new = true;
}
@@ -164,18 +152,9 @@
* @return
*/
public List<Society> getSocieties() {
-
- List<Society> lp = null;
-
- try {
- TopiaContext context = TopiaContextFactory.getContext();
- context.beginTransaction();
- lp = societyDao.findAll();
- context.commitTransaction();
- } catch (TopiaException e) {
- // TODO log
- }
-
+ societyDao.beginTransaction();
+ List<Society> lp = societyDao.getSocietiesList();
+ societyDao.commit();
return lp;
}
Modified: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/ContactList.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/contactManagement/ContactList.java 2009-02-12 00:15:30 UTC (rev 1362)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/ContactList.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2007 Code Lutin
+ * Copyright (C) 2009 Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -16,15 +16,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-package org.codelutin.test.web.pages.contactManagement;
+package org.codelutin.topiauitest.web.pages.contactManagement;
import java.util.List;
-import org.codelutin.test.entities.Contact;
-import org.codelutin.test.entities.ContactDAO;
-import org.codelutin.topia.TopiaContext;
-import org.codelutin.topia.TopiaContextFactory;
-import org.codelutin.topia.TopiaException;
+import org.codelutin.topiauitest.entities.Contact;
+import org.codelutin.topiauitest.entities.ContactDAO;
/**
* ContactList.java
@@ -71,16 +68,9 @@
* @return
*/
public List<Contact> getContacts() {
- List<Contact> lc = null;
- try {
- TopiaContext context = TopiaContextFactory.getContext();
- context.beginTransaction();
- lc = dao.findAll();
- context.commitTransaction();
- } catch (TopiaException e) {
- // TODO log
- }
-
+ dao.beginTransaction();
+ List<Contact> lc = dao.getContactList();
+ dao.commit();
return lc;
}
@@ -97,17 +87,10 @@
public Object onActionFromViewer(String id) {
- Contact c = null;
-
- try {
- TopiaContext context = TopiaContextFactory.getContext();
- context.beginTransaction();
- c = dao.findByTopiaId(id);
- c.getSociety().getName(); // lazy exception
- context.commitTransaction();
- } catch (TopiaException e) {
- // TODO log
- }
+ dao.beginTransaction();
+ Contact c = dao.getContactById(id);
+ c.getSociety().getName(); // lazy exception
+ dao.commit();
getContactView().setContact(c);
Modified: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/ContactView.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/contactManagement/ContactView.java 2009-02-12 00:15:30 UTC (rev 1362)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/ContactView.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2007 Code Lutin
+ * Copyright (C) 2009 Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -16,14 +16,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-package org.codelutin.test.web.pages.contactManagement;
+package org.codelutin.topiauitest.web.pages.contactManagement;
import org.apache.tapestry5.annotations.Persist;
-import org.codelutin.test.entities.Contact;
-import org.codelutin.test.entities.ContactDAO;
-import org.codelutin.topia.TopiaContext;
-import org.codelutin.topia.TopiaContextFactory;
-import org.codelutin.topia.TopiaException;
+import org.codelutin.topiauitest.entities.Contact;
+import org.codelutin.topiauitest.entities.ContactDAO;
/**
* ContactView.java
@@ -84,14 +81,9 @@
@Override
public Object onActionFromDelete() {
- try {
- TopiaContext context = TopiaContextFactory.getContext();
- context.beginTransaction();
- contactDAO.delete(contact);
- context.commitTransaction();
- } catch (TopiaException e) {
- // TODO log
- }
+ contactDAO.beginTransaction();
+ contactDAO.delete(contact);
+ contactDAO.commit();
return super.onActionFromDelete();
}
Modified: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/SocietyForm.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/contactManagement/SocietyForm.java 2009-02-12 00:15:30 UTC (rev 1362)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/SocietyForm.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2007 Code Lutin
+ * Copyright (C) 2009 Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -16,15 +16,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-package org.codelutin.test.web.pages.contactManagement;
+package org.codelutin.topiauitest.web.pages.contactManagement;
import org.apache.tapestry5.annotations.Persist;
-import org.codelutin.test.entities.Society;
-import org.codelutin.test.entities.SocietyDAO;
-import org.codelutin.test.entities.SocietyImpl;
-import org.codelutin.topia.TopiaContext;
-import org.codelutin.topia.TopiaContextFactory;
-import org.codelutin.topia.TopiaException;
+import org.codelutin.topiauitest.entities.Society;
+import org.codelutin.topiauitest.entities.SocietyDAO;
/**
* SocietyForm.java
@@ -47,7 +43,7 @@
public SocietyForm() {
super();
- society = new SocietyImpl();
+ society = new Society();
societyDAO = new SocietyDAO();
}
@@ -70,7 +66,7 @@
*
*/
public void setEmptySociety() {
- society = new SocietyImpl();
+ society = new Society();
use_for_new = true;
}
@@ -85,17 +81,12 @@
public Object onSubmit() {
- try {
- TopiaContext context = TopiaContextFactory.getContext();
- context.beginTransaction();
- if(use_for_new)
- societyDAO.create(society);
- else
- societyDAO.update(society);
- context.commitTransaction();
- } catch (TopiaException e) {
- // TODO log
- }
+ societyDAO.beginTransaction();
+ if(use_for_new)
+ societyDAO.create(society);
+ else
+ societyDAO.update(society);
+ societyDAO.commit();
return super.onActionFromSocietyStore();
}
Modified: topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/SocietyView.java
===================================================================
--- topia/trunk/topia-ui/src/test/java/org/codelutin/test/web/pages/contactManagement/SocietyView.java 2009-02-12 00:15:30 UTC (rev 1362)
+++ topia/trunk/topia-ui/src/test/java/org/codelutin/topiauitest/web/pages/contactManagement/SocietyView.java 2009-02-12 09:29:46 UTC (rev 1364)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2007 Code Lutin
+ * Copyright (C) 2009 Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -16,10 +16,10 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-package org.codelutin.test.web.pages.contactManagement;
+package org.codelutin.topiauitest.web.pages.contactManagement;
import org.apache.tapestry5.annotations.Persist;
-import org.codelutin.test.entities.Society;
+import org.codelutin.topiauitest.entities.Society;
/**
* SocietyList.java
Modified: topia/trunk/topia-ui/src/test/xmi/contact.zargo
===================================================================
(Binary files differ)
1
0
r1363 - topia/trunk/topia-persistence/src/site
by jcouteau@users.labs.libre-entreprise.org 12 Feb '09
by jcouteau@users.labs.libre-entreprise.org 12 Feb '09
12 Feb '09
Author: jcouteau
Date: 2009-02-12 09:09:04 +0000 (Thu, 12 Feb 2009)
New Revision: 1363
Modified:
topia/trunk/topia-persistence/src/site/site.xml
Log:
Add entries in topia-persistence menu for site
Modified: topia/trunk/topia-persistence/src/site/site.xml
===================================================================
--- topia/trunk/topia-persistence/src/site/site.xml 2009-02-12 00:15:30 UTC (rev 1362)
+++ topia/trunk/topia-persistence/src/site/site.xml 2009-02-12 09:09:04 UTC (rev 1363)
@@ -53,6 +53,11 @@
<item name="Isolation" href="Isolation.html"/>
<item name="Schema migration" href="SchemaMigration.html"/>
<item name="Securité" href="security.html"/>
+ <item name="How-to" href="howto.html"/>
+ <item name="Génération des modèles" href="ModelGeneration.html"/>
+ <item name="TopiaContextFactory" href="Devel.html"/>
+ <item name="FAQ" href="FAQ.html"/>
+ <item name="Projets similaires" href="project.html"/>
</menu>
<menu ref="reports"/>
1
0
r1362 - topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator
by tchemit@users.labs.libre-entreprise.org 12 Feb '09
by tchemit@users.labs.libre-entreprise.org 12 Feb '09
12 Feb '09
Author: tchemit
Date: 2009-02-12 00:15:30 +0000 (Thu, 12 Feb 2009)
New Revision: 1362
Modified:
topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/DAOHelperGenerator.java
Log:
reformat + javadoc
Modified: topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/DAOHelperGenerator.java
===================================================================
--- topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/DAOHelperGenerator.java 2009-02-12 00:03:21 UTC (rev 1361)
+++ topia/trunk/topia-persistence/src/main/java/org/codelutin/topia/generator/DAOHelperGenerator.java 2009-02-12 00:15:30 UTC (rev 1362)
@@ -99,7 +99,8 @@
}*/
List<ObjectModelClass> classes = TopiaGeneratorUtil.getEntityClasses(model,true);
/*{ /**
- *)
+ * no instance for this helper
+ *)
protected <%=daoClazzName%>() {
}
}*/
@@ -109,8 +110,8 @@
String clazzName = clazz.getName();
/*{
public static <%=clazzFQN%>DAO get<%=clazzName%>DAO(TopiaContext context) throws TopiaException {
- TopiaContextImplementor ci = (TopiaContextImplementor)context;
- <%=clazzFQN%>DAO result = (<%=clazzFQN%>DAO)ci.getDAO(<%=clazzFQN%>.class);
+ TopiaContextImplementor ci = (TopiaContextImplementor) context;
+ <%=clazzFQN%>DAO result = (<%=clazzFQN%>DAO) ci.getDAO(<%=clazzFQN%>.class);
return result;
}
}*/
@@ -118,7 +119,7 @@
/*{
@SuppressWarnings({"unchecked"})
public static <T extends TopiaEntity, D extends TopiaDAO<? super T>> D getDAO(TopiaContext context, Class<T> klass) throws TopiaException {
- TopiaContextImplementor ci = (TopiaContextImplementor)context;
+ TopiaContextImplementor ci = (TopiaContextImplementor) context;
<%=entityEnumName%> constant = <%=entityEnumName%>.valueOf(klass);
D dao = (D) ci.getDAO(constant.getContractClass());
return dao;
@@ -173,7 +174,7 @@
}
/*
- * Enumeration of all types of entitties dealed by this helper.
+ * Enumeration of all types of entities managed by this helper.
*)
public enum <%=entityEnumName%> {
}*/
@@ -214,7 +215,7 @@
try {
implementationClass = (Class<? extends TopiaEntity>) Class.forName(implementationFQN);
} catch (ClassNotFoundException e) {
- throw new RuntimeException("could not find class "+implementationFQN);
+ throw new RuntimeException("could not find class " + implementationFQN);
}
}
return implementationClass;
@@ -249,8 +250,10 @@
} else {
/*{
/**
- * @eprecated (prefer use {@link #getImplementationClassesAsString()}
- *)
+ * use {@link #getImplementationClassesAsString()}
+ *
+ * @deprecated (will be removed soon).
+ *)
public static final String entitiesList = "" +
}*/
1
0