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/08 06:52:40 UTC
svn commit: r1773189 - in /jackrabbit/oak/trunk/oak-lucene/src:
main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java
test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java
Author: chetanm
Date: Thu Dec 8 06:52:40 2016
New Revision: 1773189
URL: http://svn.apache.org/viewvc?rev=1773189&view=rev
Log:
OAK-5247 - Allow setting property node name in IndexDefinitionBuilder
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java?rev=1773189&r1=1773188&r2=1773189&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java Thu Dec 8 06:52:40 2016
@@ -186,12 +186,23 @@ public final class IndexDefinitionBuilde
return property(name, false);
}
- public PropertyRule property(String name, boolean regex){
+ public PropertyRule property(String name, boolean regex) {
+ return property(null, name, regex);
+ }
+
+ public PropertyRule property(String propDefnNodeName, String name) {
+ return property(propDefnNodeName, name, false);
+ }
+
+ public PropertyRule property(String propDefnNodeName, String name, boolean regex){
PropertyRule propRule = props.get(name);
if (propRule == null){
Tree propTree = findExisting(name);
if (propTree == null){
- propTree = getOrCreateChild(propsTree, createPropNodeName(name, regex));
+ if (propDefnNodeName == null){
+ propDefnNodeName = createPropNodeName(name, regex);
+ }
+ propTree = getOrCreateChild(propsTree, propDefnNodeName);
}
propRule = new PropertyRule(this, propTree, name, regex);
props.put(name, propRule);
@@ -318,6 +329,22 @@ public final class IndexDefinitionBuilde
public IndexRule enclosingRule(){
return indexRule;
}
+
+ public Tree getBuilderTree(){
+ return propTree;
+ }
+
+ public PropertyRule property(String name){
+ return indexRule.property(name, false);
+ }
+
+ public PropertyRule property(String name, boolean regex) {
+ return indexRule.property(null, name, regex);
+ }
+
+ public PropertyRule property(String propDefnNodeName, String name) {
+ return indexRule.property(propDefnNodeName, name, false);
+ }
}
//~--------------------------------------< Aggregates >
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java?rev=1773189&r1=1773188&r2=1773189&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java Thu Dec 8 06:52:40 2016
@@ -22,8 +22,10 @@ package org.apache.jackrabbit.oak.plugin
import java.util.Iterator;
import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.core.ImmutableRoot;
import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
import org.apache.jackrabbit.oak.plugins.index.PathFilter;
import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants;
@@ -225,4 +227,16 @@ public class IndexDefinitionBuilderTest
assertTrue(builder.isReindexRequired());
assertFalse(state.getBoolean(REINDEX_PROPERTY_NAME));
}
+
+ @Test
+ public void propRuleCustomName() throws Exception{
+ builder.indexRule("nt:base").property("foo").property("bar");
+ builder.indexRule("nt:base").property("fooProp", "foo2");
+ builder.indexRule("nt:base").property("fooProp", "foo2");
+
+ Root idx = new ImmutableRoot(builder.build());
+ assertTrue(idx.getTree("/indexRules/nt:base/properties/fooProp").exists());
+ assertTrue(idx.getTree("/indexRules/nt:base/properties/bar").exists());
+ assertTrue(idx.getTree("/indexRules/nt:base/properties/foo").exists());
+ }
}
\ No newline at end of file