Author: chetanm Date: Thu Oct 5 06:41:40 2017 New Revision: 1811162 URL: http://svn.apache.org/viewvc?rev=1811162&view=rev Log: OAK-6535 - Synchronous Lucene Property Indexes
Add conflict hooks Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexCleaner.java Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexCleaner.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexCleaner.java?rev=1811162&r1=1811161&r2=1811162&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexCleaner.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexCleaner.java Thu Oct 5 06:41:40 2017 @@ -32,12 +32,18 @@ import com.google.common.base.Stopwatch; import com.google.common.collect.ImmutableMap; import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.commons.PathUtils; +import org.apache.jackrabbit.oak.plugins.commit.AnnotatingConflictHandler; +import org.apache.jackrabbit.oak.plugins.commit.ConflictHook; +import org.apache.jackrabbit.oak.plugins.commit.ConflictValidatorProvider; import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfoService; import org.apache.jackrabbit.oak.plugins.index.IndexPathService; import org.apache.jackrabbit.oak.plugins.index.IndexUtils; import org.apache.jackrabbit.oak.spi.commit.CommitContext; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; -import org.apache.jackrabbit.oak.spi.commit.EmptyHook; +import org.apache.jackrabbit.oak.spi.commit.CompositeEditorProvider; +import org.apache.jackrabbit.oak.spi.commit.CompositeHook; +import org.apache.jackrabbit.oak.spi.commit.EditorHook; +import org.apache.jackrabbit.oak.spi.commit.ResetCommitAttributeHook; import org.apache.jackrabbit.oak.spi.commit.SimpleCommitContext; import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; @@ -47,6 +53,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Collections.singletonList; import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_PROPERTY_NAME; import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.TYPE_LUCENE; import static org.apache.jackrabbit.oak.plugins.index.lucene.property.HybridPropertyIndexUtil.PROPERTY_INDEX; @@ -227,9 +234,13 @@ public class PropertyIndexCleaner implem } private void merge(NodeBuilder builder) throws CommitFailedException { - //TODO Configure conflict hooks //TODO Configure validator - nodeStore.merge(builder, EmptyHook.INSTANCE, createCommitInfo()); + CompositeHook hooks = new CompositeHook( + ResetCommitAttributeHook.INSTANCE, + new ConflictHook(new AnnotatingConflictHandler()), + new EditorHook(CompositeEditorProvider.compose(singletonList(new ConflictValidatorProvider()))) + ); + nodeStore.merge(builder, hooks, createCommitInfo()); } private static CommitInfo createCommitInfo() {