[hibernate-commits] Hibernate SVN: r19898 - in search/trunk: hibernate-search and 46 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Mon Jul 5 12:52:23 EDT 2010


Author: hardy.ferentschik
Date: 2010-07-05 12:52:21 -0400 (Mon, 05 Jul 2010)
New Revision: 19898

Removed:
   search/trunk/hibernate-search-testing/src/main/java/org/hibernate/search/test/TestCase.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/TestCase.java
Modified:
   search/trunk/hibernate-search-testing/pom.xml
   search/trunk/hibernate-search-testing/src/main/java/org/hibernate/search/test/SearchTestCase.java
   search/trunk/hibernate-search/pom.xml
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/FSDirectoryTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/PurgeTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/RamDirectoryTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/SearchTestCase.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/TransactionTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/AnalyzerTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/DoubleAnalyzerTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/solr/SolrAnalyzerTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/backend/SyncBackendLongWorklistsStressTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/batchindexing/AvoidDuplicatesTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/BridgeTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/ClassBridgeAndProjectionTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/ClassBridgeTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/UnresolvedBridgeTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/classloading/NoAnnotationsTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/compression/CompressionTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/LuceneIndexingParametersTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/ProgrammaticMappingTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/ShardsConfigurationTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/directoryProvider/FSSlaveAndMasterDPTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/directoryProvider/MultipleSFTestCase.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/EmbeddedTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/doubleinsert/DoubleInsertEmbeddedTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/graph/RecursiveGraphTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/NestedEmbeddedTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/LazyM2OContainedInTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/NestedContainedInTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/engine/LazyCollectionsUpdatingTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/engine/RollbackTransactionTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/errorhandling/LuceneErrorHandlingTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/fieldAccess/FieldAccessTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/filter/FilterTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/id/EmbeddedIdTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/id/ImplicitIdTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/indexingStrategy/ManualIndexingStrategyTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/inheritance/InheritanceTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/common/JGroupsCommonTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/common/MultipleSessionsSearchTestCase.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/master/JGroupsMasterTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/slave/JGroupsSlaveTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jms/master/JMSMasterTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jms/slave/JMSSlaveTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/ConfigInfoMBeanTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/IndexCtrlMBeanTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/NoMBeansEnabledTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/optimizer/OptimizerPerfTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/perf/IndexTestDontRun.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/LuceneQuerySortTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/LuceneQueryTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/MultiClassesQueryLoaderTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/ProjectionQueryTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/QueryLoaderTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/QueryUnindexedEntityTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/TermVectorTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/boost/DynamicBoostingTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/boost/FieldBoostTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/criteria/MixedCriteriaTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/dsl/DSLTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/explain/ExplanationTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/ReaderPerfTestCase.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/functionality/FilterOnDirectoryTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/performance/ReaderPerformance.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/MassIndexTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/MassIndexUsingManualFlushTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/OptimizeTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/SessionTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/shards/DirectoryProviderForQueryTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/shards/ShardsTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/similarity/SimilarityTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/ConcurrencyTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/WorkerTestCase.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/duplication/WorkDuplicationTest.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/duplication/WorkSequencesTest.java
   search/trunk/pom.xml
Log:
HSEARCH-538 (Allow Hibernate Search to use the @FailureExpected test framework)
* hibernate-search depends now on hibernate-testing
* SearchTestCase extends now HibernateTestCase
* Removed obsolete org.hibernate.search.test.TestCase
* Renamed getMappings() to getAnnoatedClasses() in the tests to align with HibernateTestCase

Modified: search/trunk/hibernate-search/pom.xml
===================================================================
--- search/trunk/hibernate-search/pom.xml	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/pom.xml	2010-07-05 16:52:21 UTC (rev 19898)
@@ -89,6 +89,12 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-testing</artifactId>
+            <version>${hibernateVersion}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/FSDirectoryTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/FSDirectoryTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/FSDirectoryTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -53,19 +53,19 @@
 		File sub = getBaseIndexDir();
 		sub.mkdir();
 		File[] files = sub.listFiles();
