Author: thomasm
Date: Fri Jul  5 14:23:11 2019
New Revision: 1862618

URL: http://svn.apache.org/viewvc?rev=1862618&view=rev
Log:
OAK-8462 Adding / changing 'useIfExists' should not cause reindex

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=1862618&r1=1862617&r2=1862618&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
 Fri Jul  5 14:23:11 2019
@@ -586,6 +586,7 @@ public final class IndexDefinitionBuilde
         static final List<String> ignorablePropertiesList = of(
                 FulltextIndexConstants.PROP_WEIGHT,
                 FIELD_BOOST,
+                IndexConstants.USE_IF_EXISTS,
                 IndexConstants.QUERY_PATHS,
                 IndexConstants.INDEX_TAGS,
                 FulltextIndexConstants.BLOB_SIZE,

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=1862618&r1=1862617&r2=1862618&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
 Fri Jul  5 14:23:11 2019
@@ -446,6 +446,34 @@ public class IndexDefinitionBuilderTest
         assertTrue(currentNodeState.getBoolean(PROP_REFRESH_DEFN));
 
     }
+    
+    @Test
+    public void noReindexOnUseIfExists() throws Exception {
+        builder.indexRule("nt:base").property("foo1");
+
+        NodeState currentNodeState = builder.build();
+        nodeBuilder = currentNodeState.builder();
+
+        // Unset the reindex flag first because first build would have set it .
+        nodeBuilder.setProperty(REINDEX_PROPERTY_NAME, false);
+        builder = new IndexDefinitionBuilder(nodeBuilder);
+        // Add the "useIfExists" property
+        builder.getBuilderTree().setProperty(IndexConstants.USE_IF_EXISTS, 
"/oak:index");
+        currentNodeState = builder.build();
+        assertFalse(currentNodeState.getBoolean(REINDEX_PROPERTY_NAME));
+        assertTrue(currentNodeState.getBoolean(PROP_REFRESH_DEFN));
+
+        // Now test deleting the flag - should also not set the reindexing flag
+        nodeBuilder = currentNodeState.builder();
+
+        nodeBuilder.removeProperty(PROP_REFRESH_DEFN);
+        builder = new IndexDefinitionBuilder(nodeBuilder);
+        builder.getBuilderTree().removeProperty(IndexConstants.USE_IF_EXISTS);
+
+        currentNodeState = builder.build();
+        assertFalse(currentNodeState.getBoolean(REINDEX_PROPERTY_NAME));
+        assertTrue(currentNodeState.getBoolean(PROP_REFRESH_DEFN));
+    }
 
     // This is a node for configuration on how faceted search works
     // Everything impacts querty time evauation - so no need of reindexing in 
case of changes


Reply via email to