Author: tchemit
Date: 2010-03-10 13:06:08 +0100 (Wed, 10 Mar 2010)
New Revision: 1826
Log:
- Evolution #352: Utilisation nuiton-utils 1.2 et nuiton-i18n 1.1
- Improve tests + add I18n in them
Modified:
trunk/pom.xml
trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/EntityOperator.java
trunk/topia-service-index/src/test/java/org/nuiton/topia/index/IndexTest.java
trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractReplicationEngineTest.java
trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/ReplicationEngineAllTest.java
trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/ReplicationEngineTest.java
trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java
trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/FakeOperation.java
trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UncreatableOperation.java
trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UnregistredOperation.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-03-08 16:18:25 UTC (rev 1825)
+++ trunk/pom.xml 2010-03-10 12:06:08 UTC (rev 1826)
@@ -189,9 +189,9 @@
<!-- libs version -->
<eugene.version>2.0</eugene.version>
- <lutinutil.version>1.2-SNAPSHOT</lutinutil.version>
+ <lutinutil.version>1.2</lutinutil.version>
<processor.version>1.0.2</processor.version>
- <i18n.version>1.1-SNAPSHOT</i18n.version>
+ <i18n.version>1.1</i18n.version>
<xmlrpc.version>3.1.2</xmlrpc.version>
<hibernate.version>3.3.2.GA</hibernate.version>
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/EntityOperator.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/EntityOperator.java 2010-03-08 16:18:25 UTC (rev 1825)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/EntityOperator.java 2010-03-10 12:06:08 UTC (rev 1826)
@@ -40,6 +40,7 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.persistence.TopiaEntityEnum;
import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.util.ObjectUtil;
/**
* Un objet qui permet d'effecuter des operations de manipulation des donnees
@@ -76,15 +77,15 @@
protected final TopiaEntityEnum contract;
protected List<String> properties;
protected List<String> associationProperties;
- protected transient Method[] getMethods;
- protected transient Method[] setMethods;
- protected transient Method[] childGetMethods;
- protected transient Method[] childAddMethods;
- protected transient Method[] childAddAllMethods;
- protected transient Method[] childRemoveMethods;
- protected transient Method[] childSizeMethods;
- protected transient Method[] childIsEmptyMethods;
- protected transient Method[] childClearMethods;
+ protected Method[] getMethods;
+ protected Method[] setMethods;
+ protected Method[] childGetMethods;
+ protected Method[] childAddMethods;
+ protected Method[] childAddAllMethods;
+ protected Method[] childRemoveMethods;
+ protected Method[] childSizeMethods;
+ protected Method[] childIsEmptyMethods;
+ protected Method[] childClearMethods;
protected EntityOperator(TopiaEntityEnum contract) {
if (contract == null) {
@@ -151,7 +152,7 @@
int index = checkPropertyIndex(name);
Class<?> propertyType = getPropertyType(index);
Method method = setMethods[index];
- Object nullValue = TopiaEntityHelper.getNullValue(propertyType);
+ Object nullValue = ObjectUtil.getNullValue(propertyType);
invoke(method, bean, nullValue);
}
@@ -301,7 +302,7 @@
*/
public Map<String, Object> obtainProperties(B from, String... properties) {
if (from == null) {
- return java.util.Collections.emptyMap();
+ return Collections.emptyMap();
}
Collection<String> names = getProperties(properties);
@@ -361,13 +362,9 @@
@Override
public boolean equals(Object obj) {
- if (obj == null) {
- return false;
- }
- if (!(obj instanceof EntityOperator<?>)) {
- return false;
- }
- return this.contract == ((EntityOperator<?>) obj).contract;
+ return obj != null &&
+ obj instanceof EntityOperator<?> &&
+ contract == ((EntityOperator<?>) obj).contract;
}
@Override
@@ -481,7 +478,8 @@
childSizeMethods = childSize.toArray(new Method[size]);
childIsEmptyMethods = childIsEmpty.toArray(new Method[size]);
childClearMethods = childClearers.toArray(new Method[size]);
- associationProperties = Collections.unmodifiableList(associationProperties);
+ associationProperties = Collections.unmodifiableList(
+ associationProperties);
}
if (log.isDebugEnabled()) {
log.debug("===== end for " + getClazz() + " (" +
@@ -593,7 +591,8 @@
}
BeanInfo beanInfo = Introspector.getBeanInfo(entityClass);
- PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+ PropertyDescriptor[] propertyDescriptors =
+ beanInfo.getPropertyDescriptors();
Method[] methods = entityClass.getMethods();
@@ -617,13 +616,15 @@
// une approximation (nom + nombre de params)
// on pourrait tester que les parametre (ou le type de retour)
// est un TopiaEntity TODO
- Method getMethod = getMethod("get" + cap + "ByTopiaId", 1, methods);
+ Method getMethod = getMethod("get" + cap + "ByTopiaId", 1,
+ methods);
Method addMethod = getMethod("add" + cap, 1, methods);
Method addAllMethod = getMethod("addAll" + cap, 1, methods);
Method removeMethod = getMethod("remove" + cap, 1, methods);
Method sizeMethod = getMethod("size" + cap, 0, methods);
Method clearMethod = getMethod("clear" + cap, 0, methods);
- Method isEmptyMethod = getMethod("is" + cap + "Empty", 0, methods);
+ Method isEmptyMethod = getMethod("is" + cap + "Empty", 0,
+ methods);
if (addMethod != null &&
addAllMethod != null &&
removeMethod != null &&
@@ -649,8 +650,8 @@
Class<?>[] interfaces = entityClass.getInterfaces();
if (interfaces.length > 0) {
for (Class<?> c : interfaces) {
- if (TopiaEntity.class == c ||
- !(TopiaEntity.class.isAssignableFrom(c)) ||
+ if (TopiaEntity.class.equals(c) ||
+ !TopiaEntity.class.isAssignableFrom(c) ||
explored.contains(c)) {
// on ne traite pas
continue;
Modified: trunk/topia-service-index/src/test/java/org/nuiton/topia/index/IndexTest.java
===================================================================
--- trunk/topia-service-index/src/test/java/org/nuiton/topia/index/IndexTest.java 2010-03-08 16:18:25 UTC (rev 1825)
+++ trunk/topia-service-index/src/test/java/org/nuiton/topia/index/IndexTest.java 2010-03-10 12:06:08 UTC (rev 1826)
@@ -19,6 +19,10 @@
package org.nuiton.topia.index;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.BeforeClass;
+import org.nuiton.i18n.I18n;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaContextFactory;
import org.nuiton.topia.framework.TopiaContextImplementor;
@@ -29,6 +33,7 @@
import org.junit.Assert;
import org.junit.Test;
+import java.util.Locale;
import java.util.Properties;
import java.util.SortedSet;
import org.nuiton.topia.test.entities.RaceImpl;
@@ -46,17 +51,25 @@
*/
public class IndexTest extends Assert {
- protected String entitiesList = PersonImpl.class.getName() + "," + PetImpl.class.getName()+","+RaceImpl.class.getName();
+ /** Logger */
+ private static final Log log = LogFactory.getLog(IndexTest.class);
+ protected String entitiesList = PersonImpl.class.getName() + "," +
+ PetImpl.class.getName() + "," +
+ RaceImpl.class.getName();
+
protected Properties getH2Properties() {
Properties config = new Properties();
config.setProperty("hibernate.show_sql", "true");
config.setProperty("hibernate.hbm2ddl.auto", "create");
config.setProperty("topia.persistence.classes", entitiesList);
- 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.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.username", "sa");
config.setProperty("hibernate.connection.password", "");
@@ -69,15 +82,23 @@
protected Properties getIndexProperties() {
Properties result = getProperties();
- result.setProperty("topia.index.engin", "org.nuiton.topia.index.LuceneIndexer");
- result.setProperty("topia.index.lucene.directory", "/tmp/topia-test-index");
- result.setProperty("topia.service.index", "org.nuiton.topia.index.LuceneIndexer");
+ result.setProperty("topia.index.engin",
+ "org.nuiton.topia.index.LuceneIndexer");
+ result.setProperty("topia.index.lucene.directory",
+ "/tmp/topia-test-index");
+ result.setProperty("topia.service.index",
+ "org.nuiton.topia.index.LuceneIndexer");
return result;
}
+ @BeforeClass
+ public static void beforeClass() {
+ I18n.init(Locale.FRANCE);
+ }
+
@Test
public void testIndex() throws Exception {
- System.out.println("Debut du test index");
+ log.info("Debut du test index");
Properties config = getIndexProperties();
@@ -104,9 +125,10 @@
TopiaIndexService ie = context.getService(TopiaIndexService.class);
SortedSet<IndexEntry> results = ie.search("poussin");
- System.out.println("Index result: " + results.size());
+ log.info("Index result: " + results.size());
for (IndexEntry result : results) {
- System.out.println("Index result: " + result.getScore() + " topiaId: " + result.getTopiaId());
+ log.info("Index result: " + result.getScore() + " topiaId: " +
+ result.getTopiaId());
}
// test fail without close
Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractReplicationEngineTest.java
===================================================================
--- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractReplicationEngineTest.java 2010-03-08 16:18:25 UTC (rev 1825)
+++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractReplicationEngineTest.java 2010-03-10 12:06:08 UTC (rev 1826)
@@ -19,10 +19,10 @@
package org.nuiton.topia.replication;
import java.io.File;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
+import java.util.*;
+
+import org.junit.BeforeClass;
+import org.nuiton.i18n.I18n;
import org.nuiton.topia.persistence.util.EntityOperator;
import org.nuiton.topia.replication.model.ReplicationModel;
import org.nuiton.topia.replication.model.ReplicationOperationDef;
@@ -31,13 +31,9 @@
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.topia.persistence.TopiaEntityEnum;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
import org.nuiton.topia.TopiaContext;
import org.junit.Assert;
-import java.util.Set;
import org.apache.commons.logging.Log;
import org.nuiton.topia.framework.TopiaContextImplementor;
import org.nuiton.topia.persistence.TopiaDAO;
@@ -62,7 +58,7 @@
protected TopiaContextImplementor dstCtxt;
protected TopiaReplicationImplementor service;
protected ReplicationModel model;
- static private boolean init = false;
+ static private boolean init ;
static private Long testsTimeStamp;
static private File testsBasedir;
static private final String TEST_BASEDIR = "target%1$ssurefire-tests%1$s%2$td_%2$tm_%2$tY%1$s%2$tH_%2$tM_%2$tS";
@@ -83,6 +79,8 @@
if (!init) {
+ I18n.init(Locale.FRANCE);
+
context = createDb("source");
init = true;
}
@@ -106,7 +104,7 @@
protected abstract TopiaContext createDb(String name) throws Exception;
protected TopiaContext createReplicateDb(Object contract) throws Exception {
- TopiaContext rootCtxt = (TopiaContextImplementor) createDb2(contract.toString() + (dbCounter++));
+ TopiaContext rootCtxt = (TopiaContextImplementor) createDb2(contract.toString() + dbCounter++);
return rootCtxt;
}
@@ -208,7 +206,7 @@
for (int i = 0, j = expectedCouple.length / 2; i < j; i++) {
TopiaEntityEnum src = (TopiaEntityEnum) expectedCouple[2 * i];
- String name = (String) expectedCouple[(2 * i) + 1];
+ String name = (String) expectedCouple[2 * i + 1];
ReplicationNode nodeSrc = model.getNode(src);
assertTrue(nodeSrc.hasAssociation());
assertTrue(nodeSrc.getAssociations().containsKey(name));
@@ -224,7 +222,7 @@
for (int i = 0, j = expectedCouple.length / 2; i < j; i++) {
TopiaEntityEnum src = (TopiaEntityEnum) expectedCouple[2 * i];
- String name = (String) expectedCouple[(2 * i) + 1];
+ String name = (String) expectedCouple[2 * i + 1];
ReplicationNode nodeSrc = model.getNode(src);
assertTrue(nodeSrc + " should have dependency but was not!", nodeSrc.hasDependency());
assertTrue(nodeSrc + " should contain dependency " + name + "but was not! (" + nodeSrc.getDependencies() + ")", nodeSrc.getDependencies().containsKey(name));
@@ -469,7 +467,7 @@
}
TopiaEntityEnum contract = TopiaEntityHelper.getEntityEnum(expected.getClass(), getContracts());
EntityOperator<TopiaEntity> operator = EntityOperatorStore.getOperator(contract);
- final List<String> associationProperties = operator.getAssociationProperties();
+ List<String> associationProperties = operator.getAssociationProperties();
for (String name : associationProperties) {
if (getLog().isDebugEnabled()) {
getLog().debug("association " + name);
Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/ReplicationEngineAllTest.java
===================================================================
--- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/ReplicationEngineAllTest.java 2010-03-08 16:18:25 UTC (rev 1825)
+++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/ReplicationEngineAllTest.java 2010-03-10 12:06:08 UTC (rev 1826)
@@ -51,8 +51,16 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
private static final Log log = LogFactory.getLog(ReplicationEngineTest.class);
- protected static final TopiaEntityEnum[] contracts = {TopiaTestEntityEnum.Person, TopiaTestEntityEnum.Pet, TopiaTestEntityEnum.Race};
- protected static final String entitiesList = PersonImpl.class.getName() + "," + PetImpl.class.getName() + "," + RaceImpl.class.getName();
+ protected static final TopiaEntityEnum[] contracts = {
+ TopiaTestEntityEnum.Person,
+ TopiaTestEntityEnum.Pet,
+ TopiaTestEntityEnum.Race
+ };
+ protected static final String entitiesList =
+ PersonImpl.class.getName() + "," +
+ PetImpl.class.getName() + "," +
+ RaceImpl.class.getName();
+
static protected Person person, person2;
static protected Pet pet, pet2, pet3;
static protected Race race, race2, race3;
Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/ReplicationEngineTest.java
===================================================================
--- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/ReplicationEngineTest.java 2010-03-08 16:18:25 UTC (rev 1825)
+++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/ReplicationEngineTest.java 2010-03-10 12:06:08 UTC (rev 1826)
@@ -25,13 +25,13 @@
import org.nuiton.topia.test.entities.*;
import org.junit.Test;
+import java.util.Map;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
-import org.junit.Ignore;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.TopiaTestDAOHelper.TopiaTestEntityEnum;
import org.nuiton.topia.persistence.TopiaEntityEnum;
@@ -325,7 +325,7 @@
* On remarque que l'on dettache l'assocation qui forme un cycle et que l'on est
* pas obligee de la reattachee car elle est bi-directionnelle.
*
- * On doit optimiser l'algorithme dans la methode {@link ReplicationModel#adjustOperations(java.util.Map)}.
+ * On doit optimiser l'algorithme dans la methode {@link ReplicationModel#adjustOperations(Map)}.
*
* @throws Exception
*/
Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java
===================================================================
--- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java 2010-03-08 16:18:25 UTC (rev 1825)
+++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java 2010-03-10 12:06:08 UTC (rev 1826)
@@ -105,6 +105,9 @@
try {
new ReplicationEngine().getOperation(Duplicate.class);
} catch (IllegalStateException e) {
+ if (log.isErrorEnabled()) {
+ log.error(e);
+ }
throw e;
} finally {
Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/FakeOperation.java
===================================================================
--- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/FakeOperation.java 2010-03-08 16:18:25 UTC (rev 1825)
+++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/FakeOperation.java 2010-03-10 12:06:08 UTC (rev 1826)
@@ -45,10 +45,18 @@
public static final Class<?>[] PARAMETERS_CLASSES = new Class<?>[]{String.class};
@Override
- public void register(ReplicationModel model, ReplicationNode ownerNode, ReplicationOperationPhase phase, Object... parameters) {
+ public void register(ReplicationModel model,
+ ReplicationNode ownerNode,
+ ReplicationOperationPhase phase,
+ Object... parameters) {
ReplicationEngine.checkParameters(PARAMETERS_CLASSES, parameters);
- ReplicationOperationDef op = new ReplicationOperationDef(phase, getClass(), ownerNode, parameters);
+ ReplicationOperationDef op = new ReplicationOperationDef(
+ phase,
+ getClass(),
+ ownerNode,
+ parameters
+ );
ownerNode.addOperation(op);
}
@@ -57,7 +65,8 @@
TopiaContextImplementor srcCtxt,
TopiaContextImplementor dstCtxt,
List<? extends TopiaEntity> nodeEntities,
- Map<Class<? extends TopiaEntity>, List<String>> data) throws TopiaException {
+ Map<Class<? extends TopiaEntity>, List<String>> data)
+ throws TopiaException {
}
}
Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UncreatableOperation.java
===================================================================
--- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UncreatableOperation.java 2010-03-08 16:18:25 UTC (rev 1825)
+++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UncreatableOperation.java 2010-03-10 12:06:08 UTC (rev 1826)
@@ -41,12 +41,17 @@
public class UncreatableOperation implements TopiaReplicationOperation {
/** to use log facility, just put in your code: log.info(\"...\"); */
- private static final Log log = LogFactory.getLog(UncreatableOperation.class);
+ private static final Log log =
+ LogFactory.getLog(UncreatableOperation.class);
@Override
- public void register(ReplicationModel model, ReplicationNode ownerNode, ReplicationOperationPhase phase, Object... parameters) {
+ public void register(ReplicationModel model,
+ ReplicationNode ownerNode,
+ ReplicationOperationPhase phase,
+ Object... parameters) {
- throw new UnsupportedOperationException(_("topia.replication.operation.error.uncreatable", getClass()));
+ throw new UnsupportedOperationException(
+ _("topia.replication.operation.error.uncreatable", getClass()));
}
@Override
@@ -54,6 +59,7 @@
TopiaContextImplementor srcCtxt,
TopiaContextImplementor dstCtxt,
List<? extends TopiaEntity> nodeEntities,
- Map<Class<? extends TopiaEntity>, List<String>> data) throws TopiaException {
+ Map<Class<? extends TopiaEntity>, List<String>> data)
+ throws TopiaException {
}
}
Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UnregistredOperation.java
===================================================================
--- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UnregistredOperation.java 2010-03-08 16:18:25 UTC (rev 1825)
+++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UnregistredOperation.java 2010-03-10 12:06:08 UTC (rev 1826)
@@ -20,38 +20,41 @@
*/
package org.nuiton.topia.replication.operation;
-import org.nuiton.topia.replication.*;
-import java.util.List;
-import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaContextImplementor;
import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.topia.replication.TopiaReplicationOperation;
import org.nuiton.topia.replication.model.ReplicationModel;
import org.nuiton.topia.replication.model.ReplicationNode;
import org.nuiton.topia.replication.model.ReplicationOperationDef;
import org.nuiton.topia.replication.model.ReplicationOperationPhase;
-/**
- *
- * @author chemit
- */
+import java.util.List;
+import java.util.Map;
+
+/** @author chemit */
public class UnregistredOperation implements TopiaReplicationOperation {
/** to use log facility, just put in your code: log.info(\"...\"); */
private static final Log log = LogFactory.getLog(UnregistredOperation.class);
@Override
- public void register(ReplicationModel model, ReplicationNode ownerNode, ReplicationOperationPhase phase, Object... parameters) {
-
+ public void register(ReplicationModel model,
+ ReplicationNode ownerNode,
+ ReplicationOperationPhase phase,
+ Object... parameters) {
+
}
@Override
- public void run(ReplicationOperationDef operationDef,
+ public void run(
+ ReplicationOperationDef operationDef,
TopiaContextImplementor srcCtxt,
TopiaContextImplementor dstCtxt,
List<? extends TopiaEntity> nodeEntities,
- Map<Class<? extends TopiaEntity>, List<String>> data) throws TopiaException {
+ Map<Class<? extends TopiaEntity>, List<String>> data)
+ throws TopiaException {
}
}