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/04 05:43:19 UTC
svn commit: r1636505 - in /jackrabbit/oak/trunk/oak-lucene/src:
main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java
Author: chetanm
Date: Tue Nov 4 04:43:19 2014
New Revision: 1636505
URL: http://svn.apache.org/r1636505
Log:
OAK-2250 - Lucene Index property definition is ignored if its not in includePropertyNames config
Changed the logic to include all definitions defined under the 'properties' node
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java?rev=1636505&r1=1636504&r2=1636505&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java Tue Nov 4 04:43:19 2014
@@ -285,7 +285,8 @@ class IndexDefinition {
private Map<String, PropertyDefinition> collectPropertyDefns(NodeBuilder defn) {
Map<String, PropertyDefinition> propDefns = newHashMap();
NodeBuilder propNode = defn.getChildNode(LuceneIndexConstants.PROP_NODE);
- for (String propName : Iterables.concat(includes, orderedProps)) {
+ //Include all immediate child nodes to 'properties' node by default
+ for (String propName : Iterables.concat(includes, orderedProps, propNode.getChildNodeNames())) {
NodeBuilder propDefnNode;
if (relativeProps.containsKey(propName)) {
propDefnNode = relativeProps.get(propName).getPropDefnNode(propNode);
@@ -293,7 +294,7 @@ class IndexDefinition {
propDefnNode = propNode.getChildNode(propName);
}
- if (propDefnNode.exists()) {
+ if (propDefnNode.exists() && !propDefns.containsKey(propName)) {
propDefns.put(propName, new PropertyDefinition(this, propName, propDefnNode));
}
}
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java?rev=1636505&r1=1636504&r2=1636505&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java Tue Nov 4 04:43:19 2014
@@ -93,6 +93,17 @@ public class IndexDefinitionTest {
}
@Test
+ public void propertyDefinitionWithExcludes() throws Exception{
+ builder.child(PROP_NODE).child("foo").setProperty(LuceneIndexConstants.PROP_TYPE, PropertyType.TYPENAME_DATE);
+ IndexDefinition defn = new IndexDefinition(builder);
+
+ assertTrue(defn.hasPropertyDefinition("foo"));
+ assertFalse(defn.hasPropertyDefinition("bar"));
+
+ assertEquals(PropertyType.DATE, defn.getPropDefn("foo").getPropertyType());
+ }
+
+ @Test
public void codecConfig() throws Exception{
IndexDefinition defn = new IndexDefinition(builder);
assertNotNull(defn.getCodec());