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 { } }