Index: topia2/src/test/org/codelutin/topia/TopiaContextTest.java diff -u topia2/src/test/org/codelutin/topia/TopiaContextTest.java:1.11 topia2/src/test/org/codelutin/topia/TopiaContextTest.java:1.12 --- topia2/src/test/org/codelutin/topia/TopiaContextTest.java:1.11 Thu Sep 28 15:46:10 2006 +++ topia2/src/test/org/codelutin/topia/TopiaContextTest.java Mon Oct 9 14:20:18 2006 @@ -23,21 +23,24 @@ * * @author poussin * - * @version $Revision: 1.11 $ + * @version $Revision: 1.12 $ * - * Last update: $Date: 2006/09/28 15:46:10 $ by : $Author: ruchaud $ + * Last update: $Date: 2006/10/09 14:20:18 $ by : $Author: bpoussin $ */ package org.codelutin.topia; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.io.File; import java.util.Properties; import junit.framework.TestCase; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.lucene.document.Document; +import org.apache.lucene.search.Hits; import org.codelutin.topia.event.TopiaEntityEvent; import org.codelutin.topia.event.TopiaEntityListener; import org.codelutin.topia.event.TopiaEntityLoadEvent; @@ -46,6 +49,7 @@ import org.codelutin.topia.event.TopiaVetoableEntityListener; import org.codelutin.topia.event.TopiaVetoableEntityLoadEvent; import org.codelutin.topia.event.TopiaVetoableEntityLoadListener; +import org.codelutin.topia.framework.IndexEngin; import org.codelutin.topia.framework.TopiaContextImplementor; import org.codelutin.topia.persistence.TopiaDAO; @@ -102,10 +106,64 @@ return config; } + protected Properties getH2Properties() { + Properties config = new Properties(); + 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.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", ""); + + return config; + } + protected Properties getProperties() { - return getDerbyProperties(); + return getH2Properties(); } + protected Properties getIndexProperties() { + Properties result = getProperties(); + result.setProperty("topia.index.engin", "org.codelutin.topia.framework.LuceneIndexer"); + result.setProperty("topia.index.lucene.directory", "/tmp/topia-test-index"); + return result; + } + + public void testIndex() throws Exception { + System.out.println("Debut du test index"); + + Properties config = getIndexProperties(); + + TopiaContext context = TopiaContextFactory.getContext(config); + + TopiaContextImplementor childContext = (TopiaContextImplementor) context + .beginTransaction(); + TopiaDAO persons = childContext.getDAO(Person.class); + Person p = persons.create(); + p.setName("poussin"); + p.setFirstname("benjamin"); + persons.update(p); + childContext.commitTransaction(); + + IndexEngin ie = context.getIndexEngin(); + Hits result = ie.search("poussin"); + + System.out.println("Index result: " + result.length()); + for (int i=0; i