Author: chetanm Date: Fri Jan 12 05:29:56 2018 New Revision: 1820947 URL: http://svn.apache.org/viewvc?rev=1820947&view=rev Log: OAK-7147 - Oak run LuceneIndexer indexes excluded parent nodes
Added: jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexerTest.java (with props) Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/CompositeIndexer.java jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexer.java jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/NodeStateIndexer.java jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/CompositeIndexer.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/CompositeIndexer.java?rev=1820947&r1=1820946&r2=1820947&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/CompositeIndexer.java (original) +++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/CompositeIndexer.java Fri Jan 12 05:29:56 2018 @@ -51,10 +51,12 @@ public class CompositeIndexer implements } @Override - public void index(NodeStateEntry entry) throws IOException, CommitFailedException { + public boolean index(NodeStateEntry entry) throws IOException, CommitFailedException { + boolean result = false; for (NodeStateIndexer indexer : indexers) { - indexer.index(entry); + result |= indexer.index(entry); } + return result; } @Override Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexer.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexer.java?rev=1820947&r1=1820946&r2=1820947&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexer.java (original) +++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexer.java Fri Jan 12 05:29:56 2018 @@ -54,7 +54,7 @@ public class LuceneIndexer implements No @Override public boolean shouldInclude(String path) { - return definition.getPathFilter().filter(path) != PathFilter.Result.EXCLUDE; + return getFilterResult(path) != PathFilter.Result.EXCLUDE; } @Override @@ -64,11 +64,15 @@ public class LuceneIndexer implements No } @Override - public void index(NodeStateEntry entry) throws IOException, CommitFailedException { + public boolean index(NodeStateEntry entry) throws IOException, CommitFailedException { + if (getFilterResult(entry.getPath()) != PathFilter.Result.INCLUDE) { + return false; + } + IndexingRule indexingRule = definition.getApplicableIndexingRule(entry.getNodeState()); if (indexingRule == null) { - return; + return false; } LuceneDocumentMaker maker = newDocumentMaker(indexingRule, entry.getPath()); @@ -76,7 +80,10 @@ public class LuceneIndexer implements No if (doc != null) { writeToIndex(doc, entry.getPath()); progressReporter.indexUpdate(definition.getIndexPath()); + return true; } + + return false; } @Override @@ -94,6 +101,10 @@ public class LuceneIndexer implements No indexWriter.close(System.currentTimeMillis()); } + private PathFilter.Result getFilterResult(String path) { + return definition.getPathFilter().filter(path); + } + private void writeToIndex(Document doc, String path) throws IOException { indexWriter.updateDocument(path, doc); } Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/NodeStateIndexer.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/NodeStateIndexer.java?rev=1820947&r1=1820946&r2=1820947&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/NodeStateIndexer.java (original) +++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/NodeStateIndexer.java Fri Jan 12 05:29:56 2018 @@ -32,7 +32,7 @@ public interface NodeStateIndexer extend boolean shouldInclude(NodeDocument doc); - void index(NodeStateEntry entry) throws IOException, CommitFailedException; + boolean index(NodeStateEntry entry) throws IOException, CommitFailedException; boolean indexesRelativeNodes(); Modified: jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java?rev=1820947&r1=1820946&r2=1820947&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java (original) +++ jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java Fri Jan 12 05:29:56 2018 @@ -278,10 +278,12 @@ public class DocumentStoreIndexerIT exte } @Override - public void index(NodeStateEntry entry) throws IOException, CommitFailedException { + public boolean index(NodeStateEntry entry) throws IOException, CommitFailedException { if (p.test(entry.getPath())) { paths.add(entry.getPath()); + return true; } + return false; } @Override Added: jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexerTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexerTest.java?rev=1820947&view=auto ============================================================================== --- jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexerTest.java (added) +++ jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexerTest.java Fri Jan 12 05:29:56 2018 @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.jackrabbit.oak.index.indexer.document; + +import org.apache.jackrabbit.oak.plugins.index.lucene.IndexDefinition; +import org.apache.jackrabbit.oak.plugins.index.lucene.binary.BinaryTextExtractor; +import org.apache.jackrabbit.oak.plugins.index.lucene.util.IndexDefinitionBuilder; +import org.apache.jackrabbit.oak.plugins.index.lucene.writer.LuceneIndexWriter; +import org.apache.jackrabbit.oak.plugins.index.progress.IndexingProgressReporter; +import org.apache.jackrabbit.oak.spi.state.NodeBuilder; +import org.apache.jackrabbit.oak.spi.state.NodeState; +import org.junit.Test; + +import static org.apache.jackrabbit.oak.InitialContent.INITIAL_CONTENT; +import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE; +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +public class LuceneIndexerTest { + private NodeState root = INITIAL_CONTENT; + + @Test + public void nodeIndexed_WithIncludedPaths() throws Exception{ + IndexDefinitionBuilder idxb = new IndexDefinitionBuilder(); + idxb.indexRule("nt:base").property("foo").propertyIndex(); + idxb.includedPaths("/content"); + + NodeState defn = idxb.build(); + IndexDefinition idxDefn = new IndexDefinition(root, defn, "/oak:index/testIndex"); + + NodeBuilder builder = root.builder(); + LuceneIndexer indexer = new LuceneIndexer(idxDefn, mock(LuceneIndexWriter.class), builder, + mock(BinaryTextExtractor.class), mock(IndexingProgressReporter.class)); + + NodeState testNode = EMPTY_NODE.builder().setProperty("foo","bar").getNodeState(); + + assertTrue(indexer.index(new NodeStateEntry(testNode, "/content/x"))); + assertFalse(indexer.index(new NodeStateEntry(testNode, "/x"))); + assertFalse(indexer.index(new NodeStateEntry(testNode, "/"))); + } + +} \ No newline at end of file Propchange: jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexerTest.java ------------------------------------------------------------------------------ svn:eol-style = native