-		for (File file : files) {
+		for ( File file : files ) {
 			if ( file.isDirectory() ) {
 				FileHelper.delete( file );
 			}
 		}
-		//super.setUp(); //we need a fresh session factory each time for index set up
-		buildSessionFactory( getMappings(), getAnnotatedPackages(), getXmlFiles() );
+		super.setUp();
 	}
 
 	protected void tearDown() throws Exception {
 		super.tearDown();
 		File sub = getBaseIndexDir();
 		FileHelper.delete( sub );
+		setCfg( null );  // we need a fresh session factory each time for index set up
 	}
 
 	public void testEventIntegration() throws Exception {
@@ -100,7 +100,7 @@
 
 			s = getSessions().openSession();
 			s.getTransaction().begin();
-			Document entity = (Document) s.get( Document.class, Long.valueOf( 1 ) );
+			Document entity = ( Document ) s.get( Document.class, Long.valueOf( 1 ) );
 			entity.setSummary( "Object/relational mapping with EJB3" );
 			s.persist( new Document( "Seam in Action", "", "blah blah blah blah" ) );
 			s.getTransaction().commit();
@@ -181,7 +181,7 @@
 		s = getSessions().openSession();
 		s.getTransaction().begin();
 		List list = s.createQuery( "from Document" ).list();
-		for (Document document : (List<Document>) list) {
+		for ( Document document : ( List<Document> ) list ) {
 			s.delete( document );
 		}
 		s.getTransaction().commit();
@@ -210,7 +210,7 @@
 		dir.close();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Document.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/PurgeTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/PurgeTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/PurgeTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -126,7 +126,7 @@
 		s.close();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Book.class,
 				AlternateBook.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/RamDirectoryTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/RamDirectoryTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/RamDirectoryTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -82,7 +82,7 @@
 		}
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[]{
 				Document.class,
 				AlternateDocument.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/SearchTestCase.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/SearchTestCase.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/SearchTestCase.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -1,8 +1,7 @@
-/* $Id$
- * 
+/* 
  * Hibernate, Relational Persistence for Idiomatic Java
  * 
- * Copyright (c) 2009, Red Hat, Inc. and/or its affiliates or third-party contributors as
+ * Copyright (c) 2010, Red Hat, Inc. and/or its affiliates or third-party contributors as
  * indicated by the @author tags or express copyright attribution
  * statements applied by the authors.  All third-party contributions are
  * distributed under license by Red Hat, Inc.
@@ -38,14 +37,14 @@
 import org.slf4j.Logger;
 
 import org.hibernate.HibernateException;
+import org.hibernate.Interceptor;
 import org.hibernate.Session;
+import org.hibernate.SessionFactory;
 import org.hibernate.Transaction;
 import org.hibernate.cfg.AnnotationConfiguration;
 import org.hibernate.cfg.Configuration;
-import org.hibernate.dialect.Dialect;
 import org.hibernate.event.PostInsertEventListener;
 import org.hibernate.impl.SessionFactoryImpl;
-import org.hibernate.search.Environment;
 import org.hibernate.search.FullTextSession;
 import org.hibernate.search.Search;
 import org.hibernate.search.SearchFactory;
@@ -53,14 +52,15 @@
 import org.hibernate.search.engine.SearchFactoryImplementor;
 import org.hibernate.search.event.FullTextIndexEventListener;
 import org.hibernate.search.store.RAMDirectoryProvider;
-import org.hibernate.tool.hbm2ddl.SchemaExport;
+import org.hibernate.test.annotations.HibernateTestCase;
 
 /**
  * Base class for Hibernate Search unit tests.
  *
  * @author Emmanuel Bernard
+ * @author Hardy Ferentschik
  */
-public abstract class SearchTestCase extends TestCase {
+public abstract class SearchTestCase extends HibernateTestCase {
 
 	private static final Logger log = org.hibernate.search.util.LoggerFactory.make();
 
@@ -69,6 +69,9 @@
 	public static final Analyzer simpleAnalyzer = new SimpleAnalyzer();
 	public static final Analyzer keywordAnalyzer = new KeywordAnalyzer();
 
+	protected static SessionFactory sessions;
+	protected Session session;
+
 	private static File indexDir;
 
 	private SearchFactoryImplementor searchFactory;
@@ -83,21 +86,80 @@
 		log.debug( "Using {} as index directory.", indexDir.getAbsolutePath() );
 	}
 
-	protected void setUp() throws Exception {
-		buildSessionFactory( getMappings(), getAnnotatedPackages(), getXmlFiles() );
-		ensureIndexesAreEmpty();
+	public SearchTestCase() {
+		super();
 	}
 
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		SchemaExport export = new SchemaExport( cfg );
-		export.drop( false, true );
-		if ( searchFactory != null ) {
-			searchFactory.close();
+	public SearchTestCase(String x) {
+		super( x );
+	}
+
+	@Override
+	protected void handleUnclosedResources() {
+		if ( session != null && session.isOpen() ) {
+			if ( session.isConnected() ) {
+				session.doWork( new RollbackWork() );
+			}
+			session.close();
+			session = null;
+			fail( "unclosed session" );
 		}
-		searchFactory = null;
+		else {
+			session = null;
+		}
 	}
 
+	@Override
+	protected void closeResources() {
+		try {
+			if ( session != null && session.isOpen() ) {
+				if ( session.isConnected() ) {
+					session.doWork( new RollbackWork() );
+				}
+				session.close();
+			}
+		}
+		catch ( Exception ignore ) {
+		}
+		try {
+			if ( sessions != null ) {
+				sessions.close();
+				sessions = null;
+			}
+		}
+		catch ( Exception ignore ) {
+		}
+	}
+
+	public Session openSession() throws HibernateException {
+		session = getSessions().openSession();
+		return session;
+	}
+
+	public Session openSession(Interceptor interceptor) throws HibernateException {
+		session = getSessions().openSession( interceptor );
+		return session;
+	}
+
+	protected void setSessions(SessionFactory sessions) {
+		SearchTestCase.sessions = sessions;
+	}
+
+	protected SessionFactory getSessions() {
+		return sessions;
+	}
+
+	protected void configure(Configuration cfg) {
+		super.configure( cfg );
+
+		cfg.setProperty( "hibernate.search.default.directory_provider", RAMDirectoryProvider.class.getName() );
+		cfg.setProperty( "hibernate.search.default.indexBase", indexDir.getAbsolutePath() );
+		cfg.setProperty( org.hibernate.search.Environment.ANALYZER_CLASS, StopAnalyzer.class.getName() );
+
+		cfg.setProperty( "hibernate.search.default.transaction.merge_factor", "100" );
+		cfg.setProperty( "hibernate.search.default.batch.max_buffered_docs", "1000" );
+	}
+
 	protected Directory getDirectory(Class<?> clazz) {
 		return getLuceneEventListener().getSearchFactoryImplementor().getDirectoryProviders( clazz )[0].getDirectory();
 	}
@@ -119,6 +181,11 @@
 		return listener;
 	}
 
+	protected void setUp() throws Exception {
+		super.setUp();
+		ensureIndexesAreEmpty();
+	}
+
 	protected void ensureIndexesAreEmpty() {
 		if ( "jms".equals( getCfg().getProperty( "hibernate.search.worker.backend" ) ) ) {
 			log.debug( "JMS based test. Skipping index emptying" );
@@ -127,7 +194,7 @@
 		FullTextSession s = Search.getFullTextSession( openSession() );
 		Transaction tx;
 		tx = s.beginTransaction();
-		for ( Class<?> clazz : getMappings() ) {
+		for ( Class<?> clazz : getAnnotatedClasses() ) {
 			if ( clazz.getAnnotation( Indexed.class ) != null ) {
 				s.purgeAll( clazz );
 			}
@@ -146,19 +213,11 @@
 		return searchFactory;
 	}
 
-	protected void configure(Configuration cfg) {
-		cfg.setProperty( "hibernate.search.default.directory_provider", RAMDirectoryProvider.class.getName() );
-		cfg.setProperty( "hibernate.search.default.indexBase", indexDir.getAbsolutePath() );
-		cfg.setProperty( Environment.ANALYZER_CLASS, StopAnalyzer.class.getName() );
-		cfg.setProperty( "hibernate.search.default.transaction.merge_factor", "100" );
-		cfg.setProperty( "hibernate.search.default.batch.max_buffered_docs", "1000" );
-	}
-
 	protected File getBaseIndexDir() {
 		return indexDir;
 	}
 
-	protected void buildSessionFactory(Class<?>[] classes, String[] packages, String[] xmlFiles) throws Exception {
+	protected void buildConfiguration() throws Exception {
 		if ( getSessions() != null ) {
 			getSessions().close();
 		}
@@ -168,17 +227,16 @@
 			if ( recreateSchema() ) {
 				cfg.setProperty( org.hibernate.cfg.Environment.HBM2DDL_AUTO, "create-drop" );
 			}
-			for ( String aPackage : packages ) {
+			for ( String aPackage : getAnnotatedPackages() ) {
 				( ( AnnotationConfiguration ) getCfg() ).addPackage( aPackage );
 			}
-			for ( Class<?> aClass : classes ) {
+			for ( Class<?> aClass : getAnnotatedClasses() ) {
 				( ( AnnotationConfiguration ) getCfg() ).addAnnotatedClass( aClass );
 			}
-			for ( String xmlFile : xmlFiles ) {
+			for ( String xmlFile : getXmlFiles() ) {
 				InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( xmlFile );
 				getCfg().addInputStream( is );
 			}
-			setDialect( Dialect.getDialect() );
 			setSessions( getCfg().buildSessionFactory( /*new TestInterceptor()*/ ) );
 		}
 		catch ( Exception e ) {
@@ -187,16 +245,10 @@
 		}
 	}
 
-	protected abstract Class<?>[] getMappings();
-
 	protected String[] getAnnotatedPackages() {
 		return new String[] { };
 	}
 
-	protected static File getIndexDir() {
-		return indexDir;
-	}
-
 	public static Version getTargetLuceneVersion() {
 		return Version.LUCENE_29;
 	}

Deleted: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/TestCase.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/TestCase.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/TestCase.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -1,196 +0,0 @@
-/* $Id$
- * 
- * Hibernate, Relational Persistence for Idiomatic Java
- * 
- * Copyright (c) 2009, Red Hat, Inc. and/or its affiliates or third-party contributors as
- * indicated by the @author tags or express copyright attribution
- * statements applied by the authors.  All third-party contributions are
- * distributed under license by Red Hat, Inc.
- * 
- * This copyrighted material is made available to anyone wishing to use, modify,
- * copy, or redistribute it subject to the terms and conditions of the GNU
- * Lesser General Public License, as published by the Free Software Foundation.
- * 
- * 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 Lesser General Public License
- * for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this distribution; if not, write to:
- * Free Software Foundation, Inc.
- * 51 Franklin Street, Fifth Floor
- * Boston, MA  02110-1301  USA
- */
-package org.hibernate.search.test;
-
-import java.io.InputStream;
-
-import org.apache.lucene.analysis.StopAnalyzer;
-
-import org.hibernate.HibernateException;
-import org.hibernate.Interceptor;
-import org.hibernate.Session;
-import org.hibernate.SessionFactory;
-import org.hibernate.search.store.RAMDirectoryProvider;
-import org.hibernate.cfg.Configuration;
-import org.hibernate.cfg.Environment;
-import org.hibernate.dialect.Dialect;
-import org.hibernate.event.FlushEventListener;
-import org.hibernate.event.def.DefaultFlushEventListener;
-import org.hibernate.search.event.FullTextIndexEventListener;
-
-/**
- * A modified base class for tests without annotations.
- *
- * @author Hardy Ferentschik
- */
-public abstract class TestCase extends junit.framework.TestCase {
-
-	protected static SessionFactory sessions;
-	protected static Configuration cfg;
-	protected static Dialect dialect;
-	protected static Class lastTestClass;
-	protected Session session;
-
-	public TestCase() {
-		super();
-	}
-
-	public TestCase(String x) {
-		super( x );
-	}
-
-	protected void buildSessionFactory(String[] xmlFiles) throws Exception {
-
-		if ( getSessions() != null ) {
-			getSessions().close();
-		}
-		try {
-			setCfg( new Configuration() );
-			configure( cfg );
-			if ( recreateSchema() ) {
-				cfg.setProperty( Environment.HBM2DDL_AUTO, "create-drop" );
-			}
-			for ( String xmlFile : xmlFiles ) {
-				InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( xmlFile );
-				getCfg().addInputStream( is );
-			}
-			setDialect( Dialect.getDialect() );
-			setSessions( getCfg().buildSessionFactory() );
-		}
-		catch ( Exception e ) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
-
-	protected void setUp() throws Exception {
-		if ( getSessions() == null || getSessions().isClosed() || lastTestClass != getClass() ) {
-			buildSessionFactory( getXmlFiles() );
-			lastTestClass = getClass();
-		}
-	}
-	
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		if ( sessions != null ) {
-			sessions.close();
-		}
-	}
-
-	protected void runTest() throws Throwable {
-		try {
-			super.runTest();
-			if ( session != null && session.isOpen() ) {
-				if ( session.isConnected() ) {
-					session.connection().rollback();
-				}
-				session.close();
-				session = null;
-				fail( "unclosed session" );
-			}
-			else {
-				session = null;
-			}
-		}
-		catch ( Throwable e ) {
-			try {
-				if ( session != null && session.isOpen() ) {
-					if ( session.isConnected() ) {
-						session.connection().rollback();
-					}
-					session.close();
-				}
-			}
-			catch ( Exception ignore ) {
-			}
-			try {
-				if ( sessions != null ) {
-					sessions.close();
-					sessions = null;
-				}
-			}
-			catch ( Exception ignore ) {
-			}
-			throw e;
-		}
-	}
-
-	public Session openSession() throws HibernateException {
-		session = getSessions().openSession();
-		return session;
-	}
-
-	public Session openSession(Interceptor interceptor) throws HibernateException {
-		session = getSessions().openSession( interceptor );
-		return session;
-	}
-
-	protected String[] getXmlFiles() {
-		return new String[] { };
-	}
-
-	protected void setSessions(SessionFactory sessions) {
-		TestCase.sessions = sessions;
-	}
-
-	protected SessionFactory getSessions() {
-		return sessions;
-	}
-
-	protected void setDialect(Dialect dialect) {
-		TestCase.dialect = dialect;
-	}
-
-	protected Dialect getDialect() {
-		return dialect;
-	}
-
-	protected static void setCfg(Configuration cfg) {
-		TestCase.cfg = cfg;
-	}
-
-	protected static Configuration getCfg() {
-		return cfg;
-	}
-
-	protected void configure(Configuration cfg) {
-		//needs to register all event listeners:
-		cfg.setListener( "post-update", "org.hibernate.search.event.FullTextIndexEventListener" );
-		cfg.setListener( "post-insert", "org.hibernate.search.event.FullTextIndexEventListener" );
-		cfg.setListener( "post-delete", "org.hibernate.search.event.FullTextIndexEventListener" );
-		cfg.setListener( "post-collection-recreate", "org.hibernate.search.event.FullTextIndexEventListener" );
-		cfg.setListener( "post-collection-remove", "org.hibernate.search.event.FullTextIndexEventListener" );
-		cfg.setListener( "post-collection-update", "org.hibernate.search.event.FullTextIndexEventListener" );
-		
-		cfg.setListeners( "flush", new FlushEventListener[]{new DefaultFlushEventListener(), new FullTextIndexEventListener()} );
-
-		cfg.setProperty( "hibernate.search.default.directory_provider", RAMDirectoryProvider.class.getName() );
-		cfg.setProperty( org.hibernate.search.Environment.ANALYZER_CLASS, StopAnalyzer.class.getName() );
-	}
-
-	protected boolean recreateSchema() {
-		return true;
-	}
-}

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/TransactionTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/TransactionTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/TransactionTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -89,7 +89,7 @@
 		}
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] { Document.class };
 	}
 	

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/AnalyzerTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/AnalyzerTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/AnalyzerTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -193,7 +193,7 @@
 		session.close();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] { MyEntity.class, Article.class };
 	}
 }

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/DoubleAnalyzerTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/DoubleAnalyzerTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/DoubleAnalyzerTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -44,7 +44,7 @@
 
 	public static final Logger log = LoggerFactory.make();
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] { MyEntity.class, AlarmEntity.class };
 	}
 

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -100,7 +100,7 @@
 	}
 
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] { SubClass.class };
 	}
 }

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/solr/SolrAnalyzerTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/solr/SolrAnalyzerTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/analyzer/solr/SolrAnalyzerTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -183,7 +183,7 @@
 		fts.close();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Team.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/backend/SyncBackendLongWorklistsStressTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/backend/SyncBackendLongWorklistsStressTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/backend/SyncBackendLongWorklistsStressTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -1,8 +1,7 @@
-/* $Id$
- * 
+/*
  * Hibernate, Relational Persistence for Idiomatic Java
  * 
- * Copyright (c) 2009, Red Hat, Inc. and/or its affiliates or third-party contributors as
+ * Copyright (c) 2010, Red Hat, Inc. and/or its affiliates or third-party contributors as
  * indicated by the @author tags or express copyright attribution
  * statements applied by the authors.  All third-party contributions are
  * distributed under license by Red Hat, Inc.
@@ -27,9 +26,9 @@
 import java.io.File;
 
 import junit.framework.Assert;
-
 import org.apache.lucene.analysis.StopAnalyzer;
 import org.apache.lucene.search.MatchAllDocsQuery;
+
 import org.hibernate.Transaction;
 import org.hibernate.criterion.Projections;
 import org.hibernate.search.Environment;
@@ -41,31 +40,33 @@
 import org.hibernate.search.util.FileHelper;
 
 public class SyncBackendLongWorklistsStressTest extends SearchTestCase {
-	
+
 	/* needs to be sensibly higher than org.hibernate.search.batchindexing.Executors.QUEUE_MAX_LENGTH */
 	private static final int NUM_SAVED_ENTITIES = 3000;
 
 	public void testWorkLongerThanMaxQueueSize() throws Exception {
 		FullTextSession s = Search.getFullTextSession( openSession() );
-		for (int i = 0; i < NUM_SAVED_ENTITIES; i++ ) { 
+		for ( int i = 0; i < NUM_SAVED_ENTITIES; i++ ) {
 			Transaction tx = s.beginTransaction();
-			Clock clock = new Clock( i, "brand num° " + i);
+			Clock clock = new Clock( i, "brand num° " + i );
 			s.persist( clock );
 			tx.commit();
 			s.clear();
 		}
-		
+
 		Transaction tx = s.beginTransaction();
 		// count of entities in database needs to be checked before SF is closed (HSQLDB will forget the entities)
-		Number count = (Number) s.createCriteria( Clock.class ).setProjection( Projections.rowCount() ).uniqueResult();
+		Number count = ( Number ) s.createCriteria( Clock.class )
+				.setProjection( Projections.rowCount() )
+				.uniqueResult();
 		Assert.assertEquals( NUM_SAVED_ENTITIES, count.intValue() );
 		tx.commit();
 		s.close();
-		
+
 		//we need to close the session to wait for all async work to be flushed
 		sessions.close();
-		buildSessionFactory( getMappings(), getAnnotatedPackages(), getXmlFiles() );
-		
+		buildConfiguration();
+
 		s = Search.getFullTextSession( openSession() );
 		tx = s.beginTransaction();
 		int fullTextCount = s.createFullTextQuery( new MatchAllDocsQuery(), Clock.class ).getResultSize();
@@ -75,10 +76,10 @@
 	}
 
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] { Clock.class };
 	}
