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/12/06 10:32:06 UTC

svn commit: r1772859 - in /jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid: HybridIndexTest.java LocalIndexWriterFactoryTest.java

Author: chetanm
Date: Tue Dec  6 10:32:06 2016
New Revision: 1772859

URL: http://svn.apache.org/viewvc?rev=1772859&view=rev
Log:
OAK-5218 - Enable use of hybrid index before first async indexing is done

Use IndexDefinitionBuilder to avoid rewrite of index definitions for upgrade purpose

Modified:
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexWriterFactoryTest.java

Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java?rev=1772859&r1=1772858&r2=1772859&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java Tue Dec  6 10:32:06 2016
@@ -23,6 +23,7 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Collections;
+import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
@@ -31,7 +32,6 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import com.google.common.base.Predicate;
-import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.ContentRepository;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -40,6 +40,7 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.index.counter.NodeCounterEditorProvider;
 import org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier;
 import org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker;
+import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants;
 import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.IndexingMode;
 import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorProvider;
 import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProvider;
@@ -47,6 +48,7 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.index.lucene.reader.DefaultIndexReaderFactory;
 import org.apache.jackrabbit.oak.plugins.index.lucene.reader.LuceneIndexReaderFactory;
 import org.apache.jackrabbit.oak.plugins.index.lucene.util.IndexDefinitionBuilder;
+import org.apache.jackrabbit.oak.plugins.index.lucene.util.IndexDefinitionBuilder.IndexRule;
 import org.apache.jackrabbit.oak.plugins.index.nodetype.NodeTypeIndexProvider;
 import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider;
 import org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob;
@@ -68,7 +70,6 @@ import org.junit.rules.TemporaryFolder;
 
 import static com.google.common.collect.ImmutableList.of;
 import static com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor;
-import static org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndexTest.createIndex;
 import static org.apache.jackrabbit.oak.spi.mount.Mounts.defaultMountInfoProvider;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -167,7 +168,7 @@ public class HybridIndexTest extends Abs
     @Test
     public void noTextExtractionForSyncCommit() throws Exception{
         String idxName = "hybridtest";
-        Tree idx = TestUtil.createFulltextIndex(root.getTree("/"), idxName);
+        Tree idx = createFulltextIndex(root.getTree("/"), idxName);
         TestUtil.enableIndexingMode(idx, IndexingMode.NRT);
         root.commit();
 
@@ -248,6 +249,30 @@ public class HybridIndexTest extends Abs
         return base;
     }
 
+    private static Tree createIndex(Tree index, String name, Set<String> propNames){
+        IndexDefinitionBuilder idx = new IndexDefinitionBuilder();
+        IndexRule rule = idx.indexRule("nt:base");
+        for (String propName : propNames){
+            rule.property(propName).propertyIndex();
+        }
+        Tree idxTree = index.getChild("oak:index").addChild(name);
+        idx.build(idxTree);
+        return idxTree;
+    }
+
+    private static Tree createFulltextIndex(Tree index, String name){
+        IndexDefinitionBuilder idx = new IndexDefinitionBuilder();
+        idx.evaluatePathRestrictions();
+        idx.indexRule("nt:base")
+                .property(LuceneIndexConstants.REGEX_ALL_PROPS, true)
+                .analyzed()
+                .nodeScopeIndex()
+                .useInExcerpt();
+        Tree idxTree = index.getChild("oak:index").addChild(name);
+        idx.build(idxTree);
+        return idxTree;
+    }
+
     private static class AccessRecordingBlob extends ArrayBasedBlob {
         int accessCount = 0;
         public AccessRecordingBlob(byte[] value) {

Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexWriterFactoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexWriterFactoryTest.java?rev=1772859&r1=1772858&r2=1772859&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexWriterFactoryTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexWriterFactoryTest.java Tue Dec  6 10:32:06 2016
@@ -22,13 +22,13 @@ package org.apache.jackrabbit.oak.plugin
 import java.io.IOException;
 
 import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.core.SimpleCommitContext;
 import org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider;
 import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.IndexingMode;
 import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorProvider;
 import org.apache.jackrabbit.oak.plugins.index.lucene.TestUtil;
+import org.apache.jackrabbit.oak.plugins.index.lucene.util.IndexDefinitionBuilder;
 import org.apache.jackrabbit.oak.spi.commit.CommitContext;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EditorHook;
@@ -39,7 +39,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.apache.jackrabbit.oak.plugins.index.lucene.util.LuceneIndexHelper.newLucenePropertyIndexDefinition;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
 import static org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent.INITIAL_CONTENT;
 import static org.junit.Assert.*;
@@ -190,9 +189,10 @@ public class LocalIndexWriterFactoryTest
     }
 
     private void createIndexDefinition(String idxName, IndexingMode indexingMode) {
-        NodeBuilder idx = newLucenePropertyIndexDefinition(builder.child("oak:index"),
-                idxName, ImmutableSet.of("foo"), "async");
-        TestUtil.enableIndexingMode(idx, indexingMode);
+        IndexDefinitionBuilder idx = new IndexDefinitionBuilder();
+        TestUtil.enableIndexingMode(idx.getBuilderTree(), indexingMode);
+        idx.indexRule("nt:base").property("foo").propertyIndex();
+        builder.child("oak:index").setChildNode(idxName, idx.build());
     }
 
 }
\ No newline at end of file