You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2016/07/27 10:20:13 UTC
svn commit: r1754236 - in /jackrabbit/oak/trunk/oak-lucene/src:
main/java/org/apache/jackrabbit/oak/plugins/index/lucene/
main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/
test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ test...
Author: chetanm
Date: Wed Jul 27 10:20:13 2016
New Revision: 1754236
URL: http://svn.apache.org/viewvc?rev=1754236&view=rev
Log:
OAK-4607 - Add support for multiple directory in IndexCopier
Introduced new parameter dirName in both read and write variant
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNode.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexRootDirectory.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopierTest.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexRootDirectoryTest.java
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java?rev=1754236&r1=1754235&r2=1754236&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java Wed Jul 27 10:20:13 2016
@@ -132,13 +132,13 @@ public class IndexCopier implements Copy
}
public Directory wrapForRead(String indexPath, IndexDefinition definition,
- Directory remote) throws IOException {
- Directory local = createLocalDirForIndexReader(indexPath, definition);
+ Directory remote, String dirName) throws IOException {
+ Directory local = createLocalDirForIndexReader(indexPath, definition, dirName);
return new CopyOnReadDirectory(remote, local, prefetchEnabled, indexPath, getSharedWorkingSet(indexPath));
}
- public Directory wrapForWrite(IndexDefinition definition, Directory remote, boolean reindexMode) throws IOException {
- Directory local = createLocalDirForIndexWriter(definition);
+ public Directory wrapForWrite(IndexDefinition definition, Directory remote, boolean reindexMode, String dirName) throws IOException {
+ Directory local = createLocalDirForIndexWriter(definition, dirName);
return new CopyOnWriteDirectory(remote, local, reindexMode,
getIndexPathForLogging(definition), getSharedWorkingSet(definition.getIndexPathFromConfig()));
}
@@ -156,9 +156,9 @@ public class IndexCopier implements Copy
return indexRootDirectory;
}
- protected Directory createLocalDirForIndexWriter(IndexDefinition definition) throws IOException {
+ protected Directory createLocalDirForIndexWriter(IndexDefinition definition, String dirName) throws IOException {
String indexPath = definition.getIndexPathFromConfig();
- File indexWriterDir = getIndexDir(definition, indexPath);
+ File indexWriterDir = getIndexDir(definition, indexPath, dirName);
//By design indexing in Oak is single threaded so Lucene locking
//can be disabled
@@ -168,8 +168,8 @@ public class IndexCopier implements Copy
return dir;
}
- protected Directory createLocalDirForIndexReader(String indexPath, IndexDefinition definition) throws IOException {
- File indexDir = getIndexDir(definition, indexPath);
+ protected Directory createLocalDirForIndexReader(String indexPath, IndexDefinition definition, String dirName) throws IOException {
+ File indexDir = getIndexDir(definition, indexPath, dirName);
Directory result = FSDirectory.open(indexDir);
String newPath = indexDir.getAbsolutePath();
@@ -181,8 +181,8 @@ public class IndexCopier implements Copy
return result;
}
- public File getIndexDir(IndexDefinition definition, String indexPath) throws IOException {
- return indexRootDirectory.getIndexDir(definition, indexPath);
+ public File getIndexDir(IndexDefinition definition, String indexPath, String dirName) throws IOException {
+ return indexRootDirectory.getIndexDir(definition, indexPath, dirName);
}
Map<String, LocalIndexFile> getFailedToDeleteFiles() {
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNode.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNode.java?rev=1754236&r1=1754235&r2=1754236&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNode.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNode.java Wed Jul 27 10:20:13 2016
@@ -50,7 +50,7 @@ class IndexNode {
if (data.exists()) {
directory = new OakDirectory(new ReadOnlyBuilder(defnNodeState), definition, true);
if (cloner != null) {
- directory = cloner.wrapForRead(indexPath, definition, directory);
+ directory = cloner.wrapForRead(indexPath, definition, directory, LuceneIndexConstants.INDEX_DATA_CHILD_NAME);
}
} else if (PERSISTENCE_FILE.equalsIgnoreCase(defnNodeState.getString(PERSISTENCE_NAME))) {
String path = defnNodeState.getString(PERSISTENCE_PATH);
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java?rev=1754236&r1=1754235&r2=1754236&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java Wed Jul 27 10:20:13 2016
@@ -52,8 +52,6 @@ public interface LuceneIndexConstants {
String PERSISTENCE_PATH = "path";
- String INDEX_DATA_CHILD_NAME_FS = "data";
-
/**
* Experimental flag to control storage behavior: 'null' or 'true' means the content is stored
*/
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java?rev=1754236&r1=1754235&r2=1754236&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java Wed Jul 27 10:20:13 2016
@@ -192,7 +192,7 @@ public class LuceneIndexEditorContext {
directory = newIndexDirectory(definition, definitionBuilder);
IndexWriterConfig config;
if (indexCopier != null){
- directory = indexCopier.wrapForWrite(definition, directory, reindex);
+ directory = indexCopier.wrapForWrite(definition, directory, reindex, LuceneIndexConstants.INDEX_DATA_CHILD_NAME);
config = getIndexWriterConfig(definition, false);
} else {
config = getIndexWriterConfig(definition, true);
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexRootDirectory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexRootDirectory.java?rev=1754236&r1=1754235&r2=1754236&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexRootDirectory.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexRootDirectory.java Wed Jul 27 10:20:13 2016
@@ -83,7 +83,7 @@ public class IndexRootDirectory {
return FileUtils.sizeOfDirectory(indexRootDir);
}
- public File getIndexDir(IndexDefinition definition, String indexPath) throws IOException {
+ public File getIndexDir(IndexDefinition definition, String indexPath, String dirName) throws IOException {
String uid = definition.getUniqueId();
if (uid == null) {
@@ -110,8 +110,7 @@ public class IndexRootDirectory {
}
//Create index folder under that
- //TODO Add support for multiple folders depending on type of content
- File indexFolder = new File(baseFolder, "default");
+ File indexFolder = new File(baseFolder, getFSSafeName(dirName));
if (!indexFolder.exists()) {
checkState(indexFolder.mkdir(), "Not able to create folder [%s]", indexFolder);
}
@@ -195,7 +194,7 @@ public class IndexRootDirectory {
continue;
}
//Strip of any char outside of a-zA-Z0-9-
- result.add(e.replaceAll("\\W", ""));
+ result.add(getFSSafeName(e));
}
Collections.reverse(result);
@@ -295,6 +294,10 @@ public class IndexRootDirectory {
return new File(indexRootDir, subDir);
}
+ private static String getFSSafeName(String e) {
+ return e.replaceAll("\\W", "");
+ }
+
private static long getTime() {
try {
return Clock.SIMPLE.getTimeIncreasing();
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopierTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopierTest.java?rev=1754236&r1=1754235&r2=1754236&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopierTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopierTest.java Wed Jul 27 10:20:13 2016
@@ -42,7 +42,6 @@ import java.util.concurrent.atomic.Atomi
import javax.management.openmbean.TabularData;
-import com.google.common.base.StandardSystemProperty;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.google.common.util.concurrent.ForwardingListeningExecutorService;
@@ -69,6 +68,7 @@ import org.junit.rules.TemporaryFolder;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Sets.newHashSet;
import static com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor;
+import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.INDEX_DATA_CHILD_NAME;
import static org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent.INITIAL_CONTENT;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.contains;
@@ -107,7 +107,7 @@ public class IndexCopierTest {
IndexCopier c1 = new RAMIndexCopier(baseDir, sameThreadExecutor(), getWorkDir());
Directory remote = new RAMDirectory();
- Directory wrapped = c1.wrapForRead("/foo", defn, remote);
+ Directory wrapped = c1.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
byte[] t1 = writeFile(remote , "t1");
byte[] t2 = writeFile(remote , "t2");
@@ -144,7 +144,7 @@ public class IndexCopierTest {
byte[] t1 = writeFile(remote, "t1");
byte[] t2 = writeFile(remote , "t2");
- Directory wrapped = c1.wrapForRead("/foo", defn, remote);
+ Directory wrapped = c1.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
assertEquals(2, wrapped.listAll().length);
assertThat(syncedFiles, containsInAnyOrder("t1", "t2"));
@@ -169,7 +169,7 @@ public class IndexCopierTest {
IndexCopier c1 = new RAMIndexCopier(baseDir, executor, getWorkDir(), true);
Directory remote = new RAMDirectory();
- Directory wrapped = c1.wrapForRead("/foo", defn, remote);
+ Directory wrapped = c1.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
try {
wrapped.openInput("foo.txt", IOContext.DEFAULT);
@@ -187,7 +187,7 @@ public class IndexCopierTest {
IndexCopier c1 = new IndexCopier(sameThreadExecutor(), getWorkDir());
Directory remote = new RAMDirectory();
- Directory wrapped = c1.wrapForRead("/foo", defn, remote);
+ Directory wrapped = c1.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
byte[] t1 = writeFile(remote, "t1");
byte[] t2 = writeFile(remote , "t2");
@@ -203,7 +203,7 @@ public class IndexCopierTest {
readAndAssert(wrapped, "t1", t1);
//t1 should now be added to testDir
- File indexDir = c1.getIndexDir(defn, "/foo");
+ File indexDir = c1.getIndexDir(defn, "/foo", INDEX_DATA_CHILD_NAME);
assertTrue(new File(indexDir, "t1").exists());
TabularData td = c1.getIndexPathMapping();
@@ -216,7 +216,7 @@ public class IndexCopierTest {
IndexCopier c1 = new IndexCopier(sameThreadExecutor(), getWorkDir());
Directory remote = new CloseSafeDir();
- Directory w1 = c1.wrapForRead(indexPath, defn, remote);
+ Directory w1 = c1.wrapForRead(indexPath, defn, remote, INDEX_DATA_CHILD_NAME);
byte[] t1 = writeFile(remote, "t1");
byte[] t2 = writeFile(remote , "t2");
@@ -225,7 +225,7 @@ public class IndexCopierTest {
readAndAssert(w1, "t2", t2);
//t1 should now be added to testDir
- File indexDir = c1.getIndexDir(defn, indexPath);
+ File indexDir = c1.getIndexDir(defn, indexPath, INDEX_DATA_CHILD_NAME);
assertTrue(new File(indexDir, "t1").exists());
doReindex(builder);
@@ -234,7 +234,7 @@ public class IndexCopierTest {
//Close old version
w1.close();
//Get a new one with updated reindexCount
- Directory w2 = c1.wrapForRead(indexPath, defn, remote);
+ Directory w2 = c1.wrapForRead(indexPath, defn, remote, INDEX_DATA_CHILD_NAME);
readAndAssert(w2, "t1", t1);
@@ -242,7 +242,7 @@ public class IndexCopierTest {
assertFalse("Old index directory should have been removed", indexDir.exists());
//Assert that new index file do exist and not get removed
- File indexDir2 = c1.getIndexDir(defn, indexPath);
+ File indexDir2 = c1.getIndexDir(defn, indexPath, INDEX_DATA_CHILD_NAME);
assertTrue(new File(indexDir2, "t1").exists());
//Check if parent directory is also removed i.e.
@@ -259,7 +259,7 @@ public class IndexCopierTest {
IndexCopier c1 = new RAMIndexCopier(baseDir, executor, getWorkDir());
TestRAMDirectory remote = new TestRAMDirectory();
- Directory wrapped = c1.wrapForRead("/foo", defn, remote);
+ Directory wrapped = c1.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
byte[] t1 = writeFile(remote , "t1");
@@ -322,7 +322,7 @@ public class IndexCopierTest {
super.copy(to, src, dest, context);
}
};
- Directory wrapped = c1.wrapForRead("/foo", defn, remote);
+ Directory wrapped = c1.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
byte[] t1 = writeFile(remote , "t1");
@@ -366,7 +366,7 @@ public class IndexCopierTest {
IndexCopier c1 = new RAMIndexCopier(baseDir, sameThreadExecutor(), getWorkDir());
TestRAMDirectory remote = new TestRAMDirectory();
- Directory wrapped = c1.wrapForRead("/foo", defn, remote);
+ Directory wrapped = c1.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
byte[] t1 = writeFile(remote, "t1");
@@ -375,7 +375,7 @@ public class IndexCopierTest {
assertEquals(1, remote.openedFiles.size());
//2. Reuse the testDir and read again
- Directory wrapped2 = c1.wrapForRead("/foo", defn, remote);
+ Directory wrapped2 = c1.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
remote.reset();
//3. Now read should be served from local
@@ -383,7 +383,7 @@ public class IndexCopierTest {
assertEquals(0, remote.openedFiles.size());
//Now check if local file gets corrupted then read from remote
- Directory wrapped3 = c1.wrapForRead("/foo", defn, remote);
+ Directory wrapped3 = c1.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
remote.reset();
//4. Corrupt the local copy
@@ -408,7 +408,7 @@ public class IndexCopierTest {
};
String fileName = "failed.txt";
- Directory wrapped = c1.wrapForRead("/foo", defn, remote);
+ Directory wrapped = c1.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
byte[] t1 = writeFile(remote , fileName);
@@ -439,7 +439,7 @@ public class IndexCopierTest {
byte[] t1 = writeFile(r1, "t1");
byte[] t2 = writeFile(r1 , "t2");
- Directory w1 = c1.wrapForRead("/foo", defn, r1);
+ Directory w1 = c1.wrapForRead("/foo", defn, r1, INDEX_DATA_CHILD_NAME);
readAndAssert(w1, "t1", t1);
readAndAssert(w1, "t2", t2);
@@ -451,7 +451,7 @@ public class IndexCopierTest {
copy(r1, r2);
r2.deleteFile("t1");
- Directory w2 = c1.wrapForRead("/foo", defn, r2);
+ Directory w2 = c1.wrapForRead("/foo", defn, r2, INDEX_DATA_CHILD_NAME);
//Close would trigger removal of file which are not present in remote
w2.close();
@@ -482,7 +482,7 @@ public class IndexCopierTest {
byte[] t1 = writeFile(r1, "t1");
byte[] t2 = writeFile(r1 , "t2");
- Directory w1 = c1.wrapForRead("/foo", defn, r1);
+ Directory w1 = c1.wrapForRead("/foo", defn, r1, INDEX_DATA_CHILD_NAME);
readAndAssert(w1, "t1", t1);
readAndAssert(w1, "t2", t2);
@@ -494,7 +494,7 @@ public class IndexCopierTest {
copy(r1, r2);
r2.deleteFile("t1");
- Directory w2 = c1.wrapForRead("/foo", defn, r2);
+ Directory w2 = c1.wrapForRead("/foo", defn, r2, INDEX_DATA_CHILD_NAME);
//Close would trigger removal of file which are not present in remote
testFiles.add("t1");
@@ -507,14 +507,14 @@ public class IndexCopierTest {
assertEquals(IOUtils.humanReadableByteCount(t1.length), c1.getGarbageSize());
assertEquals(1, c1.getGarbageDetails().length);
- Directory w3 = c1.wrapForRead("/foo", defn, r2);
+ Directory w3 = c1.wrapForRead("/foo", defn, r2, INDEX_DATA_CHILD_NAME);
w3.close();
assertEquals(2, testFile.getDeleteAttemptCount());
//Now let the file to be deleted
testFiles.clear();
- Directory w4 = c1.wrapForRead("/foo", defn, r2);
+ Directory w4 = c1.wrapForRead("/foo", defn, r2, INDEX_DATA_CHILD_NAME);
w4.close();
//No pending deletes left
@@ -532,14 +532,14 @@ public class IndexCopierTest {
Directory remote1 = new RAMDirectory();
byte[] t1 = writeFile(remote1, "t1");
- Directory local1 = copier.wrapForRead("/foo", defn, remote1);
+ Directory local1 = copier.wrapForRead("/foo", defn, remote1, INDEX_DATA_CHILD_NAME);
readAndAssert(local1, "t1", t1);
//While local1 is open , open another local2 and read t2
Directory remote2 = new RAMDirectory();
byte[] t2 = writeFile(remote2, "t2");
- Directory local2 = copier.wrapForRead("/foo", defn, remote2);
+ Directory local2 = copier.wrapForRead("/foo", defn, remote2, INDEX_DATA_CHILD_NAME);
readAndAssert(local2, "t2", t2);
//Close local1
@@ -556,7 +556,7 @@ public class IndexCopierTest {
IndexCopier copier = new IndexCopier(sameThreadExecutor(), getWorkDir());
IndexDefinition defn = new IndexDefinition(root, builder.getNodeState());
- Directory dir = copier.wrapForWrite(defn, remote, false);
+ Directory dir = copier.wrapForWrite(defn, remote, false, INDEX_DATA_CHILD_NAME);
byte[] t1 = writeFile(dir, "t1");
@@ -575,7 +575,7 @@ public class IndexCopierTest {
builder.setProperty(IndexConstants.INDEX_PATH, "foo");
IndexDefinition defn = new IndexDefinition(root, builder.getNodeState());
- Directory dir = copier.wrapForWrite(defn, remote, false);
+ Directory dir = copier.wrapForWrite(defn, remote, false, INDEX_DATA_CHILD_NAME);
byte[] t1 = writeFile(dir, "t1");
@@ -583,7 +583,7 @@ public class IndexCopierTest {
readAndAssert(remote, "t1", t1);
//Work dir must be empty post close
- File indexDir = copier.getIndexDir(defn, "foo");
+ File indexDir = copier.getIndexDir(defn, "foo", INDEX_DATA_CHILD_NAME);
List<File> files = new ArrayList<File>(FileUtils.listFiles(indexDir, null, true));
Set<String> fileNames = Sets.newHashSet();
for (File f : files){
@@ -604,7 +604,7 @@ public class IndexCopierTest {
//State of remote directory should set before wrapping as later
//additions would not be picked up given COW assume remote directory
//to be read only
- Directory local = copier.wrapForWrite(defn, remote, false);
+ Directory local = copier.wrapForWrite(defn, remote, false, INDEX_DATA_CHILD_NAME);
assertEquals(newHashSet("t1"), newHashSet(local.listAll()));
assertEquals(t1.length, local.fileLength("t1"));
@@ -661,13 +661,13 @@ public class IndexCopierTest {
Directory remote = new CloseSafeDir();
byte[] t1 = writeFile(remote, "t1");
byte[] t2 = writeFile(remote, "t2");
- Directory local = copier.wrapForWrite(defn, remote, false);
+ Directory local = copier.wrapForWrite(defn, remote, false, INDEX_DATA_CHILD_NAME);
assertEquals(newHashSet("t1", "t2"), newHashSet(local.listAll()));
byte[] t3 = writeFile(local, "t3");
//Now pull in the file t1 via CopyOnRead in baseDir
- Directory localForRead = copier.wrapForRead("/foo", defn, remote);
+ Directory localForRead = copier.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
readAndAssert(localForRead, "t1", t1);
//File which was copied from remote should not be deleted from baseDir
@@ -711,7 +711,7 @@ public class IndexCopierTest {
}
};
byte[] t1 = writeFile(remote, "t1");
- Directory local = copier.wrapForWrite(defn, remote, false);
+ Directory local = copier.wrapForWrite(defn, remote, false, INDEX_DATA_CHILD_NAME);
//Read should be served from remote
readRemotes.clear();readLocal.clear();
@@ -720,7 +720,7 @@ public class IndexCopierTest {
assertEquals(newHashSet(), readLocal);
//Now pull in the file t1 via CopyOnRead in baseDir
- Directory localForRead = copier.wrapForRead("/foo", defn, remote);
+ Directory localForRead = copier.wrapForRead("/foo", defn, remote, INDEX_DATA_CHILD_NAME);
readAndAssert(localForRead, "t1", t1);
//Read should be served from local
@@ -741,7 +741,7 @@ public class IndexCopierTest {
Directory remote = new CloseSafeDir();
- final Directory local = copier.wrapForWrite(defn, remote, false);
+ final Directory local = copier.wrapForWrite(defn, remote, false, INDEX_DATA_CHILD_NAME);
byte[] t1 = writeFile(local, "t1");
assertTrue(local.fileExists("t1"));
@@ -803,7 +803,7 @@ public class IndexCopierTest {
Directory remote = new CloseSafeDir();
- final Directory local = copier.wrapForWrite(defn, remote, false);
+ final Directory local = copier.wrapForWrite(defn, remote, false, INDEX_DATA_CHILD_NAME);
byte[] t1 = writeFile(local, "t1");
assertTrue(local.fileExists("t1"));
@@ -870,7 +870,7 @@ public class IndexCopierTest {
}
};
- final Directory local = copier.wrapForWrite(defn, remote, false);
+ final Directory local = copier.wrapForWrite(defn, remote, false, INDEX_DATA_CHILD_NAME);
toFail.add("t2");
byte[] t1 = writeFile(local, "t1");
byte[] t2 = writeFile(local, "t2");
@@ -908,7 +908,7 @@ public class IndexCopierTest {
}
};
- final Directory local = copier.wrapForWrite(defn, remote, false);
+ final Directory local = copier.wrapForWrite(defn, remote, false, INDEX_DATA_CHILD_NAME);
toPause.add("t2");
byte[] t1 = writeFile(local, "t1");
byte[] t2 = writeFile(local, "t2");
@@ -958,7 +958,7 @@ public class IndexCopierTest {
Directory remote = new CloseSafeDir();
byte[] f1 = writeFile(remote, "f1");
- Directory cor1 = copier.wrapForRead(indexPath, defn, remote);
+ Directory cor1 = copier.wrapForRead(indexPath, defn, remote, INDEX_DATA_CHILD_NAME);
readAndAssert(cor1, "f1", f1);
cor1.close();
@@ -976,13 +976,13 @@ public class IndexCopierTest {
};
//Start copying a file to remote via COW
- Directory cow1 = copier.wrapForWrite(defn, remote2, false);
+ Directory cow1 = copier.wrapForWrite(defn, remote2, false, INDEX_DATA_CHILD_NAME);
byte[] f2 = writeFile(cow1, "f2");
//Before copy is done to remote lets delete f1 from remote and
//open a COR and close it such that it triggers delete of f1
remote.deleteFile("f1");
- Directory cor2 = copier.wrapForRead(indexPath, defn, remote);
+ Directory cor2 = copier.wrapForRead(indexPath, defn, remote, INDEX_DATA_CHILD_NAME);
//Ensure that deletion task submitted to executor get processed immediately
executor.enableImmediateExecution();
@@ -1051,12 +1051,12 @@ public class IndexCopierTest {
}
@Override
- protected Directory createLocalDirForIndexReader(String indexPath, IndexDefinition definition) throws IOException {
+ protected Directory createLocalDirForIndexReader(String indexPath, IndexDefinition definition, String dirName) throws IOException {
return baseDir;
}
@Override
- protected Directory createLocalDirForIndexWriter(IndexDefinition definition) throws IOException {
+ protected Directory createLocalDirForIndexWriter(IndexDefinition definition, String dirName) throws IOException {
return baseDir;
}
}
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java?rev=1754236&r1=1754235&r2=1754236&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java Wed Jul 27 10:20:13 2016
@@ -179,16 +179,16 @@ public class LucenePropertyIndexTest ext
return new IndexCopier(executorService, temporaryFolder.getRoot()) {
@Override
public Directory wrapForRead(String indexPath, IndexDefinition definition,
- Directory remote) throws IOException {
- Directory ret = super.wrapForRead(indexPath, definition, remote);
+ Directory remote, String dirName) throws IOException {
+ Directory ret = super.wrapForRead(indexPath, definition, remote, dirName);
corDir = getFSDirPath(ret);
return ret;
}
@Override
public Directory wrapForWrite(IndexDefinition definition,
- Directory remote, boolean reindexMode) throws IOException {
- Directory ret = super.wrapForWrite(definition, remote, reindexMode);
+ Directory remote, boolean reindexMode, String dirName) throws IOException {
+ Directory ret = super.wrapForWrite(definition, remote, reindexMode, dirName);
cowDir = getFSDirPath(ret);
return ret;
}
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexRootDirectoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexRootDirectoryTest.java?rev=1754236&r1=1754235&r2=1754236&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexRootDirectoryTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexRootDirectoryTest.java Wed Jul 27 10:20:13 2016
@@ -55,12 +55,12 @@ public class IndexRootDirectoryTest {
@Test
public void getIndexDirOldFormat() throws Exception{
- File f1 = dir.getIndexDir(getDefn(), "/a/b");
+ File f1 = dir.getIndexDir(getDefn(), "/a/b", "default");
assertFalse(LocalIndexDir.isIndexDir(f1));
builder.setProperty(IndexConstants.REINDEX_COUNT, 1);
- File f2 = dir.getIndexDir(getDefn(), "/a/b");
- File f3 = dir.getIndexDir(getDefn(), "/a/b");
+ File f2 = dir.getIndexDir(getDefn(), "/a/b", "default");
+ File f3 = dir.getIndexDir(getDefn(), "/a/b", "default");
//Both should be same dir
assertEquals(f2, f3);
@@ -70,18 +70,18 @@ public class IndexRootDirectoryTest {
@Test
public void newFormat() throws Exception{
LuceneIndexEditorContext.configureUniqueId(builder);
- File f1 = dir.getIndexDir(getDefn(), "/a/b");
- File f2 = dir.getIndexDir(getDefn(), "/a/b");
+ File f1 = dir.getIndexDir(getDefn(), "/a/b", "default");
+ File f2 = dir.getIndexDir(getDefn(), "/a/b", "default");
assertEquals(f1, f2);
}
@Test
public void reindexCaseWithSamePath() throws Exception{
LuceneIndexEditorContext.configureUniqueId(builder);
- File f1 = dir.getIndexDir(getDefn(), "/a/b");
+ File f1 = dir.getIndexDir(getDefn(), "/a/b", "default");
LuceneIndexEditorContext.configureUniqueId(resetBuilder());
- File f2 = dir.getIndexDir(getDefn(), "/a/b");
+ File f2 = dir.getIndexDir(getDefn(), "/a/b", "default");
assertNotEquals(f1, f2);
List<LocalIndexDir> dirs = dir.getLocalIndexes("/a/b");
@@ -95,14 +95,14 @@ public class IndexRootDirectoryTest {
@Test
public void allLocalIndexes() throws Exception{
LuceneIndexEditorContext.configureUniqueId(builder);
- File fa1 = dir.getIndexDir(getDefn(), "/a");
+ File fa1 = dir.getIndexDir(getDefn(), "/a", "default");
LuceneIndexEditorContext.configureUniqueId(resetBuilder());
- File fa2 = dir.getIndexDir(getDefn(), "/a");
+ File fa2 = dir.getIndexDir(getDefn(), "/a", "default");
LuceneIndexEditorContext.configureUniqueId(builder);
- File fb1 = dir.getIndexDir(getDefn(), "/b");
+ File fb1 = dir.getIndexDir(getDefn(), "/b", "default");
LuceneIndexEditorContext.configureUniqueId(resetBuilder());
- File fb2 = dir.getIndexDir(getDefn(), "/b");
+ File fb2 = dir.getIndexDir(getDefn(), "/b", "default");
List<LocalIndexDir> dirs = dir.getAllLocalIndexes();
assertEquals(2, dirs.size());
@@ -136,12 +136,12 @@ public class IndexRootDirectoryTest {
@Test
public void gcIndexDirs() throws Exception{
//Create an old format directory
- File fa0 = dir.getIndexDir(getDefn(), "/a");
+ File fa0 = dir.getIndexDir(getDefn(), "/a", "default");
configureUniqueId();
- File fa1 = dir.getIndexDir(getDefn(), "/a");
+ File fa1 = dir.getIndexDir(getDefn(), "/a", "default");
configureUniqueId();
- File fa2 = dir.getIndexDir(getDefn(), "/a");
+ File fa2 = dir.getIndexDir(getDefn(), "/a", "default");
List<LocalIndexDir> dirs = dir.getLocalIndexes("/a");
assertEquals(2, dirs.size());
@@ -151,7 +151,7 @@ public class IndexRootDirectoryTest {
assertEquals(2, dirs.size());
configureUniqueId();
- File fa3 = dir.getIndexDir(getDefn(), "/a");
+ File fa3 = dir.getIndexDir(getDefn(), "/a", "default");
assertEquals(3, dir.getLocalIndexes("/a").size());
@@ -178,12 +178,12 @@ public class IndexRootDirectoryTest {
@Test
public void gcIndexDirsOnStart() throws Exception{
- File fa0 = dir.getIndexDir(getDefn(), "/a");
+ File fa0 = dir.getIndexDir(getDefn(), "/a", "default");
configureUniqueId();
- File fa1 = dir.getIndexDir(getDefn(), "/a");
+ File fa1 = dir.getIndexDir(getDefn(), "/a", "default");
configureUniqueId();
- File fa2 = dir.getIndexDir(getDefn(), "/a");
+ File fa2 = dir.getIndexDir(getDefn(), "/a", "default");
assertEquals(2, dir.getLocalIndexes("/a").size());
//Now reinitialize