Author: chetanm
Date: Mon Dec 5 09:57:55 2016
New Revision: 1772617
URL: http://svn.apache.org/viewvc?rev=1772617&view=rev
Log:
OAK-5220 - Remove usage of NodeBuilder in IndexDefinition
reindexCount is only required for case where index has yet not been reindexed
and hence not able to use unique id. So we need to read from NodeBuilder as the
count should be present in persisted NodeState and current count is not
required any more
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/hybrid/HybridIndexTest.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=1772617&r1=1772616&r2=1772617&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
Mon Dec 5 09:57:55 2016
@@ -307,7 +307,7 @@ public final class IndexDefinition imple
this.suggesterUpdateFrequencyMinutes =
evaluateSuggesterUpdateFrequencyMinutes(defn,
DEFAULT_SUGGESTER_UPDATE_FREQUENCY_MINUTES);
this.scorerProviderName = getOptionalValue(defn,
LuceneIndexConstants.PROP_SCORER_PROVIDER, null);
- this.reindexCount = determineReindexCount(defn, defnb);
+ this.reindexCount = getOptionalValue(defn, REINDEX_COUNT, 0);
this.pathFilter = PathFilter.from(new ReadOnlyBuilder(defn));
this.queryPaths = getQueryPaths(defn);
this.saveDirListing = getOptionalValue(defn,
LuceneIndexConstants.SAVE_DIR_LISTING, true);
@@ -1589,18 +1589,6 @@ public final class IndexDefinition imple
return defn.getChildNode(LuceneIndexConstants.INDEX_RULES).exists();
}
- private static long determineReindexCount(NodeState defn, NodeBuilder
defnb) {
- //Give precedence to count from builder as that reflects the latest
state
- //and might be higher than one from nodeState which is the base state
- if (defnb != null && defnb.hasProperty(REINDEX_COUNT)) {
- return defnb.getProperty(REINDEX_COUNT).getValue(Type.LONG);
- }
- if (defn.hasProperty(REINDEX_COUNT)) {
- return defn.getProperty(REINDEX_COUNT).getValue(Type.LONG);
- }
- return 0;
- }
-
@CheckForNull
private static String determineUniqueId(NodeState defn, @Nullable
NodeBuilder defnb) {
String uid = null;
Modified:
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java?rev=1772617&r1=1772616&r2=1772617&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
Mon Dec 5 09:57:55 2016
@@ -31,6 +31,7 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import com.google.common.base.Predicate;
+import org.apache.jackrabbit.JcrConstants;
import org.apache.jackrabbit.oak.Oak;
import org.apache.jackrabbit.oak.api.ContentRepository;
import org.apache.jackrabbit.oak.api.Tree;
@@ -45,6 +46,7 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.lucene.TestUtil;
import
org.apache.jackrabbit.oak.plugins.index.lucene.reader.DefaultIndexReaderFactory;
import
org.apache.jackrabbit.oak.plugins.index.lucene.reader.LuceneIndexReaderFactory;
+import
org.apache.jackrabbit.oak.plugins.index.lucene.util.IndexDefinitionBuilder;
import org.apache.jackrabbit.oak.plugins.index.nodetype.NodeTypeIndexProvider;
import
org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob;
@@ -210,6 +212,22 @@ public class HybridIndexTest extends Abs
assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'",
of("/a", "/b"));
}
+ //@Test
+ public void usageBeforeFirstIndex() throws Exception{
+ IndexDefinitionBuilder idxb = new IndexDefinitionBuilder();
+ idxb.async("sync", "async");
+ idxb.indexRule("nt:base").property("foo").propertyIndex();
+ Tree idx = root.getTree("/oak:index").addChild("hybridtest");
+ idxb.build(idx);
+
+ root.commit();
+
+ createPath("/a").setProperty("foo", "bar");
+ root.commit();
+ setTraversalEnabled(false);
+ assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'",
of("/a"));
+ }
+
private void runAsyncIndex() {
Runnable async = WhiteboardUtils.getService(wb, Runnable.class, new
Predicate<Runnable>() {
@Override