Author: chetanm
Date: Fri May 19 08:10:28 2017
New Revision: 1795591
URL: http://svn.apache.org/viewvc?rev=1795591&view=rev
Log:
OAK-6192 - Lucene IndexInfoProvider implementation
Move the logic for getting async lane name to IndexUtils
Added:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUtilsTest.java
(with props)
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProvider.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProviderTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java?rev=1795591&r1=1795590&r2=1795591&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java
Fri May 19 08:10:28 2017
@@ -16,6 +16,7 @@
*/
package org.apache.jackrabbit.oak.plugins.index;
+import static com.google.common.base.Preconditions.checkArgument;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.apache.jackrabbit.JcrConstants.NT_UNSTRUCTURED;
import static org.apache.jackrabbit.oak.api.Type.NAME;
@@ -31,6 +32,7 @@ import static org.apache.jackrabbit.oak.
import java.util.Collection;
import java.util.Map;
+import java.util.Set;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
@@ -38,6 +40,8 @@ import javax.annotation.Nullable;
import javax.jcr.RepositoryException;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
@@ -220,4 +224,18 @@ public class IndexUtils {
}
return entry;
}
+
+ @CheckForNull
+ public static String getAsyncLaneName(NodeState idxState, String
indexPath) {
+ PropertyState async =
idxState.getProperty(IndexConstants.ASYNC_PROPERTY_NAME);
+ if (async != null) {
+ Set<String> asyncNames =
Sets.newHashSet(async.getValue(Type.STRINGS));
+ asyncNames.remove(IndexConstants.INDEXING_MODE_NRT);
+ asyncNames.remove(IndexConstants.INDEXING_MODE_SYNC);
+ checkArgument(!asyncNames.isEmpty(), "No valid async name found
for " +
+ "index [%s], definition %s", indexPath, idxState);
+ return Iterables.getOnlyElement(asyncNames);
+ }
+ return null;
+ }
}
Added:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUtilsTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUtilsTest.java?rev=1795591&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUtilsTest.java
(added)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUtilsTest.java
Fri May 19 08:10:28 2017
@@ -0,0 +1,44 @@
+/*
+ * 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.plugins.index;
+
+import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
+import org.junit.Test;
+
+import static com.google.common.collect.Lists.newArrayList;
+import static
org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
+import static org.junit.Assert.*;
+
+public class IndexUtilsTest {
+
+ @Test
+ public void asyncName() throws Exception {
+ assertNull(IndexUtils.getAsyncLaneName(EMPTY_NODE, "/fooIndex"));
+
+ NodeBuilder builder = EMPTY_NODE.builder();
+ builder.setProperty("async", newArrayList("async2", "sync"),
Type.STRINGS);
+ assertEquals("async2",
IndexUtils.getAsyncLaneName(builder.getNodeState(), "/fooIndex"));
+
+ builder.setProperty("async", newArrayList("async3"), Type.STRINGS);
+ assertEquals("async3",
IndexUtils.getAsyncLaneName(builder.getNodeState(), "/fooIndex"));
+ }
+
+}
\ No newline at end of file
Propchange:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUtilsTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProvider.java?rev=1795591&r1=1795590&r2=1795591&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProvider.java
Fri May 19 08:10:28 2017
@@ -34,6 +34,7 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
import org.apache.jackrabbit.oak.plugins.index.IndexInfo;
import org.apache.jackrabbit.oak.plugins.index.IndexInfoProvider;
+import org.apache.jackrabbit.oak.plugins.index.IndexUtils;
import org.apache.jackrabbit.oak.plugins.index.lucene.directory.DirectoryUtils;
import
org.apache.jackrabbit.oak.plugins.index.lucene.directory.IndexConsistencyChecker;
import
org.apache.jackrabbit.oak.plugins.index.lucene.writer.MultiplexersLucene;
@@ -67,19 +68,6 @@ public class LuceneIndexInfoProvider imp
this.workDir = checkNotNull(workDir);
}
- static String getAsyncName(NodeState idxState, String indexPath) {
- PropertyState async =
idxState.getProperty(IndexConstants.ASYNC_PROPERTY_NAME);
- if (async != null) {
- Set<String> asyncNames =
Sets.newHashSet(async.getValue(Type.STRINGS));
- asyncNames.remove(IndexConstants.INDEXING_MODE_NRT);
- asyncNames.remove(IndexConstants.INDEXING_MODE_SYNC);
- checkArgument(!asyncNames.isEmpty(), "No valid async name found
for " +
- "index [%s], definition %s", indexPath, idxState);
- return Iterables.getOnlyElement(asyncNames);
- }
- return null;
- }
-
@Override
public String getType() {
return LuceneIndexConstants.TYPE_LUCENE;
@@ -107,7 +95,7 @@ public class LuceneIndexInfoProvider imp
}
private void computeAsyncIndexInfo(NodeState idxState, String indexPath,
LuceneIndexInfo info) {
- String asyncName = getAsyncName(idxState, indexPath);
+ String asyncName = IndexUtils.getAsyncLaneName(idxState, indexPath);
if (asyncName == null) {
log.warn("No 'async' value for index definition at [{}].
Definition {}", indexPath, idxState);
return;
Modified:
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProviderTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProviderTest.java?rev=1795591&r1=1795590&r2=1795591&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProviderTest.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProviderTest.java
Fri May 19 08:10:28 2017
@@ -57,18 +57,6 @@ public class LuceneIndexInfoProviderTest
provider = new LuceneIndexInfoProvider(store, asyncService,
temporaryFolder.getRoot());
}
- @Test
- public void asyncName() throws Exception {
- assertNull(LuceneIndexInfoProvider.getAsyncName(EMPTY_NODE,
"/fooIndex"));
-
- NodeBuilder builder = EMPTY_NODE.builder();
- builder.setProperty("async", newArrayList("async2", "sync"),
Type.STRINGS);
- assertEquals("async2",
LuceneIndexInfoProvider.getAsyncName(builder.getNodeState(), "/fooIndex"));
-
- builder.setProperty("async", newArrayList("async3"), Type.STRINGS);
- assertEquals("async3",
LuceneIndexInfoProvider.getAsyncName(builder.getNodeState(), "/fooIndex"));
- }
-
@Test(expected = IllegalArgumentException.class)
public void infoNonExisting() throws Exception {
provider.getInfo("/no/existing/path");