[hibernate-commits] Hibernate SVN: r14211 - in search/trunk/src: java/org/hibernate/search/util and 1 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Nov 30 21:10:49 EST 2007


Author: epbernard
Date: 2007-11-30 21:10:49 -0500 (Fri, 30 Nov 2007)
New Revision: 14211

Modified:
   search/trunk/src/java/org/hibernate/search/store/FSMasterDirectoryProvider.java
   search/trunk/src/java/org/hibernate/search/store/FSSlaveDirectoryProvider.java
   search/trunk/src/java/org/hibernate/search/util/DirectoryProviderHelper.java
   search/trunk/src/test/org/hibernate/search/test/FSDirectoryTest.java
Log:
HSEARCH-123 create directories recursively

Modified: search/trunk/src/java/org/hibernate/search/store/FSMasterDirectoryProvider.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/store/FSMasterDirectoryProvider.java	2007-11-29 01:39:53 UTC (rev 14210)
+++ search/trunk/src/java/org/hibernate/search/store/FSMasterDirectoryProvider.java	2007-12-01 02:10:49 UTC (rev 14211)
@@ -60,7 +60,7 @@
 			boolean create = !indexDir.exists();
 			if (create) {
 				log.debug( "Index directory '" + indexName + "' will be initialized");
-				indexDir.mkdir();
+				indexDir.mkdirs();
 			}
 			indexName = indexDir.getCanonicalPath();
 			directory = FSDirectory.getDirectory( indexName);

Modified: search/trunk/src/java/org/hibernate/search/store/FSSlaveDirectoryProvider.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/store/FSSlaveDirectoryProvider.java	2007-11-29 01:39:53 UTC (rev 14210)
+++ search/trunk/src/java/org/hibernate/search/store/FSSlaveDirectoryProvider.java	2007-12-01 02:10:49 UTC (rev 14211)
@@ -62,7 +62,7 @@
 			boolean create = !indexDir.exists();
 			indexName = indexDir.getCanonicalPath();
 			if (create) {
-				indexDir.mkdir();
+				indexDir.mkdirs();
 				log.debug("Initializing index directory " + indexName);
 			}
 		}

Modified: search/trunk/src/java/org/hibernate/search/util/DirectoryProviderHelper.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/util/DirectoryProviderHelper.java	2007-11-29 01:39:53 UTC (rev 14210)
+++ search/trunk/src/java/org/hibernate/search/util/DirectoryProviderHelper.java	2007-12-01 02:10:49 UTC (rev 14211)
@@ -46,7 +46,7 @@
 		else {
 			File rootDir = new File(root);
 			if ( ! rootDir.exists() ) {
-				rootDir.mkdir();
+				rootDir.mkdirs();
 			}
 			else if ( ! rootDir.isDirectory() ) {
 				throw new SearchException(rootPropertyName + " is not a directory");
@@ -54,7 +54,7 @@
 			//test it again in case mkdir failed for wrong reasons
 			if ( rootDir.exists() ) {
 				File sourceFile = new File(root, relative);
-				if (! sourceFile.exists() ) sourceFile.mkdir();
+				if (! sourceFile.exists() ) sourceFile.mkdirs();
 				log.debug( "Get directory from root + relative");
 				try {
 					relative = sourceFile.getCanonicalPath();
@@ -77,7 +77,7 @@
 		if ( ! indexDir.exists() ) {
 			//if the base directory does not exists, create it
 			//we do not fear concurrent creation since mkdir does not raise exceptions
-			indexDir.mkdir();
+			indexDir.mkdirs();
 		}
 		else if ( ! indexDir.isDirectory() ) {
 			throw new SearchException( MessageFormat.format( "Index directory is not a directory: {0}", indexBase ) );

Modified: search/trunk/src/test/org/hibernate/search/test/FSDirectoryTest.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/FSDirectoryTest.java	2007-11-29 01:39:53 UTC (rev 14210)
+++ search/trunk/src/test/org/hibernate/search/test/FSDirectoryTest.java	2007-12-01 02:10:49 UTC (rev 14211)
@@ -3,6 +3,7 @@
 
 import java.io.File;
 import java.util.List;
+import java.util.Properties;
 
 import org.apache.lucene.analysis.StopAnalyzer;
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
@@ -20,6 +21,7 @@
 import org.hibernate.search.Environment;
 import org.hibernate.search.event.FullTextIndexEventListener;
 import org.hibernate.search.store.FSDirectoryProvider;
+import org.hibernate.search.util.DirectoryProviderHelper;
 
 /**
  * @author Gavin King
@@ -54,7 +56,7 @@
 
 	private void delete(File sub) {
 		if ( sub.isDirectory() ) {
-			for ( File file : sub.listFiles() ) {
+			for (File file : sub.listFiles()) {
 				delete( file );
 			}
 			sub.delete();
@@ -64,6 +66,46 @@
 		}
 	}
 
+	private void recursiveDelete(File f) {
+		for (File file : f.listFiles()) {
+			if ( file.isDirectory() ) {
+				recursiveDelete( file );
+			}
+		}
+		f.delete();
+	}
+
+	public void testDirectoryProviderHelperMkdirsGetSource() throws Exception {
+		String root = "./testDir";
+		String relative = "dir1/dir2/dir3";
+
+		Properties properties = new Properties();
+		properties.put( "root", root );
+		properties.put( "relative", relative );
+
+		String rel = DirectoryProviderHelper.getSourceDirectory( "root", "relative", "name", properties );
+
+		File f = new File( rel );
+		assertTrue( f.exists() );
+
+		recursiveDelete( new File( root ) );
+	}
+
+	public void testDirectoryProviderHelperMkdirsDetermineIndex() throws Exception {
+		String root = "./testDir/dir1/dir2";
+		String relative = "dir3";
+
+		Properties properties = new Properties();
+		properties.put( "indexBase", root );
+		properties.put( "indexName", relative );
+
+		File f = DirectoryProviderHelper.determineIndexDir( "name", properties );
+
+		assertTrue( new File( root ).exists() );
+
+		recursiveDelete( new File( "./testDir" ) );
+	}
+
 	public void testEventIntegration() throws Exception {
 
 
@@ -167,7 +209,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();
@@ -175,7 +217,7 @@
 	}
 
 	protected Class[] getMappings() {
-		return new Class[]{
+		return new Class[] {
 				Document.class
 		};
 	}
@@ -187,9 +229,9 @@
 		cfg.setProperty( "hibernate.search.default.directory_provider", FSDirectoryProvider.class.getName() );
 		cfg.setProperty( Environment.ANALYZER_CLASS, StopAnalyzer.class.getName() );
 		FullTextIndexEventListener del = new FullTextIndexEventListener();
-		cfg.getEventListeners().setPostDeleteEventListeners( new PostDeleteEventListener[]{del} );
-		cfg.getEventListeners().setPostUpdateEventListeners( new PostUpdateEventListener[]{del} );
-		cfg.getEventListeners().setPostInsertEventListeners( new PostInsertEventListener[]{del} );
+		cfg.getEventListeners().setPostDeleteEventListeners( new PostDeleteEventListener[] { del } );
+		cfg.getEventListeners().setPostUpdateEventListeners( new PostUpdateEventListener[] { del } );
+		cfg.getEventListeners().setPostInsertEventListeners( new PostInsertEventListener[] { del } );
 	}
 
 }




More information about the hibernate-commits mailing list