-	
+
 	protected void configure(org.hibernate.cfg.Configuration cfg) {
 		super.configure( cfg );
 		File sub = getBaseIndexDir();
@@ -89,12 +90,11 @@
 		cfg.setProperty( "hibernate.show_sql", "false" );
 		cfg.setProperty( "hibernate.format_sql", "false" );
 	}
-	
+
 	protected void tearDown() throws Exception {
 		super.tearDown();
 		File sub = getBaseIndexDir();
 		FileHelper.delete( sub );
 	}
-
 }
 

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/batchindexing/AvoidDuplicatesTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/batchindexing/AvoidDuplicatesTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/batchindexing/AvoidDuplicatesTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -25,8 +25,8 @@
 package org.hibernate.search.test.batchindexing;
 
 import junit.framework.Assert;
+import org.apache.lucene.search.MatchAllDocsQuery;
 
-import org.apache.lucene.search.MatchAllDocsQuery;
 import org.hibernate.Session;
 import org.hibernate.Transaction;
 import org.hibernate.search.FullTextQuery;
@@ -36,34 +36,34 @@
 import org.hibernate.search.test.SearchTestCase;
 
 public class AvoidDuplicatesTest extends SearchTestCase {
-	
+
 	@Override
 	public void setUp() throws Exception {
 		super.setUp();
 		Session session = openSession();
 		Transaction transaction = session.beginTransaction();
-		
+
 		Nation italy = new Nation( "Italy", "IT" );
 		session.persist( italy );
-		
+
 		AncientBook aeneid = new AncientBook();
 		aeneid.setTitle( "Aeneid" );
 		aeneid.getAlternativeTitles().add( "Aeneis" );
 		aeneid.getAlternativeTitles().add( "Eneide" );
 		aeneid.setFirstPublishedIn( italy );
 		session.persist( aeneid );
-		
+
 		AncientBook commedia = new AncientBook();
 		commedia.setTitle( "Commedia" );
 		commedia.getAlternativeTitles().add( "La Commedia" );
 		commedia.getAlternativeTitles().add( "La Divina Commedia" );
 		commedia.setFirstPublishedIn( italy );
 		session.persist( commedia );
-		
+
 		transaction.commit();
 		session.close();
 	}
-	
+
 	public void testReindexedOnce() throws InterruptedException {
 		Assert.assertEquals( 2, countBooksInIndex() );
 		Session session = openSession();
@@ -86,7 +86,7 @@
 	}
 
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				AncientBook.class,
 				Book.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/BridgeTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/BridgeTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/BridgeTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -271,7 +271,7 @@
 	}
 
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Cloud.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/ClassBridgeAndProjectionTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/ClassBridgeAndProjectionTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/ClassBridgeAndProjectionTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -65,7 +65,7 @@
     }
 
     @Override
-    protected Class<?>[] getMappings() {
+    protected Class<?>[] getAnnotatedClasses() {
         return new Class<?>[] {
                 Student.class,
                 Teacher.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/ClassBridgeTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/ClassBridgeTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/ClassBridgeTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -321,7 +321,7 @@
 		return depts;
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Department.class,
 				Departments.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/UnresolvedBridgeTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/UnresolvedBridgeTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/bridge/UnresolvedBridgeTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -36,8 +36,8 @@
 	public void testSerializableType() throws Exception {
 		AnnotationConfiguration cfg = new AnnotationConfiguration();
 
-		for (int i = 0; i < getMappings().length; i++) {
-			cfg.addAnnotatedClass( getMappings()[i] );
+		for (int i = 0; i < getAnnotatedClasses().length; i++) {
+			cfg.addAnnotatedClass( getAnnotatedClasses()[i] );
 		}
 		cfg.setProperty( "hibernate.search.default.directory_provider", RAMDirectoryProvider.class.getName() );
 		try {
@@ -62,7 +62,7 @@
 	}
 
 	@SuppressWarnings("unchecked")
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Gangster.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/classloading/NoAnnotationsTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/classloading/NoAnnotationsTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/classloading/NoAnnotationsTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -24,6 +24,7 @@
  */
 package org.hibernate.search.test.classloading;
 
+import java.io.InputStream;
 import java.util.List;
 
 import org.apache.lucene.index.Term;
@@ -31,25 +32,21 @@
 
 import org.hibernate.Session;
 import org.hibernate.Transaction;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.cfg.Environment;
 import org.hibernate.search.Search;
-import org.hibernate.search.jpa.FullTextEntityManager;
-import org.hibernate.search.test.TestCase;
+import org.hibernate.search.test.SearchTestCase;
 
 /**
  * @author Hardy Ferentschik
  */
-public class NoAnnotationsTest extends TestCase {
+public class NoAnnotationsTest extends SearchTestCase {
 	/**
 	 * Tests that @DocumentId is optional. See HSEARCH-104.
 	 *
 	 * @throws Exception in case the test fails.
 	 */
 	public void testConfigurationWithoutAnnotations() throws Exception {
-		FullTextEntityManager em = org.hibernate
-				.search
-				.jpa
-				.Search
-				.getFullTextEntityManager( null );
 		Animal dog = new Animal();
 		dog.setName( "Dog" );
 
@@ -88,9 +85,35 @@
 		s.close();
 	}
 
+	protected void buildConfiguration() throws Exception {
+		if ( getSessions() != null ) {
+			getSessions().close();
+		}
+		try {
+			setCfg( new Configuration() );
+			configure( cfg );
+			if ( recreateSchema() ) {
+				cfg.setProperty( Environment.HBM2DDL_AUTO, "create-drop" );
+			}
+			for ( String xmlFile : getXmlFiles() ) {
+				InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( xmlFile );
+				getCfg().addInputStream( is );
+			}
+			setSessions( getCfg().buildSessionFactory() );
+		}
+		catch ( Exception e ) {
+			e.printStackTrace();
+			throw e;
+		}
+	}
+
 	protected String[] getXmlFiles() {
 		return new String[] {
 				"org/hibernate/search/test/classloading/Animal.hbm.xml"
 		};
 	}
+
+	protected Class<?>[] getAnnotatedClasses() {
+		return new Class[] { };
+	}
 }

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/compression/CompressionTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/compression/CompressionTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/compression/CompressionTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -170,7 +170,7 @@
 	
 	// test setup:
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				LargeDocument.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/LuceneIndexingParametersTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/LuceneIndexingParametersTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/LuceneIndexingParametersTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -131,7 +131,7 @@
 		assertEquals( param.getTransactionIndexParameters(), paramCopy.getTransactionIndexParameters() );
 	}
 	
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Book.class,
 				Author.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/ProgrammaticMappingTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/ProgrammaticMappingTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/ProgrammaticMappingTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -740,7 +740,7 @@
 
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class<?>[] {
 				Address.class,
 				Country.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/ShardsConfigurationTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/ShardsConfigurationTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/ShardsConfigurationTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -42,12 +42,10 @@
  * @author Sanne Grinovero
  */
 public class ShardsConfigurationTest extends ConfigurationReadTestCase {
-	
+
 	protected void configure(org.hibernate.cfg.Configuration cfg) {
 		super.configure( cfg );
-		//super contains these:
-//		cfg.setProperty( "hibernate.search.default.transaction.merge_factor", "100" );
-//		cfg.setProperty( "hibernate.search.default.batch.max_buffered_docs", "1000" );
+
 		cfg.setProperty( "hibernate.search.default.sharding_strategy.nbr_of_shards", "2" );// permit this?
 		cfg.setProperty( "hibernate.search.default.directory_provider", FSDirectoryProvider.class.getCanonicalName() );
 		cfg.setProperty( "hibernate.search.default.2.directory_provider", RAMDirectoryProvider.class.getCanonicalName() );
@@ -64,8 +62,12 @@
 		cfg.setProperty( "hibernate.search.Documents.1.batch.max_merge_docs", "11" );
 		cfg.setProperty( "hibernate.search.Documents.1.transaction.max_buffered_docs", "12" );
 		cfg.setProperty( "hibernate.search.Documents.1.transaction.term_index_interval", "12" );
+
+		//super contains these:
+		//cfg.setProperty( "hibernate.search.default.transaction.merge_factor", "100" );
+		//cfg.setProperty( "hibernate.search.default.batch.max_buffered_docs", "1000" );
 	}
-	
+
 	public void testCorrectNumberOfShardsDetected() {
 		DirectoryProvider[] docDirProviders = getSearchFactory()
 			.getDirectoryProviders( Document.class );
@@ -76,14 +78,14 @@
 		assertNotNull( bookDirProviders );
 		assertEquals( 2, bookDirProviders.length );
 	}
-	
+
 	public void testSelectionOfShardingStrategy() {
 		IndexShardingStrategy shardingStrategy = getSearchFactory().getDocumentBuilderIndexedEntity( Document.class )
 				.getDirectoryProviderSelectionStrategy();
 		assertNotNull( shardingStrategy );
 		assertEquals( shardingStrategy.getClass(), UselessShardingStrategy.class );
 	}
-	
+
 	public void testShardingSettingsInherited() {
 		DirectoryProvider[] docDirProviders = getSearchFactory().getDirectoryProviders( Document.class );
 		assertTrue( docDirProviders[0] instanceof RAMDirectoryProvider );
@@ -91,7 +93,7 @@
 		assertTrue( docDirProviders[2] instanceof RAMDirectoryProvider );
 		assertValueIsSet( Document.class, 0, BATCH, MAX_BUFFERED_DOCS, 4 );
 	}
-	
+
 	public void testShardN2UsesDefaults() {
 		assertValueIsSet( Document.class, 2, TRANSACTION, MAX_BUFFERED_DOCS, 6 );
 		assertValueIsDefault( Document.class, 2, TRANSACTION, MAX_MERGE_DOCS );
@@ -102,18 +104,18 @@
 		assertValueIsDefault( Document.class, 2, BATCH, MERGE_FACTOR );
 		assertValueIsDefault( Document.class, 2, BATCH, RAM_BUFFER_SIZE );
 	}
-	
+
 	public void testShardN1_ExplicitParams() {
 		assertValueIsSet( Document.class, 1, TRANSACTION, MAX_BUFFERED_DOCS, 12 );
 		assertValueIsSet( Document.class, 1, BATCH, MAX_MERGE_DOCS, 11 );
 	}
-	
+
 	@Override
 	protected void ensureIndexesAreEmpty() {
 		// skips index emptying to prevent a problem with UselessShardingStrategy
 	}
-	
-	protected Class<?>[] getMappings() {
+
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Book.class,
 				Author.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/directoryProvider/FSSlaveAndMasterDPTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/directoryProvider/FSSlaveAndMasterDPTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/directoryProvider/FSSlaveAndMasterDPTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -212,7 +212,7 @@
 		return 2;
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				SnowStorm.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/directoryProvider/MultipleSFTestCase.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/directoryProvider/MultipleSFTestCase.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/directoryProvider/MultipleSFTestCase.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -94,7 +94,7 @@
 
 	protected void setUp() throws Exception {
 		if ( sessionFactories == null || sessionFactories[0] == null || lastTestClass != getClass() ) {
-			buildSessionFactories( getMappings(), getAnnotatedPackages(), getXmlFiles() );
+			buildSessionFactories( getAnnotatedClasses(), getAnnotatedPackages(), getXmlFiles() );
 			lastTestClass = getClass();
 		}
 	}
@@ -105,7 +105,7 @@
 		}
 	}
 
-	protected abstract Class[] getMappings();
+	protected abstract Class[] getAnnotatedClasses();
 
 	protected String[] getAnnotatedPackages() {
 		return new String[] { };

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/EmbeddedTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/EmbeddedTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/EmbeddedTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -335,7 +335,7 @@
 		super.configure( cfg );
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] { Tower.class, Address.class, Product.class, Order.class, Author.class, Country.class,
 				State.class, StateCandidate.class, NonIndexedEntity.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/doubleinsert/DoubleInsertEmbeddedTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/doubleinsert/DoubleInsertEmbeddedTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/doubleinsert/DoubleInsertEmbeddedTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -93,7 +93,7 @@
 		s.close();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Address.class,
 				Contact.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/graph/RecursiveGraphTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/graph/RecursiveGraphTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/graph/RecursiveGraphTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -66,7 +66,7 @@
     }
 
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[]{
 				Event.class,
 				Person.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/NestedEmbeddedTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/NestedEmbeddedTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/NestedEmbeddedTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -156,7 +156,7 @@
 		super.configure( cfg );
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Product.class, Attribute.class, AttributeValue.class, Person.class, Place.class, Address.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/LazyM2OContainedInTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/LazyM2OContainedInTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/LazyM2OContainedInTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -118,7 +118,7 @@
 
 
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class<?>[] {
 				Entity1ForDoc0.class,
 				Entity2ForDoc0.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/NestedContainedInTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/NestedContainedInTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/NestedContainedInTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -79,7 +79,7 @@
 	}
 
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class<?>[] {
 				HelpItem.class,
 				HelpItemTag.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/engine/LazyCollectionsUpdatingTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/engine/LazyCollectionsUpdatingTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/engine/LazyCollectionsUpdatingTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -133,7 +133,7 @@
 
 	// Test setup options - Entities
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] { BusLine.class, BusStop.class };
 	}
 	

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/engine/RollbackTransactionTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/engine/RollbackTransactionTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/engine/RollbackTransactionTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -98,7 +98,7 @@
 	
 	// Test setup options - Entities
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] { BusLine.class, BusStop.class };
 	}
 	

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/errorhandling/LuceneErrorHandlingTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/errorhandling/LuceneErrorHandlingTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/errorhandling/LuceneErrorHandlingTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -105,7 +105,7 @@
 		Assert.assertEquals( "failed work message", exception.getMessage() );
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] { Document.class };
 	}
 	

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/fieldAccess/FieldAccessTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/fieldAccess/FieldAccessTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/fieldAccess/FieldAccessTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -83,7 +83,7 @@
 
     }
 
-    protected Class<?>[] getMappings() {
+    protected Class<?>[] getAnnotatedClasses() {
         return new Class[] {
                 Document.class
         };

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/filter/FilterTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/filter/FilterTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/filter/FilterTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -198,8 +198,13 @@
 		s.close();
 	}
 
+	protected void tearDown() throws Exception {
+		super.tearDown();
+		setCfg( null ); // force a configuration rebuild
+	}
+
 	@SuppressWarnings("unchecked")
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Driver.class,
 				Soap.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/id/EmbeddedIdTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/id/EmbeddedIdTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/id/EmbeddedIdTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -112,7 +112,7 @@
 		s.close();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Person.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/id/ImplicitIdTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/id/ImplicitIdTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/id/ImplicitIdTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -63,7 +63,7 @@
 		s.close();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Animal.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/indexingStrategy/ManualIndexingStrategyTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/indexingStrategy/ManualIndexingStrategyTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/indexingStrategy/ManualIndexingStrategyTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -77,7 +77,7 @@
 		}
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Document.class,
 				AlternateDocument.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/inheritance/InheritanceTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/inheritance/InheritanceTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/inheritance/InheritanceTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -303,7 +303,7 @@
 		assertEquals( "Wrong animal name", "Elephant", mammal.getName() );
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Animal.class,
 				Mammal.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/common/JGroupsCommonTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/common/JGroupsCommonTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/common/JGroupsCommonTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -28,6 +28,7 @@
 
 import org.apache.lucene.queryParser.QueryParser;
 import org.apache.lucene.search.Query;
+
 import org.hibernate.Session;
 import org.hibernate.Transaction;
 import org.hibernate.cfg.Configuration;
@@ -42,12 +43,12 @@
  * In case of running test outside Hibernate Search Maven configuration set following VM configuration:
  * <br>
  * <code>
- * 	-Djava.net.preferIPv4Stack=true -Djgroups.bind_addr=127.0.0.1
+ * -Djava.net.preferIPv4Stack=true -Djgroups.bind_addr=127.0.0.1
  * </code>
+ *
  * @author Lukasz Moren
  */
-public class
-		JGroupsCommonTest extends MultipleSessionsSearchTestCase {
+public class JGroupsCommonTest extends MultipleSessionsSearchTestCase {
 
 	private static final String DEFAULT_JGROUPS_CONFIGURATION_FILE = "flush-udp.xml";
 
@@ -127,13 +128,13 @@
 	}
 
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				TShirt.class
 		};
 	}
 
