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:45:43 UTC

svn commit: r1636506 - in /jackrabbit/oak/branches/1.0: ./ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java

Author: chetanm
Date: Tue Nov  4 04:45:42 2014
New Revision: 1636506

URL: http://svn.apache.org/r1636506
Log:
OAK-2250 - Lucene Index property definition is ignored if its not in includePropertyNames config

Modified:
    jackrabbit/oak/branches/1.0/   (props changed)
    jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
    jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java

Propchange: jackrabbit/oak/branches/1.0/
------------------------------------------------------------------------------
  Merged /jackrabbit/oak/trunk:r1636505

Modified: jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java?rev=1636506&r1=1636505&r2=1636506&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java (original)
+++ jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java Tue Nov  4 04:45:42 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/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java?rev=1636506&r1=1636505&r2=1636506&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java (original)
+++ jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java Tue Nov  4 04:45:42 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());