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 2014/11/27 12:39:34 UTC

svn commit: r1642115 [2/2] - in /jackrabbit/oak/branches/1.0: ./ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/ oak-lucene/src/test/java/org/apache/...

Modified: jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/TestUtil.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/TestUtil.java?rev=1642115&r1=1642114&r2=1642115&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/TestUtil.java (original)
+++ jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/TestUtil.java Thu Nov 27 11:39:33 2014
@@ -19,7 +19,9 @@
 
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 
+import java.util.List;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -29,6 +31,7 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 
 public class TestUtil {
+    private static final AtomicInteger COUNTER = new AtomicInteger();
 
     static void useV2(NodeBuilder idxNb) {
         idxNb.setProperty(LuceneIndexConstants.COMPAT_MODE, IndexFormatVersion.V2.getVersion());
@@ -46,4 +49,62 @@ public class TestUtil {
         return nb;
     }
 
+    public static Tree enableForFullText(Tree props, String propName) {
+        return enableForFullText(props, propName, false);
+    }
+
+    public static Tree enableForFullText(Tree props, String propName,  boolean regex) {
+        Tree prop = props.addChild(unique("prop"));
+        prop.setProperty(LuceneIndexConstants.PROP_NAME, propName);
+        prop.setProperty(LuceneIndexConstants.PROP_PROPERTY_INDEX, true);
+        prop.setProperty(LuceneIndexConstants.PROP_IS_REGEX, regex);
+        prop.setProperty(LuceneIndexConstants.PROP_NODE_SCOPE_INDEX, true);
+        prop.setProperty(LuceneIndexConstants.PROP_ANALYZED, true);
+        prop.setProperty(LuceneIndexConstants.PROP_USE_IN_EXCERPT, true);
+        return prop;
+    }
+
+    public static Tree enablePropertyIndex(Tree props, String propName,  boolean regex) {
+        Tree prop = props.addChild(unique("prop"));
+        prop.setProperty(LuceneIndexConstants.PROP_NAME, propName);
+        prop.setProperty(LuceneIndexConstants.PROP_PROPERTY_INDEX, true);
+        prop.setProperty(LuceneIndexConstants.PROP_IS_REGEX, regex);
+        prop.setProperty(LuceneIndexConstants.PROP_NODE_SCOPE_INDEX, false);
+        prop.setProperty(LuceneIndexConstants.PROP_ANALYZED, false);
+        return prop;
+    }
+
+    public static AggregatorBuilder newNodeAggregator(Tree indexDefn){
+        return new AggregatorBuilder(indexDefn);
+    }
+
+    public static Tree newRulePropTree(Tree indexDefn, String typeName){
+        Tree rules = indexDefn.addChild(LuceneIndexConstants.INDEX_RULES);
+        rules.setOrderableChildren(true);
+        Tree rule = rules.addChild(typeName);
+        Tree props = rule.addChild(LuceneIndexConstants.PROP_NODE);
+        props.setOrderableChildren(true);
+        return props;
+    }
+
+    static class AggregatorBuilder {
+        private final Tree aggs;
+
+        private AggregatorBuilder(Tree indexDefn) {
+            this.aggs = indexDefn.addChild(LuceneIndexConstants.AGGREGATES);
+        }
+
+        AggregatorBuilder newRuleWithName(String primaryType,
+                                          List<String> includes){
+            Tree agg = aggs.addChild(primaryType);
+            for (String include : includes){
+                agg.addChild(unique("include")).setProperty(LuceneIndexConstants.AGG_PATH, include);
+            }
+            return this;
+        }
+    }
+
+    private static String unique(String name){
+        return name + COUNTER.getAndIncrement();
+    }
 }