-	protected Class<?>[] getCommonMappings() {
+	protected Class<?>[] getCommonAnnotatedClasses() {
 		return new Class[] {
 				TShirt.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/common/MultipleSessionsSearchTestCase.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/common/MultipleSessionsSearchTestCase.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/common/MultipleSessionsSearchTestCase.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -30,7 +30,6 @@
 import org.hibernate.cfg.AnnotationConfiguration;
 import org.hibernate.cfg.Configuration;
 import org.hibernate.classic.Session;
-import org.hibernate.dialect.Dialect;
 import org.hibernate.search.test.SearchTestCase;
 import org.hibernate.search.util.FileHelper;
 
@@ -66,8 +65,8 @@
 		super.configure( cfg );
 
 		//master
-		cfg.setProperty( "hibernate.search.default.sourceBase", getIndexDir().getAbsolutePath() + masterCopy );
-		cfg.setProperty( "hibernate.search.default.indexBase", getIndexDir().getAbsolutePath() + masterMain );
+		cfg.setProperty( "hibernate.search.default.sourceBase", getBaseIndexDir().getAbsolutePath() + masterCopy );
+		cfg.setProperty( "hibernate.search.default.indexBase", getBaseIndexDir().getAbsolutePath() + masterMain );
 		cfg.setProperty( "hibernate.search.default.refresh", "1" );
 		cfg.setProperty(
 				"hibernate.search.default.directory_provider", "org.hibernate.search.store.FSMasterDirectoryProvider"
@@ -78,8 +77,8 @@
 		super.configure( cfg );
 
 		//slave(s)
-		cfg.setProperty( "hibernate.search.default.sourceBase", getIndexDir().getAbsolutePath() + masterCopy );
-		cfg.setProperty( "hibernate.search.default.indexBase", getIndexDir().getAbsolutePath() + slave );
+		cfg.setProperty( "hibernate.search.default.sourceBase", getBaseIndexDir().getAbsolutePath() + masterCopy );
+		cfg.setProperty( "hibernate.search.default.indexBase", getBaseIndexDir().getAbsolutePath() + slave );
 		cfg.setProperty( "hibernate.search.default.refresh", "1" );
 		cfg.setProperty(
 				"hibernate.search.default.directory_provider", "org.hibernate.search.store.FSSlaveDirectoryProvider"
@@ -88,11 +87,11 @@
 
 	@Override
 	protected void setUp() throws Exception {
-		if ( getIndexDir().exists() ) {
-			FileHelper.delete( getIndexDir() );
+		if ( getBaseIndexDir().exists() ) {
+			FileHelper.delete( getBaseIndexDir() );
 		}
 		super.setUp();
-		buildCommonSessionFactory( getCommonMappings(), getCommonAnnotatedPackages(), getCommonXmlFiles() );
+		buildCommonSessionFactory();
 	}
 
 	@Override
@@ -103,10 +102,10 @@
 		if ( slaveSessionFactory != null ) {
 			slaveSessionFactory.close();
 		}
-		FileHelper.delete( getIndexDir() );
+		FileHelper.delete( getBaseIndexDir() );
 	}
 
-	private void buildCommonSessionFactory(Class<?>[] classes, String[] packages, String[] xmlFiles) throws Exception {
+	private void buildCommonSessionFactory() throws Exception {
 		if ( getSlaveSessionFactory() != null ) {
 			getSlaveSessionFactory().close();
 		}
@@ -116,17 +115,16 @@
 		if ( recreateSchema() ) {
 			commonCfg.setProperty( org.hibernate.cfg.Environment.HBM2DDL_AUTO, "create-drop" );
 		}
-		for ( String aPackage : packages ) {
-			((AnnotationConfiguration) getCommonConfiguration()).addPackage( aPackage );
+		for ( String aPackage : getCommonAnnotatedPackages() ) {
+			( ( AnnotationConfiguration ) getCommonConfiguration() ).addPackage( aPackage );
 		}
-		for ( Class<?> aClass : classes ) {
-			((AnnotationConfiguration) getCommonConfiguration()).addAnnotatedClass( aClass );
+		for ( Class<?> aClass : getCommonAnnotatedClasses() ) {
+			( ( AnnotationConfiguration ) getCommonConfiguration() ).addAnnotatedClass( aClass );
 		}
-		for ( String xmlFile : xmlFiles ) {
+		for ( String xmlFile : getCommonXmlFiles() ) {
 			InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( xmlFile );
 			getCommonConfiguration().addInputStream( is );
 		}
-		setDialect( Dialect.getDialect() );
 		slaveSessionFactory = getCommonConfiguration().buildSessionFactory();
 	}
 
@@ -154,7 +152,7 @@
 		return new String[] { };
 	}
 
-	protected abstract Class<?>[] getMappings();
+	protected abstract Class<?>[] getAnnotatedClasses();
 
-	protected abstract Class<?>[] getCommonMappings();
+	protected abstract Class<?>[] getCommonAnnotatedClasses();
 }

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/master/JGroupsMasterTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/master/JGroupsMasterTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/master/JGroupsMasterTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -183,7 +183,7 @@
 				"shun=false;print_local_addr=true)";
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				TShirt.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/slave/JGroupsSlaveTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/slave/JGroupsSlaveTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jgroups/slave/JGroupsSlaveTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -118,7 +118,7 @@
 		super.tearDown();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				TShirt.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jms/master/JMSMasterTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jms/master/JMSMasterTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jms/master/JMSMasterTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -213,7 +213,7 @@
 		cfg.setProperty( Environment.WORKER_BACKEND, "lucene" );
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				TShirt.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jms/slave/JMSSlaveTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jms/slave/JMSSlaveTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jms/slave/JMSSlaveTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -171,7 +171,7 @@
 		cfg.setProperty( "hibernate.search.worker.jndi.queue.queue/searchtest", "searchQueue" );
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				TShirt.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/ConfigInfoMBeanTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/ConfigInfoMBeanTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/ConfigInfoMBeanTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -131,6 +131,7 @@
 		if ( mbeanServer.isRegistered( configBeanObjectName ) ) {
 			mbeanServer.unregisterMBean( configBeanObjectName );
 		}
+		setCfg( null ); // force a rebuild of the configuration
 	}
 
 	protected void configure(Configuration cfg) {
@@ -139,7 +140,7 @@
 	}
 
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class<?>[] { Counter.class };
 	}
 }

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/IndexCtrlMBeanTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/IndexCtrlMBeanTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/IndexCtrlMBeanTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -123,6 +123,7 @@
 		if ( mbeanServer.isRegistered( indexBeanObjectName ) ) {
 			mbeanServer.unregisterMBean( indexBeanObjectName );
 		}
+		setCfg( null ); // force a rebuild of the configuration
 	}
 
 	protected void configure(Configuration cfg) {
@@ -141,7 +142,7 @@
 	}
 
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class<?>[] { Counter.class };
 	}
 

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/NoMBeansEnabledTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/NoMBeansEnabledTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/jmx/NoMBeansEnabledTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -69,7 +69,7 @@
 	}
 
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class<?>[] { Counter.class };
 	}
 }
