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/09/08 08:30:17 UTC
svn commit: r1759759 - 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 Sep 8 08:30:17 2016
New Revision: 1759759
URL: http://svn.apache.org/viewvc?rev=1759759&view=rev
Log:
OAK-4713 - Builder class to simplify Lucene Index Definition building
Add support for regex properties
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=1759759&r1=1759758&r2=1759759&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 Sep 8 08:30:17 2016
@@ -121,16 +121,20 @@ public final class IndexDefinitionBuilde
}
public PropertyRule property(String name){
+ return property(name, false);
+ }
+
+ public PropertyRule property(String name, boolean regex){
PropertyRule propRule = props.get(name);
if (propRule == null){
- propRule = new PropertyRule(this, createChild(propsTree, createPropNodeName(name)), name);
+ propRule = new PropertyRule(this, createChild(propsTree, createPropNodeName(name, regex)), name, regex);
props.put(name, propRule);
}
return propRule;
}
- private String createPropNodeName(String name) {
- name = getSafePropName(name);
+ private String createPropNodeName(String name, boolean regex) {
+ name = regex ? "prop" : getSafePropName(name);
if (name.isEmpty()){
name = "prop";
}
@@ -150,10 +154,13 @@ public final class IndexDefinitionBuilde
private final IndexRule indexRule;
private final Tree propTree;
- private PropertyRule(IndexRule indexRule, Tree propTree, String name) {
+ private PropertyRule(IndexRule indexRule, Tree propTree, String name, boolean regex) {
this.indexRule = indexRule;
this.propTree = propTree;
propTree.setProperty(LuceneIndexConstants.PROP_NAME, name);
+ if (regex) {
+ propTree.setProperty(LuceneIndexConstants.PROP_IS_REGEX, true);
+ }
}
public PropertyRule useInExcerpt(){
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=1759759&r1=1759758&r2=1759759&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 Sep 8 08:30:17 2016
@@ -24,6 +24,7 @@ import java.util.Iterator;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.index.PathFilter;
+import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants;
import org.apache.jackrabbit.oak.plugins.tree.TreeFactory;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
@@ -114,4 +115,14 @@ public class IndexDefinitionBuilderTest
assertEquals("nt:unstructured", children.next().getName());
assertEquals("nt:base", children.next().getName());
}
+
+ @Test
+ public void regexProperty() throws Exception{
+ builder.indexRule("nt:base")
+ .property(LuceneIndexConstants.REGEX_ALL_PROPS, true);
+
+ NodeState state = builder.build();
+ assertTrue(NodeStateUtils.getNode(state, "indexRules/nt:base/properties/prop")
+ .getBoolean(LuceneIndexConstants.PROP_IS_REGEX));
+ }
}
\ No newline at end of file