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/12/13 05:24:05 UTC
svn commit: r1773920 - in
/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene:
IndexDefinition.java LuceneIndexEditorContext.java
Author: chetanm
Date: Tue Dec 13 05:24:04 2016
New Revision: 1773920
URL: http://svn.apache.org/viewvc?rev=1773920&view=rev
Log:
OAK-4400 - Correlate index with the index definition used to build it
Modify the IndexDefinition.Builder to use the stored index definition when not used in reindexing mode
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.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=1773920&r1=1773919&r2=1773920&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 Dec 13 05:24:04 2016
@@ -273,6 +273,7 @@ public final class IndexDefinition imple
private final String indexPath;
private IndexFormatVersion version;
private String uid;
+ private boolean reindexMode;
public Builder(NodeState root, NodeState defn, String indexPath) {
this.root = checkNotNull(root);
@@ -290,6 +291,11 @@ public final class IndexDefinition imple
return this;
}
+ public Builder reindex(){
+ this.reindexMode = true;
+ return this;
+ }
+
public IndexDefinition build(){
if (version == null){
version = determineIndexFormatVersion(defn);
@@ -300,7 +306,12 @@ public final class IndexDefinition imple
uid = DEFAULT_UID;
}
}
- return new IndexDefinition(root, defn, version, uid, checkNotNull(indexPath));
+
+ NodeState indexDefnStateToUse = defn;
+ if (!reindexMode){
+ indexDefnStateToUse = getIndexDefinitionState(defn);
+ }
+ return new IndexDefinition(root, indexDefnStateToUse, version, uid, indexPath);
}
}
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java?rev=1773920&r1=1773919&r2=1773920&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java Tue Dec 13 05:24:04 2016
@@ -50,6 +50,8 @@ import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.jackrabbit.oak.commons.IOUtils.humanReadableByteCount;
+import static org.apache.jackrabbit.oak.plugins.index.lucene.IndexDefinition.INDEX_DEFINITION_NODE;
+import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PROP_REFRESH_DEFN;
public class LuceneIndexEditorContext {
@@ -195,7 +197,7 @@ public class LuceneIndexEditorContext {
//For case where index definition is rewritten there we get fresh state
NodeState defnState = indexDefnRewritten ? definitionBuilder.getNodeState() : definitionBuilder.getBaseState();
if (!IndexDefinition.isDisableStoredIndexDefinition()) {
- definitionBuilder.setChildNode(IndexDefinition.INDEX_DEFINITION_NODE, NodeStateCloner.cloneVisibleState(defnState));
+ definitionBuilder.setChildNode(INDEX_DEFINITION_NODE, NodeStateCloner.cloneVisibleState(defnState));
}
String uid = configureUniqueId(definitionBuilder);
@@ -204,6 +206,7 @@ public class LuceneIndexEditorContext {
.newBuilder(root, defnState, indexingContext.getIndexPath())
.version(version)
.uid(uid)
+ .reindex()
.build();
}
@@ -283,16 +286,16 @@ public class LuceneIndexEditorContext {
indexingContext, boolean asyncIndexing) {
NodeState defnState = definition.getBaseState();
if (asyncIndexing && !IndexDefinition.isDisableStoredIndexDefinition()){
- if (definition.getBoolean(LuceneIndexConstants.PROP_REFRESH_DEFN)){
- definition.removeProperty(LuceneIndexConstants.PROP_REFRESH_DEFN);
+ if (definition.getBoolean(PROP_REFRESH_DEFN)){
+ definition.removeProperty(PROP_REFRESH_DEFN);
NodeState clonedState = NodeStateCloner.cloneVisibleState(defnState);
- definition.setChildNode(IndexDefinition.INDEX_DEFINITION_NODE, clonedState);
+ definition.setChildNode(INDEX_DEFINITION_NODE, clonedState);
log.info("Refreshed the index definition for [{}]", indexingContext.getIndexPath());
if (log.isDebugEnabled()){
log.debug("Updated index definition is {}", NodeStateUtils.toString(clonedState));
}
- } else if (!definition.hasChildNode(IndexDefinition.INDEX_DEFINITION_NODE)){
- definition.setChildNode(IndexDefinition.INDEX_DEFINITION_NODE, NodeStateCloner.cloneVisibleState(defnState));
+ } else if (!definition.hasChildNode(INDEX_DEFINITION_NODE)){
+ definition.setChildNode(INDEX_DEFINITION_NODE, NodeStateCloner.cloneVisibleState(defnState));
log.info("Stored the cloned index definition for [{}]. Changes in index definition would now only be " +
"effective post reindexing", indexingContext.getIndexPath());
}