\ No newline at end of file

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/optimizer/OptimizerPerfTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/optimizer/OptimizerPerfTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/optimizer/OptimizerPerfTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -32,6 +32,7 @@
 import org.apache.lucene.queryParser.ParseException;
 import org.apache.lucene.queryParser.QueryParser;
 import org.apache.lucene.search.Query;
+
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
 import org.hibernate.Transaction;
@@ -52,19 +53,19 @@
 		FileHelper.delete( sub );
 		sub.mkdir();
 		File[] files = sub.listFiles();
-		for (File file : files) {
+		for ( File file : files ) {
 			if ( file.isDirectory() ) {
 				FileHelper.delete( file );
 			}
 		}
-		//super.setUp(); //we need a fresh session factory each time for index set up
-		buildSessionFactory( getMappings(), getAnnotatedPackages(), getXmlFiles() );
+		super.setUp();
 	}
 
 	protected void tearDown() throws Exception {
 		super.tearDown();
 		File sub = getBaseIndexDir();
 		FileHelper.delete( sub );
+		setCfg( null ); //we need a fresh session factory each time for index set up
 	}
 
 	public void testConcurrency() throws Exception {
@@ -74,15 +75,17 @@
 		ReverseWork reverseWork = new ReverseWork( getSessions() );
 		long start = System.currentTimeMillis();
 		int iteration = 100;
-		for (int i = 0; i < iteration; i++) {
+		for ( int i = 0; i < iteration; i++ ) {
 			es.execute( work );
 			es.execute( reverseWork );
 		}
 		while ( work.count < iteration - 1 ) {
 			Thread.sleep( 20 );
 		}
-		System.out.println( iteration + " iterations (8 tx per iteration) in " + nThreads + " threads: " + ( System
-				.currentTimeMillis() - start ) );
+		System.out.println(
+				iteration + " iterations (8 tx per iteration) in " + nThreads + " threads: " + ( System
+						.currentTimeMillis() - start )
+		);
 	}
 
 	protected static class Work implements Runnable {
@@ -106,9 +109,9 @@
 
 				s = sf.openSession();
 				tx = s.beginTransaction();
-				w = (Worker) s.get( Worker.class, w.getId() );
+				w = ( Worker ) s.get( Worker.class, w.getId() );
 				w.setName( "Gavin" );
-				c = (Construction) s.get( Construction.class, c.getId() );
+				c = ( Construction ) s.get( Construction.class, c.getId() );
 				c.setName( "W Hotel" );
 				tx.commit();
 				s.close();
@@ -116,7 +119,7 @@
 				try {
 					Thread.sleep( 50 );
 				}
-				catch (InterruptedException e) {
+				catch ( InterruptedException e ) {
 					e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
 				}
 
@@ -128,7 +131,7 @@
 				try {
 					query = parser.parse( "name:Gavin" );
 				}
-				catch (ParseException e) {
+				catch ( ParseException e ) {
 					throw new RuntimeException( e );
 				}
 				boolean results = fts.createFullTextQuery( query ).list().size() > 0;
@@ -139,16 +142,17 @@
 
 				s = sf.openSession();
 				tx = s.beginTransaction();
-				w = (Worker) s.get( Worker.class, w.getId() );
+				w = ( Worker ) s.get( Worker.class, w.getId() );
 				s.delete( w );
-				c = (Construction) s.get( Construction.class, c.getId() );
+				c = ( Construction ) s.get( Construction.class, c.getId() );
 				s.delete( c );
 				tx.commit();
 				s.close();
 				count++;
-			} catch (Throwable t) {
-				t.printStackTrace( );
 			}
+			catch ( Throwable t ) {
+				t.printStackTrace();
+			}
 		}
 	}
 
@@ -172,24 +176,25 @@
 
 				s = sf.openSession();
 				tx = s.beginTransaction();
-				w = (Worker) s.get( Worker.class, w.getId() );
+				w = ( Worker ) s.get( Worker.class, w.getId() );
 				w.setName( "Remi" );
-				c = (Construction) s.get( Construction.class, c.getId() );
+				c = ( Construction ) s.get( Construction.class, c.getId() );
 				c.setName( "Palais des festivals" );
 				tx.commit();
 				s.close();
 
 				s = sf.openSession();
 				tx = s.beginTransaction();
-				w = (Worker) s.get( Worker.class, w.getId() );
+				w = ( Worker ) s.get( Worker.class, w.getId() );
 				s.delete( w );
-				c = (Construction) s.get( Construction.class, c.getId() );
+				c = ( Construction ) s.get( Construction.class, c.getId() );
 				s.delete( c );
 				tx.commit();
 				s.close();
-			} catch (Throwable t) {
-				t.printStackTrace( );
 			}
+			catch ( Throwable t ) {
+				t.printStackTrace();
+			}
 		}
 	}
 
@@ -201,7 +206,7 @@
 		cfg.setProperty( Environment.ANALYZER_CLASS, StopAnalyzer.class.getName() );
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Worker.class,
 				Construction.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/perf/IndexTestDontRun.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/perf/IndexTestDontRun.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/perf/IndexTestDontRun.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -108,7 +108,7 @@
 		return indexsearcher;
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Boat.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/LuceneQuerySortTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/LuceneQuerySortTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/LuceneQuerySortTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -157,7 +157,7 @@
 		s.clear();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Book.class,
 				Author.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/LuceneQueryTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/LuceneQueryTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/LuceneQueryTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -671,7 +671,7 @@
 	}
 
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Book.class,
 				AlternateBook.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/MultiClassesQueryLoaderTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/MultiClassesQueryLoaderTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/MultiClassesQueryLoaderTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -104,7 +104,7 @@
 		s.close();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Author.class,
 				Music.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/ProjectionQueryTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/ProjectionQueryTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/ProjectionQueryTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -486,7 +486,7 @@
 		s.close();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Book.class,
 				Author.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/QueryLoaderTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/QueryLoaderTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/QueryLoaderTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -109,7 +109,7 @@
 		s.close();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Author.class,
 				Music.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/QueryUnindexedEntityTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/QueryUnindexedEntityTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/QueryUnindexedEntityTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -66,7 +66,7 @@
 		s.close();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Person.class,
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/TermVectorTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/TermVectorTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/TermVectorTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -120,7 +120,7 @@
       tx.commit();
    }
 
-   protected Class<?>[] getMappings() {
+   protected Class<?>[] getAnnotatedClasses() {
       return new Class[]{
          ElectricalProperties.class,
          Employee.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/boost/DynamicBoostingTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/boost/DynamicBoostingTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/boost/DynamicBoostingTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -124,7 +124,7 @@
 		return score;
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				DynamicBoostedDescriptionLibrary.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/boost/FieldBoostTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/boost/FieldBoostTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/boost/FieldBoostTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -210,7 +210,7 @@
 		tx.commit();
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				BoostedDescriptionLibrary.class,
 				BoostedFieldDescriptionLibrary.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/criteria/MixedCriteriaTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/criteria/MixedCriteriaTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/criteria/MixedCriteriaTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -141,7 +141,7 @@
 	}
 
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				AbstractCar.class, CombiCar.class, SportCar.class, Bike.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/dsl/DSLTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/dsl/DSLTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/dsl/DSLTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -562,7 +562,7 @@
 	}
 
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class<?>[] {
 				Month.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/explain/ExplanationTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/explain/ExplanationTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/query/explain/ExplanationTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -69,7 +69,7 @@
 		s.close();
 
 	}
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Dvd.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/ReaderPerfTestCase.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/ReaderPerfTestCase.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/ReaderPerfTestCase.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -65,12 +65,11 @@
 				FileHelper.delete( file );
 			}
 		}
-		//super.setUp(); //we need a fresh session factory each time for index set up
-		buildSessionFactory( getMappings(), getAnnotatedPackages(), getXmlFiles() );
+		super.setUp();
 	}
 
 	@SuppressWarnings("unchecked")
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Detective.class,
 				Suspect.class
@@ -84,6 +83,7 @@
 		}
 		File sub = getBaseIndexDir();
 		FileHelper.delete( sub );
+		setCfg( null );  //we need a fresh session factory each time for index set up
 	}
 
 	public boolean insert = true;
@@ -136,7 +136,7 @@
 		private Random random = new Random();
 		private SessionFactory sf;
 //		public volatile int count = 0;
