[hibernate-commits] Hibernate SVN: r18479 - in search/trunk/src: test/java/org/hibernate/search/test/directoryProvider and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Sat Jan 9 10:23:37 EST 2010


Author: sannegrinovero
Date: 2010-01-09 10:23:37 -0500 (Sat, 09 Jan 2010)
New Revision: 18479

Modified:
   search/trunk/src/main/java/org/hibernate/search/store/DirectoryProviderHelper.java
   search/trunk/src/test/java/org/hibernate/search/test/directoryProvider/CustomLockProviderTest.java
Log:
HSEARCH-441 Custom LockFactory loading should use PluginLoader

Modified: search/trunk/src/main/java/org/hibernate/search/store/DirectoryProviderHelper.java
===================================================================
--- search/trunk/src/main/java/org/hibernate/search/store/DirectoryProviderHelper.java	2010-01-09 15:23:03 UTC (rev 18478)
+++ search/trunk/src/main/java/org/hibernate/search/store/DirectoryProviderHelper.java	2010-01-09 15:23:37 UTC (rev 18479)
@@ -43,7 +43,7 @@
 import org.hibernate.search.SearchException;
 import org.hibernate.search.util.FileHelper;
 import org.hibernate.search.util.LoggerFactory;
-import org.hibernate.util.ReflectHelper;
+import org.hibernate.search.util.PluginLoader;
 
 /**
  * @author Emmanuel Bernard
@@ -161,26 +161,8 @@
 			return new NoLockFactory();
 		}
 		else {
-			LockFactoryFactory lockFactoryFactory;
-			try {
-				Class lockFactoryClass = ReflectHelper.classForName( lockFactoryName, dirConfiguration.getClass() );
-				lockFactoryFactory = (LockFactoryFactory) lockFactoryClass.newInstance();
-			}
-			catch (ClassNotFoundException e) {
-				throw new SearchException( "Unable to find LockFactoryFactory class " + lockFactoryName, e );
-			}
-			catch (IllegalAccessException e) {
-				throw new SearchException( "Unable to create instance of LockFactoryFactory class " + lockFactoryName
-						+ " Be sure to have a no-arg constructor", e );
-			}
-			catch (InstantiationException e) {
-				throw new SearchException( "Unable to create instance of LockFactoryFactory class " + lockFactoryName
-						+ " Be sure to have a no-arg constructor", e );
-			}
-			catch (ClassCastException e) {
-				throw new SearchException( "Class does not implement LockFactoryFactory: "
-						+ lockFactoryName, e );
-			}
+			LockFactoryFactory lockFactoryFactory = PluginLoader.instanceFromName( LockFactoryFactory.class,
+						lockFactoryName, DirectoryProviderHelper.class, "locking_strategy" );
 			return lockFactoryFactory.createLockFactory( indexDir, dirConfiguration );
 		}
 	}

Modified: search/trunk/src/test/java/org/hibernate/search/test/directoryProvider/CustomLockProviderTest.java
===================================================================
--- search/trunk/src/test/java/org/hibernate/search/test/directoryProvider/CustomLockProviderTest.java	2010-01-09 15:23:03 UTC (rev 18478)
+++ search/trunk/src/test/java/org/hibernate/search/test/directoryProvider/CustomLockProviderTest.java	2010-01-09 15:23:37 UTC (rev 18479)
@@ -26,6 +26,7 @@
 
 import junit.framework.TestCase;
 
+import org.hibernate.search.event.ContextHolder;
 import org.hibernate.search.test.util.FullTextSessionBuilder;
 
 /**
@@ -62,7 +63,7 @@
 			assertTrue( causeSearch instanceof org.hibernate.search.SearchException );
 			Throwable causeLockin = causeSearch.getCause();
 			assertNotNull( causeLockin );
-			assertTrue( causeLockin.getMessage().startsWith("Unable to find LockFactory") );
+			assertEquals( "Unable to find locking_strategy implementation class: org.hibernate.NotExistingFactory", causeLockin.getMessage() );
 		}
 	}
 



More information about the hibernate-commits mailing list