-		public AtomicInteger count = new AtomicInteger(0);
+		public AtomicInteger count = new AtomicInteger( 0 );
 
 		public Work(SessionFactory sf) {
 			this.sf = sf;
@@ -148,9 +148,11 @@
 			try {
 				s = sf.openSession();
 				tx = s.beginTransaction();
-				QueryParser parser = new MultiFieldQueryParser( getTargetLuceneVersion(),
+				QueryParser parser = new MultiFieldQueryParser(
+						getTargetLuceneVersion(),
 						new String[] { "name", "physicalDescription", "suspectCharge" },
-						SearchTestCase.standardAnalyzer );
+						SearchTestCase.standardAnalyzer
+				);
 				FullTextQuery query = getQuery( "John Doe", parser, s );
 				assertTrue( query.getResultSize() != 0 );
 
@@ -175,28 +177,37 @@
 				List result = query.list();
 				Object object = result.get( 0 );
 				if ( insert && object instanceof Detective ) {
-					Detective detective = (Detective) object;
-					detective.setPhysicalDescription( detective.getPhysicalDescription() + " Eye"
-							+ firstResult );
+					Detective detective = ( Detective ) object;
+					detective.setPhysicalDescription(
+							detective.getPhysicalDescription() + " Eye"
+									+ firstResult
+					);
 				}
 				else if ( insert && object instanceof Suspect ) {
-					Suspect suspect = (Suspect) object;
-					suspect.setPhysicalDescription( suspect.getPhysicalDescription() + " Eye"
-							+ firstResult );
+					Suspect suspect = ( Suspect ) object;
+					suspect.setPhysicalDescription(
+							suspect.getPhysicalDescription() + " Eye"
+									+ firstResult
+					);
 				}
 				tx.commit();
 				s.close();
 				// count++;
-			} catch ( Throwable t ) {
+			}
+			catch ( Throwable t ) {
 				t.printStackTrace();
-			} finally {
+			}
+			finally {
 				count.incrementAndGet();
 				try {
-					if ( tx != null && tx.isActive() )
+					if ( tx != null && tx.isActive() ) {
 						tx.rollback();
-					if ( s != null && s.isOpen() )
+					}
+					if ( s != null && s.isOpen() ) {
 						s.close();
-				} catch ( Throwable t ) {
+					}
+				}
+				catch ( Throwable t ) {
 					t.printStackTrace();
 				}
 			}
@@ -225,7 +236,8 @@
 		public void run() {
 			Session s = sf.openSession();
 			Transaction tx = s.beginTransaction();
-			QueryParser parser = new MultiFieldQueryParser( getTargetLuceneVersion(), 
+			QueryParser parser = new MultiFieldQueryParser(
+					getTargetLuceneVersion(),
 					new String[] { "name", "physicalDescription", "suspectCharge" },
 					SearchTestCase.standardAnalyzer
 			);

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/functionality/FilterOnDirectoryTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/functionality/FilterOnDirectoryTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/functionality/FilterOnDirectoryTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -84,7 +84,7 @@
 		cfg.setProperty( Environment.READER_STRATEGY,  SharingBufferReaderProvider.class.getName() );
 	}
 	
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Detective.class,
 				Suspect.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/performance/ReaderPerformance.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/performance/ReaderPerformance.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/reader/performance/ReaderPerformance.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -90,7 +90,7 @@
 	}
 
 	@SuppressWarnings("unchecked")
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Detective.class,
 				Suspect.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/MassIndexTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/MassIndexTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/MassIndexTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -217,7 +217,7 @@
 		cfg.setProperty( Environment.ANALYZER_CLASS, StopAnalyzer.class.getName() );
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Email.class,
 				Entite.class,

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/MassIndexUsingManualFlushTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/MassIndexUsingManualFlushTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/MassIndexUsingManualFlushTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -89,7 +89,7 @@
 		cfg.setProperty( Environment.ANALYZER_CLASS, StopAnalyzer.class.getName() );
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Email.class,
 				Domain.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/OptimizeTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/OptimizeTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/OptimizeTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -28,6 +28,7 @@
 
 import org.apache.lucene.analysis.StopAnalyzer;
 import org.apache.lucene.queryParser.QueryParser;
+
 import org.hibernate.Transaction;
 import org.hibernate.search.Environment;
 import org.hibernate.search.FullTextSession;
@@ -46,9 +47,9 @@
 		FullTextSession s = Search.getFullTextSession( openSession() );
 		Transaction tx = s.beginTransaction();
 		int loop = 2000;
-		for (int i = 0; i < loop; i++) {
+		for ( int i = 0; i < loop; i++ ) {
 			Email email = new Email();
-			email.setId( (long) i + 1 );
+			email.setId( ( long ) i + 1 );
 			email.setTitle( "JBoss World Berlin" );
 			email.setBody( "Meet the guys who wrote the software" );
 			s.persist( email );
@@ -85,23 +86,23 @@
 		File sub = getBaseIndexDir();
 		sub.mkdir();
 		File[] files = sub.listFiles();
-		for (File file : files) {
+		for ( File file : files ) {
 			if ( file.isDirectory() ) {
 				FileHelper.delete( file );
 			}
 		}
-		//super.setUp(); //we need a fresh session factory each time for index set up
-		buildSessionFactory( getMappings(), getAnnotatedPackages(), getXmlFiles() );
+		super.setUp();
 	}
 
 	protected void tearDown() throws Exception {
 		super.tearDown();
 		File sub = getBaseIndexDir();
 		FileHelper.delete( sub );
+		setCfg( null ); //we need a fresh session factory each time for index set up
 	}
 
 	@SuppressWarnings("unchecked")
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Email.class,
 				Domain.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/SessionTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/SessionTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/session/SessionTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -91,7 +91,7 @@
 		}
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Email.class,
 				Domain.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/shards/DirectoryProviderForQueryTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/shards/DirectoryProviderForQueryTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/shards/DirectoryProviderForQueryTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -87,7 +87,7 @@
 	}
 
 	@SuppressWarnings("unchecked")
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Email.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/shards/ShardsTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/shards/ShardsTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/shards/ShardsTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -27,25 +27,26 @@
 import java.io.File;
 import java.util.List;
 
-import org.hibernate.search.test.SearchTestCase;
-import org.hibernate.search.util.FileHelper;
-import org.hibernate.search.store.RAMDirectoryProvider;
-import org.hibernate.search.store.FSDirectoryProvider;
-import org.hibernate.search.store.IdHashShardingStrategy;
-import org.hibernate.search.store.DirectoryProvider;
-import org.hibernate.search.Environment;
-import org.hibernate.search.FullTextSession;
-import org.hibernate.search.Search;
-import org.hibernate.cfg.Configuration;
-import org.hibernate.Session;
-import org.hibernate.Transaction;
 import org.apache.lucene.analysis.StopAnalyzer;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.index.TermDocs;
 import org.apache.lucene.queryParser.QueryParser;
 import org.apache.lucene.store.FSDirectory;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.TermDocs;
-import org.apache.lucene.index.Term;
 
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.search.Environment;
+import org.hibernate.search.FullTextSession;
+import org.hibernate.search.Search;
+import org.hibernate.search.store.DirectoryProvider;
+import org.hibernate.search.store.FSDirectoryProvider;
+import org.hibernate.search.store.IdHashShardingStrategy;
+import org.hibernate.search.store.RAMDirectoryProvider;
+import org.hibernate.search.test.SearchTestCase;
+import org.hibernate.search.util.FileHelper;
+
 /**
  * @author Emmanuel Bernard
  */
@@ -66,13 +67,13 @@
 	public void testIdShardingStrategy() {
 		DirectoryProvider[] dps = new DirectoryProvider[] { new RAMDirectoryProvider(), new RAMDirectoryProvider() };
 		IdHashShardingStrategy shardingStrategy = new IdHashShardingStrategy();
-		shardingStrategy.initialize( null, dps);
-		assertTrue( dps[1] == shardingStrategy.getDirectoryProviderForAddition( Animal.class, 1, "1", null) );
-		assertTrue( dps[0] == shardingStrategy.getDirectoryProviderForAddition( Animal.class, 2, "2", null) );
+		shardingStrategy.initialize( null, dps );
+		assertTrue( dps[1] == shardingStrategy.getDirectoryProviderForAddition( Animal.class, 1, "1", null ) );
+		assertTrue( dps[0] == shardingStrategy.getDirectoryProviderForAddition( Animal.class, 2, "2", null ) );
 	}
 
 	public void testBehavior() throws Exception {
-		Session s = openSession( );
+		Session s = openSession();
 		Transaction tx = s.beginTransaction();
 		Animal a = new Animal();
 		a.setId( 1 );
@@ -87,10 +88,10 @@
 		s.clear();
 
 		tx = s.beginTransaction();
-		a = (Animal) s.get(Animal.class, 1);
+		a = ( Animal ) s.get( Animal.class, 1 );
 		a.setName( "Mouse" );
 		Furniture fur = new Furniture();
-		fur.setColor( "dark blue");
+		fur.setColor( "dark blue" );
 		s.persist( fur );
 		tx.commit();
 
@@ -107,13 +108,15 @@
 		assertEquals( "Mixing shared and non sharded properties fails", 3, results.size() );
 		results = fts.createFullTextQuery( parser.parse( "name:mouse OR name:bear OR color:blue" ) ).list();
 		assertEquals( "Mixing shared and non sharded properties fails with indexreader reuse", 3, results.size() );
-		for (Object o : results) s.delete( o );
+		for ( Object o : results ) {
+			s.delete( o );
+		}
 		tx.commit();
 		s.close();
 	}
 
 	public void testInternalSharding() throws Exception {
-		Session s = openSession( );
+		Session s = openSession();
 		Transaction tx = s.beginTransaction();
 		Animal a = new Animal();
 		a.setId( 1 );
@@ -141,7 +144,7 @@
 		finally {
 			animal00Directory.close();
 		}
-		
+
 		FSDirectory animal01Directory = FSDirectory.open( new File( getBaseIndexDir(), "Animal.1" ) );
 		try {
 			IndexReader reader = IndexReader.open( animal01Directory );
@@ -158,7 +161,7 @@
 		}
 
 		tx = s.beginTransaction();
-		a = (Animal) s.get(Animal.class, 1);
+		a = ( Animal ) s.get( Animal.class, 1 );
 		a.setName( "Mouse" );
 		tx.commit();
 
@@ -189,7 +192,9 @@
 
 		List results = fts.createFullTextQuery( parser.parse( "name:mouse OR name:bear" ) ).list();
 		assertEquals( "Either double insert, single update, or query fails with shards", 2, results.size() );
-		for (Object o : results) s.delete( o );
+		for ( Object o : results ) {
+			s.delete( o );
+		}
 		tx.commit();
 		s.close();
 	}
@@ -198,23 +203,23 @@
 		File sub = getBaseIndexDir();
 		sub.mkdir();
 		File[] files = sub.listFiles();
-		for (File file : files) {
+		for ( File file : files ) {
 			if ( file.isDirectory() ) {
 				FileHelper.delete( file );
 			}
 		}
-		//super.setUp(); //we need a fresh session factory each time for index set up
-		buildSessionFactory( getMappings(), getAnnotatedPackages(), getXmlFiles() );
+		super.setUp();
 	}
 
 	protected void tearDown() throws Exception {
 		super.tearDown();
 		File sub = getBaseIndexDir();
 		FileHelper.delete( sub );
+		setCfg( null );  //we need a fresh session factory each time for index set up
 	}
 
 	@SuppressWarnings("unchecked")
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Animal.class,
 				Furniture.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/similarity/SimilarityTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/similarity/SimilarityTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/similarity/SimilarityTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -80,7 +80,7 @@
 
 	}
 	
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Trash.class,
 				Can.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/ConcurrencyTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/ConcurrencyTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/ConcurrencyTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -69,7 +69,7 @@
 
 	}
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Drink.class,
 				Food.class

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/WorkerTestCase.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/WorkerTestCase.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/WorkerTestCase.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -33,6 +33,7 @@
 import org.apache.lucene.queryParser.ParseException;
 import org.apache.lucene.queryParser.QueryParser;
 import org.apache.lucene.search.Query;
+
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
 import org.hibernate.Transaction;
@@ -57,14 +58,14 @@
 				FileHelper.delete( file );
 			}
 		}
-		//super.setUp(); //we need a fresh session factory each time for index set up
-		buildSessionFactory( getMappings(), getAnnotatedPackages(), getXmlFiles() );
+		super.setUp();
 	}
 
 	protected void tearDown() throws Exception {
 		super.tearDown();
 		File sub = getBaseIndexDir();
 		FileHelper.delete( sub );
+		setCfg( null ); //we need a fresh session factory each time for index set up
 	}
 
 	public void testConcurrency() throws Exception {
@@ -82,14 +83,16 @@
 			Thread.sleep( 20 );
 		}
 		getSessions().close();
-		System.out.println( iteration + " iterations (8 tx per iteration) in " + nThreads + " threads: " + ( System
-				.currentTimeMillis() - start ) );
+		System.out.println(
+				iteration + " iterations (8 tx per iteration) in " + nThreads + " threads: " + ( System
+						.currentTimeMillis() - start )
+		);
 	}
 
 	protected static class Work implements Runnable {
 		private SessionFactory sf;
 		//public volatile int count = 0;
-		public AtomicInteger count = new AtomicInteger(0);
+		public AtomicInteger count = new AtomicInteger( 0 );
 
 		public Work(SessionFactory sf) {
 			this.sf = sf;
@@ -112,9 +115,9 @@
 
 				s = sf.openSession();
 				tx = s.beginTransaction();
-				ee = (Employee) s.get( Employee.class, ee.getId() );
+				ee = ( Employee ) s.get( Employee.class, ee.getId() );
 				ee.setName( "Emmanuel2" );
-				er = (Employer) s.get( Employer.class, er.getId() );
+				er = ( Employer ) s.get( Employer.class, er.getId() );
 				er.setName( "RH2" );
 				tx.commit();
 				s.close();
@@ -130,12 +133,15 @@
 				s = sf.openSession();
 				tx = s.beginTransaction();
 				FullTextSession fts = new FullTextSessionImpl( s );
-				QueryParser parser = new QueryParser( getTargetLuceneVersion(), "id",
-						SearchTestCase.stopAnalyzer );
+				QueryParser parser = new QueryParser(
+						getTargetLuceneVersion(), "id",
+						SearchTestCase.stopAnalyzer
+				);
 				Query query;
 				try {
 					query = parser.parse( "name:emmanuel2" );
-				} catch ( ParseException e ) {
+				}
+				catch ( ParseException e ) {
 					throw new RuntimeException( e );
 				}
 				boolean results = fts.createFullTextQuery( query ).list().size() > 0;
@@ -147,23 +153,28 @@
 
 				s = sf.openSession();
 				tx = s.beginTransaction();
-				ee = (Employee) s.get( Employee.class, ee.getId() );
+				ee = ( Employee ) s.get( Employee.class, ee.getId() );
 				s.delete( ee );
-				er = (Employer) s.get( Employer.class, er.getId() );
+				er = ( Employer ) s.get( Employer.class, er.getId() );
 				s.delete( er );
 				tx.commit();
 				s.close();
 				// count++;
-			} catch ( Throwable t ) {
+			}
+			catch ( Throwable t ) {
 				t.printStackTrace();
-			} finally {
+			}
+			finally {
 				count.incrementAndGet();
 				try {
-					if ( tx != null && tx.isActive() )
+					if ( tx != null && tx.isActive() ) {
 						tx.rollback();
-					if ( s != null && s.isOpen() )
+					}
+					if ( s != null && s.isOpen() ) {
 						s.close();
-				} catch ( Throwable t ) {
+					}
+				}
+				catch ( Throwable t ) {
 					t.printStackTrace();
 				}
 			}
@@ -191,18 +202,18 @@
 
 			s = sf.openSession();
 			tx = s.beginTransaction();
-			er = (Employer) s.get( Employer.class, er.getId() );
+			er = ( Employer ) s.get( Employer.class, er.getId() );
 			er.setName( "RH2" );
-			ee = (Employee) s.get( Employee.class, ee.getId() );
+			ee = ( Employee ) s.get( Employee.class, ee.getId() );
 			ee.setName( "Emmanuel2" );
 			tx.commit();
 			s.close();
 
 			s = sf.openSession();
 			tx = s.beginTransaction();
-			er = (Employer) s.get( Employer.class, er.getId() );
+			er = ( Employer ) s.get( Employer.class, er.getId() );
 			s.delete( er );
-			ee = (Employee) s.get( Employee.class, ee.getId() );
+			ee = ( Employee ) s.get( Employee.class, ee.getId() );
 			s.delete( ee );
 			tx.commit();
 			s.close();
@@ -220,8 +231,8 @@
 	}
 
 	@SuppressWarnings("unchecked")
-	protected Class<?>[] getMappings() {
-		return new Class[]{
+	protected Class<?>[] getAnnotatedClasses() {
+		return new Class[] {
 				Employee.class,
 				Employer.class
 		};

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/duplication/WorkDuplicationTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/duplication/WorkDuplicationTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/duplication/WorkDuplicationTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -153,7 +153,7 @@
 	}	
 
 
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] { Person.class, EmailAddress.class, SpecialPerson.class };
 	}
 }

Modified: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/duplication/WorkSequencesTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/duplication/WorkSequencesTest.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/worker/duplication/WorkSequencesTest.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -139,7 +139,7 @@
 	}
 	
 	@Override
-	protected Class<?>[] getMappings() {
+	protected Class<?>[] getAnnotatedClasses() {
 		return new Class[] {
 				Domain.class
 		};

Modified: search/trunk/hibernate-search-testing/pom.xml
===================================================================
--- search/trunk/hibernate-search-testing/pom.xml	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search-testing/pom.xml	2010-07-05 16:52:21 UTC (rev 19898)
@@ -46,8 +46,13 @@
         <dependency>
             <groupId>org.hibernate</groupId>
             <artifactId>hibernate-entitymanager</artifactId>
-        </dependency>     
+        </dependency>
         <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-testing</artifactId>
+            <version>${hibernateVersion}</version>
+        </dependency>        
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
         </dependency>        

Modified: search/trunk/hibernate-search-testing/src/main/java/org/hibernate/search/test/SearchTestCase.java
===================================================================
--- search/trunk/hibernate-search-testing/src/main/java/org/hibernate/search/test/SearchTestCase.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search-testing/src/main/java/org/hibernate/search/test/SearchTestCase.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -1,21 +1,20 @@
-/* $Id$
- * 
+/*
  * Hibernate, Relational Persistence for Idiomatic Java
- * 
- * Copyright (c) 2009, Red Hat, Inc. and/or its affiliates or third-party contributors as
+ *
+ * Copyright (c) 2010, Red Hat, Inc. and/or its affiliates or third-party contributors as
  * indicated by the @author tags or express copyright attribution
  * statements applied by the authors.  All third-party contributions are
  * distributed under license by Red Hat, Inc.
- * 
+ *
  * This copyrighted material is made available to anyone wishing to use, modify,
  * copy, or redistribute it subject to the terms and conditions of the GNU
  * Lesser General Public License, as published by the Free Software Foundation.
- * 
+ *
  * 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 Lesser General Public License
  * for more details.
- * 
+ *
  * You should have received a copy of the GNU Lesser General Public License
  * along with this distribution; if not, write to:
  * Free Software Foundation, Inc.
@@ -38,39 +37,44 @@
 import org.slf4j.Logger;
 
 import org.hibernate.HibernateException;
+import org.hibernate.Interceptor;
 import org.hibernate.Session;
+import org.hibernate.SessionFactory;
 import org.hibernate.Transaction;
 import org.hibernate.cfg.AnnotationConfiguration;
 import org.hibernate.cfg.Configuration;
-import org.hibernate.dialect.Dialect;
 import org.hibernate.event.PostInsertEventListener;
 import org.hibernate.impl.SessionFactoryImpl;
-import org.hibernate.search.Environment;
 import org.hibernate.search.FullTextSession;
 import org.hibernate.search.Search;
 import org.hibernate.search.SearchFactory;
 import org.hibernate.search.annotations.Indexed;
+import org.hibernate.search.engine.SearchFactoryImplementor;
 import org.hibernate.search.event.FullTextIndexEventListener;
 import org.hibernate.search.store.RAMDirectoryProvider;
-import org.hibernate.tool.hbm2ddl.SchemaExport;
+import org.hibernate.test.annotations.HibernateTestCase;
 
 /**
  * Base class for Hibernate Search unit tests.
  *
  * @author Emmanuel Bernard
+ * @author Hardy Ferentschik
  */
-public abstract class SearchTestCase extends TestCase {
+public abstract class SearchTestCase extends HibernateTestCase {
 
 	private static final Logger log = org.hibernate.search.util.LoggerFactory.make();
 
-	public static Analyzer standardAnalyzer = new StandardAnalyzer( getTargetLuceneVersion() );
-	public static Analyzer stopAnalyzer = new StopAnalyzer( getTargetLuceneVersion() );
-	public static Analyzer simpleAnalyzer = new SimpleAnalyzer();
-	public static Analyzer keywordAnalyzer = new KeywordAnalyzer();
+	public static final Analyzer standardAnalyzer = new StandardAnalyzer( getTargetLuceneVersion() );
+	public static final Analyzer stopAnalyzer = new StopAnalyzer( getTargetLuceneVersion() );
+	public static final Analyzer simpleAnalyzer = new SimpleAnalyzer();
+	public static final Analyzer keywordAnalyzer = new KeywordAnalyzer();
 
+	protected static SessionFactory sessions;
+	protected Session session;
+
 	private static File indexDir;
 
-	private SearchFactory searchFactory;
+	private SearchFactoryImplementor searchFactory;
 
 	static {
 		String buildDir = System.getProperty( "build.dir" );
@@ -82,17 +86,80 @@
 		log.debug( "Using {} as index directory.", indexDir.getAbsolutePath() );
 	}
 
-	protected void setUp() throws Exception {
-		buildSessionFactory( getMappings(), getAnnotatedPackages(), getXmlFiles() );
-		ensureIndexesAreEmpty();
+	public SearchTestCase() {
+		super();
 	}
 
-	protected void tearDown() throws Exception {
-		SchemaExport export = new SchemaExport( cfg );
-		export.drop( false, true );
-		searchFactory = null;
+	public SearchTestCase(String x) {
+		super( x );
 	}
 
+	@Override
+	protected void handleUnclosedResources() {
+		if ( session != null && session.isOpen() ) {
+			if ( session.isConnected() ) {
+				session.doWork( new RollbackWork() );
+			}
+			session.close();
+			session = null;
+			fail( "unclosed session" );
+		}
+		else {
+			session = null;
+		}
+	}
+
+	@Override
+	protected void closeResources() {
+		try {
+			if ( session != null && session.isOpen() ) {
+				if ( session.isConnected() ) {
+					session.doWork( new RollbackWork() );
+				}
+				session.close();
+			}
+		}
+		catch ( Exception ignore ) {
+		}
+		try {
+			if ( sessions != null ) {
+				sessions.close();
+				sessions = null;
+			}
+		}
+		catch ( Exception ignore ) {
+		}
+	}
+
+	public Session openSession() throws HibernateException {
+		session = getSessions().openSession();
+		return session;
+	}
+
+	public Session openSession(Interceptor interceptor) throws HibernateException {
+		session = getSessions().openSession( interceptor );
+		return session;
+	}
+
+	protected void setSessions(SessionFactory sessions) {
+		SearchTestCase.sessions = sessions;
+	}
+
+	protected SessionFactory getSessions() {
+		return sessions;
+	}
+
+	protected void configure(Configuration cfg) {
+		super.configure( cfg );
+
+		cfg.setProperty( "hibernate.search.default.directory_provider", RAMDirectoryProvider.class.getName() );
+		cfg.setProperty( "hibernate.search.default.indexBase", indexDir.getAbsolutePath() );
+		cfg.setProperty( org.hibernate.search.Environment.ANALYZER_CLASS, StopAnalyzer.class.getName() );
+
+		cfg.setProperty( "hibernate.search.default.transaction.merge_factor", "100" );
+		cfg.setProperty( "hibernate.search.default.batch.max_buffered_docs", "1000" );
+	}
+
 	protected Directory getDirectory(Class<?> clazz) {
 		return getLuceneEventListener().getSearchFactoryImplementor().getDirectoryProviders( clazz )[0].getDirectory();
 	}
@@ -114,6 +181,11 @@
 		return listener;
 	}
 
+	protected void setUp() throws Exception {
+		super.setUp();
+		ensureIndexesAreEmpty();
+	}
+
 	protected void ensureIndexesAreEmpty() {
 		if ( "jms".equals( getCfg().getProperty( "hibernate.search.worker.backend" ) ) ) {
 			log.debug( "JMS based test. Skipping index emptying" );
@@ -122,7 +194,7 @@
 		FullTextSession s = Search.getFullTextSession( openSession() );
 		Transaction tx;
 		tx = s.beginTransaction();
-		for ( Class<?> clazz : getMappings() ) {
+		for ( Class<?> clazz : getAnnotatedClasses() ) {
 			if ( clazz.getAnnotation( Indexed.class ) != null ) {
 				s.purgeAll( clazz );
 			}
@@ -135,25 +207,17 @@
 		if ( searchFactory == null ) {
 			Session session = openSession();
 			FullTextSession fullTextSession = Search.getFullTextSession( session );
-			searchFactory = fullTextSession.getSearchFactory();
+			searchFactory = ( SearchFactoryImplementor ) fullTextSession.getSearchFactory();
 			fullTextSession.close();
 		}
 		return searchFactory;
 	}
 
-	protected void configure(Configuration cfg) {
-		cfg.setProperty( "hibernate.search.default.directory_provider", RAMDirectoryProvider.class.getName() );
-		cfg.setProperty( "hibernate.search.default.indexBase", indexDir.getAbsolutePath() );
-		cfg.setProperty( Environment.ANALYZER_CLASS, StopAnalyzer.class.getName() );
-		cfg.setProperty( "hibernate.search.default.transaction.merge_factor", "100" );
-		cfg.setProperty( "hibernate.search.default.batch.max_buffered_docs", "1000" );
-	}
-
 	protected File getBaseIndexDir() {
 		return indexDir;
 	}
 
-	protected void buildSessionFactory(Class<?>[] classes, String[] packages, String[] xmlFiles) throws Exception {
+	protected void buildConfiguration() throws Exception {
 		if ( getSessions() != null ) {
 			getSessions().close();
 		}
@@ -163,17 +227,16 @@
 			if ( recreateSchema() ) {
 				cfg.setProperty( org.hibernate.cfg.Environment.HBM2DDL_AUTO, "create-drop" );
 			}
-			for ( String aPackage : packages ) {
+			for ( String aPackage : getAnnotatedPackages() ) {
 				( ( AnnotationConfiguration ) getCfg() ).addPackage( aPackage );
 			}
-			for ( Class<?> aClass : classes ) {
+			for ( Class<?> aClass : getAnnotatedClasses() ) {
 				( ( AnnotationConfiguration ) getCfg() ).addAnnotatedClass( aClass );
 			}
-			for ( String xmlFile : xmlFiles ) {
+			for ( String xmlFile : getXmlFiles() ) {
 				InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( xmlFile );
 				getCfg().addInputStream( is );
 			}
-			setDialect( Dialect.getDialect() );
 			setSessions( getCfg().buildSessionFactory( /*new TestInterceptor()*/ ) );
 		}
 		catch ( Exception e ) {
@@ -182,16 +245,10 @@
 		}
 	}
 
-	protected abstract Class<?>[] getMappings();
-
 	protected String[] getAnnotatedPackages() {
 		return new String[] { };
 	}
 
-	protected static File getIndexDir() {
-		return indexDir;
-	}
-
 	public static Version getTargetLuceneVersion() {
 		return Version.LUCENE_29;
 	}
@@ -215,5 +272,4 @@
 				.getParentFile()  // target/classes/
 				.getParentFile(); // target
 	}
-
 }

Deleted: search/trunk/hibernate-search-testing/src/main/java/org/hibernate/search/test/TestCase.java
===================================================================
--- search/trunk/hibernate-search-testing/src/main/java/org/hibernate/search/test/TestCase.java	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/hibernate-search-testing/src/main/java/org/hibernate/search/test/TestCase.java	2010-07-05 16:52:21 UTC (rev 19898)
@@ -1,189 +0,0 @@
-/* $Id$
- * 
- * Hibernate, Relational Persistence for Idiomatic Java
- * 
- * Copyright (c) 2009, Red Hat, Inc. and/or its affiliates or third-party contributors as
- * indicated by the @author tags or express copyright attribution
- * statements applied by the authors.  All third-party contributions are
- * distributed under license by Red Hat, Inc.
- * 
- * This copyrighted material is made available to anyone wishing to use, modify,
- * copy, or redistribute it subject to the terms and conditions of the GNU
- * Lesser General Public License, as published by the Free Software Foundation.
- * 
- * 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 Lesser General Public License
- * for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this distribution; if not, write to:
- * Free Software Foundation, Inc.
- * 51 Franklin Street, Fifth Floor
- * Boston, MA  02110-1301  USA
- */
-package org.hibernate.search.test;
-
-import java.io.InputStream;
-
-import org.apache.lucene.analysis.StopAnalyzer;
-
-import org.hibernate.HibernateException;
-import org.hibernate.Interceptor;
-import org.hibernate.Session;
-import org.hibernate.SessionFactory;
-import org.hibernate.search.store.RAMDirectoryProvider;
-import org.hibernate.cfg.Configuration;
-import org.hibernate.cfg.Environment;
-import org.hibernate.dialect.Dialect;
-import org.hibernate.event.FlushEventListener;
-import org.hibernate.event.def.DefaultFlushEventListener;
-import org.hibernate.search.event.FullTextIndexEventListener;
-
-/**
- * A modified base class for tests without annotations.
- *
- * @author Hardy Ferentschik
- */
-public abstract class TestCase extends junit.framework.TestCase {
-
-	protected static SessionFactory sessions;
-	protected static Configuration cfg;
-	protected static Dialect dialect;
-	protected static Class lastTestClass;
-	protected Session session;
-
-	public TestCase() {
-		super();
-	}
-
-	public TestCase(String x) {
-		super( x );
-	}
-
-	protected void buildSessionFactory(String[] xmlFiles) throws Exception {
-
-		if ( getSessions() != null ) {
-			getSessions().close();
-		}
-		try {
-			setCfg( new Configuration() );
-			configure( cfg );
-			if ( recreateSchema() ) {
-				cfg.setProperty( Environment.HBM2DDL_AUTO, "create-drop" );
-			}
-			for ( String xmlFile : xmlFiles ) {
-				InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( xmlFile );
-				getCfg().addInputStream( is );
-			}
-			setDialect( Dialect.getDialect() );
-			setSessions( getCfg().buildSessionFactory() );
-		}
-		catch ( Exception e ) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
-
-	protected void setUp() throws Exception {
-		if ( getSessions() == null || getSessions().isClosed() || lastTestClass != getClass() ) {
-			buildSessionFactory( getXmlFiles() );
-			lastTestClass = getClass();
-		}
-	}
-
-	protected void runTest() throws Throwable {
-		try {
-			super.runTest();
-			if ( session != null && session.isOpen() ) {
-				if ( session.isConnected() ) {
-					session.connection().rollback();
-				}
-				session.close();
-				session = null;
-				fail( "unclosed session" );
-			}
-			else {
-				session = null;
-			}
-		}
-		catch ( Throwable e ) {
-			try {
-				if ( session != null && session.isOpen() ) {
-					if ( session.isConnected() ) {
-						session.connection().rollback();
-					}
-					session.close();
-				}
-			}
-			catch ( Exception ignore ) {
-			}
-			try {
-				if ( sessions != null ) {
-					sessions.close();
-					sessions = null;
-				}
-			}
-			catch ( Exception ignore ) {
-			}
-			throw e;
-		}
-	}
-
-	public Session openSession() throws HibernateException {
-		session = getSessions().openSession();
-		return session;
-	}
-
-	public Session openSession(Interceptor interceptor) throws HibernateException {
-		session = getSessions().openSession( interceptor );
-		return session;
-	}
-
-	protected String[] getXmlFiles() {
-		return new String[] { };
-	}
-
-	protected void setSessions(SessionFactory sessions) {
-		TestCase.sessions = sessions;
-	}
-
-	protected SessionFactory getSessions() {
-		return sessions;
-	}
-
-	protected void setDialect(Dialect dialect) {
-		TestCase.dialect = dialect;
-	}
-
-	protected Dialect getDialect() {
-		return dialect;
-	}
-
-	protected static void setCfg(Configuration cfg) {
-		TestCase.cfg = cfg;
-	}
-
-	protected static Configuration getCfg() {
-		return cfg;
-	}
-
-	protected void configure(Configuration cfg) {
-		//needs to register all event listeners:
-		cfg.setListener( "post-update", "org.hibernate.search.event.FullTextIndexEventListener" );
-		cfg.setListener( "post-insert", "org.hibernate.search.event.FullTextIndexEventListener" );
-		cfg.setListener( "post-delete", "org.hibernate.search.event.FullTextIndexEventListener" );
-		cfg.setListener( "post-collection-recreate", "org.hibernate.search.event.FullTextIndexEventListener" );
-		cfg.setListener( "post-collection-remove", "org.hibernate.search.event.FullTextIndexEventListener" );
-		cfg.setListener( "post-collection-update", "org.hibernate.search.event.FullTextIndexEventListener" );
-		
-		cfg.setListeners( "flush", new FlushEventListener[]{new DefaultFlushEventListener(), new FullTextIndexEventListener()} );
-
-		cfg.setProperty( "hibernate.search.default.directory_provider", RAMDirectoryProvider.class.getName() );
-		cfg.setProperty( org.hibernate.search.Environment.ANALYZER_CLASS, StopAnalyzer.class.getName() );
-	}
-
-	protected boolean recreateSchema() {
-		return true;
-	}
-}

Modified: search/trunk/pom.xml
===================================================================
--- search/trunk/pom.xml	2010-07-05 14:46:01 UTC (rev 19897)
+++ search/trunk/pom.xml	2010-07-05 16:52:21 UTC (rev 19898)
@@ -195,6 +195,11 @@
                 <version>${hibernateVersion}</version>
             </dependency>
             <dependency>
+                <groupId>org.hibernate</groupId>
+                <artifactId>hibernate-testing</artifactId>
+                <version>${hibernateVersion}</version>
+            </dependency>            
+            <dependency>
                 <groupId>org.apache.solr</groupId>
                 <artifactId>solr-core</artifactId>
                 <version>1.4.0</version>



More information about the hibernate-commits mailing list