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 2014/11/21 08:47:17 UTC
svn commit: r1640870 - in /jackrabbit/oak/trunk/oak-lucene/src:
main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.java
test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
Author: chetanm
Date: Fri Nov 21 07:47:17 2014
New Revision: 1640870
URL: http://svn.apache.org/r1640870
Log:
OAK-2278 - Make current testcases pass with new index implementation
Refactor the testcase to use LucenePropertyIndex. Currently testLucene3 is ignored due to OAK-2283 as type based exclusion is currently not supported for property index
LuceneIndexHelper - Allow null for async. This is only done for testcase to ensure lucene index can be used in sync mode. For production code it should be set to 'async'. Hence @Nonnull annotation is retained
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.java?rev=1640870&r1=1640869&r2=1640870&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.java Fri Nov 21 07:47:17 2014
@@ -161,7 +161,10 @@ public class LuceneIndexHelper {
.setProperty(REINDEX_PROPERTY_NAME, true);
index.setProperty(LuceneIndexConstants.FULL_TEXT_ENABLED, false);
index.setProperty(createProperty(INCLUDE_PROPERTY_NAMES, includes, STRINGS));
- index.setProperty(ASYNC_PROPERTY_NAME, async);
+
+ if (async != null) {
+ index.setProperty(ASYNC_PROPERTY_NAME, async);
+ }
return index;
}
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java?rev=1640870&r1=1640869&r2=1640870&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java Fri Nov 21 07:47:17 2014
@@ -27,7 +27,6 @@ import static com.google.common.collect.
import static com.google.common.collect.Iterators.transform;
import static com.google.common.collect.Sets.newHashSet;
import static com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor;
-import static javax.jcr.PropertyType.TYPENAME_STRING;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
@@ -38,7 +37,7 @@ import static org.apache.jackrabbit.oak.
import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PERSISTENCE_FILE;
import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PERSISTENCE_NAME;
import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PERSISTENCE_PATH;
-import static org.apache.jackrabbit.oak.plugins.index.lucene.util.LuceneIndexHelper.newLuceneIndexDefinition;
+import static org.apache.jackrabbit.oak.plugins.index.lucene.util.LuceneIndexHelper.newLucenePropertyIndexDefinition;
import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.JCR_NODE_TYPES;
import static org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent.INITIAL_CONTENT;
import static org.apache.jackrabbit.oak.spi.query.QueryIndex.AdvancedQueryIndex;
@@ -67,6 +66,7 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.apache.lucene.analysis.Analyzer;
import org.junit.After;
+import org.junit.Ignore;
import org.junit.Test;
import com.google.common.collect.ImmutableList;
@@ -89,8 +89,7 @@ public class LuceneIndexTest {
@Test
public void testLucene() throws Exception {
NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME);
- newLuceneIndexDefinition(index, "lucene",
- ImmutableSet.of(TYPENAME_STRING));
+ newLucenePropertyIndexDefinition(index, "lucene", ImmutableSet.of("foo"), null);
NodeState before = builder.getNodeState();
builder.setProperty("foo", "bar");
@@ -100,12 +99,13 @@ public class LuceneIndexTest {
IndexTracker tracker = new IndexTracker();
tracker.update(indexed);
- AdvancedQueryIndex queryIndex = new LuceneIndex(tracker, analyzer, null);
+ AdvancedQueryIndex queryIndex = new LucenePropertyIndex(tracker, analyzer);
FilterImpl filter = createFilter(NT_BASE);
filter.restrictPath("/", Filter.PathRestriction.EXACT);
filter.restrictProperty("foo", Operator.EQUAL,
PropertyValues.newString("bar"));
- Cursor cursor = queryIndex.query(createPlan(filter), indexed);
+ List<IndexPlan> plans = queryIndex.getPlans(filter, null, builder.getNodeState());
+ Cursor cursor = queryIndex.query(plans.get(0), indexed);
assertTrue(cursor.hasNext());
assertEquals("/", cursor.next().getPath());
assertFalse(cursor.hasNext());
@@ -114,8 +114,7 @@ public class LuceneIndexTest {
@Test
public void testLuceneLazyCursor() throws Exception {
NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME);
- newLuceneIndexDefinition(index, "lucene",
- ImmutableSet.of(TYPENAME_STRING));
+ newLucenePropertyIndexDefinition(index, "lucene", ImmutableSet.of("foo"), null);
NodeState before = builder.getNodeState();
builder.setProperty("foo", "bar");
@@ -130,11 +129,12 @@ public class LuceneIndexTest {
IndexTracker tracker = new IndexTracker();
tracker.update(indexed);
- AdvancedQueryIndex queryIndex = new LuceneIndex(tracker, analyzer, null);
+ AdvancedQueryIndex queryIndex = new LucenePropertyIndex(tracker, analyzer);
FilterImpl filter = createFilter(NT_BASE);
filter.restrictProperty("foo", Operator.EQUAL,
PropertyValues.newString("bar"));
- Cursor cursor = queryIndex.query(createPlan(filter), indexed);
+ List<IndexPlan> plans = queryIndex.getPlans(filter, null, indexed);
+ Cursor cursor = queryIndex.query(plans.get(0), indexed);
List<String> paths = copyOf(transform(cursor, new Function<IndexRow, String>() {
public String apply(IndexRow input) {
@@ -148,8 +148,7 @@ public class LuceneIndexTest {
@Test
public void testLucene2() throws Exception {
NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME);
- newLuceneIndexDefinition(index, "lucene",
- ImmutableSet.of(TYPENAME_STRING));
+ newLucenePropertyIndexDefinition(index, "lucene", ImmutableSet.of("foo"), null);
NodeState before = builder.getNodeState();
builder.setProperty("foo", "bar");
@@ -163,12 +162,13 @@ public class LuceneIndexTest {
IndexTracker tracker = new IndexTracker();
tracker.update(indexed);
- AdvancedQueryIndex queryIndex = new LuceneIndex(tracker, analyzer, null);
+ AdvancedQueryIndex queryIndex = new LucenePropertyIndex(tracker, analyzer);
FilterImpl filter = createFilter(NT_BASE);
// filter.restrictPath("/", Filter.PathRestriction.EXACT);
filter.restrictProperty("foo", Operator.EQUAL,
PropertyValues.newString("bar"));
- Cursor cursor = queryIndex.query(createPlan(filter), indexed);
+ List<IndexPlan> plans = queryIndex.getPlans(filter, null, indexed);
+ Cursor cursor = queryIndex.query(plans.get(0), indexed);
assertTrue(cursor.hasNext());
assertEquals("/a/b/c", cursor.next().getPath());
@@ -178,11 +178,11 @@ public class LuceneIndexTest {
assertFalse(cursor.hasNext());
}
+ @Ignore("OAK-2283")
@Test
public void testLucene3() throws Exception {
NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME);
- newLuceneIndexDefinition(index, "lucene",
- ImmutableSet.of(TYPENAME_STRING));
+ newLucenePropertyIndexDefinition(index, "lucene", ImmutableSet.of("foo"), null);
NodeState before = builder.getNodeState();
builder.setProperty("foo", "bar");
@@ -197,12 +197,13 @@ public class LuceneIndexTest {
IndexTracker tracker = new IndexTracker();
tracker.update(indexed);
- AdvancedQueryIndex queryIndex = new LuceneIndex(tracker, analyzer, null);
+ AdvancedQueryIndex queryIndex = new LucenePropertyIndex(tracker, analyzer);
FilterImpl filter = createFilter(NT_BASE);
// filter.restrictPath("/", Filter.PathRestriction.EXACT);
filter.restrictProperty("foo", Operator.EQUAL,
PropertyValues.newString("bar"));
- Cursor cursor = queryIndex.query(createPlan(filter), indexed);
+ List<IndexPlan> plans = queryIndex.getPlans(filter, null, indexed);
+ Cursor cursor = queryIndex.query(plans.get(0), indexed);
assertTrue(cursor.hasNext());
assertEquals("/a", cursor.next().getPath());
@@ -261,8 +262,7 @@ public class LuceneIndexTest {
//Also initialize the NodeType registry required for Lucene index to work
builder.setChildNode(JCR_SYSTEM, INITIAL_CONTENT.getChildNode(JCR_SYSTEM));
NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME);
- NodeBuilder idxb = newLuceneIndexDefinition(index, "lucene",
- ImmutableSet.of(TYPENAME_STRING));
+ NodeBuilder idxb = newLucenePropertyIndexDefinition(index, "lucene", ImmutableSet.of("foo", "foo2"), null);
idxb.setProperty(PERSISTENCE_NAME, PERSISTENCE_FILE);
idxb.setProperty(PERSISTENCE_PATH, getIndexDir());
@@ -285,8 +285,7 @@ public class LuceneIndexTest {
@Test
public void luceneWithCopyOnReadDir() throws Exception{
NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME);
- newLuceneIndexDefinition(index, "lucene",
- ImmutableSet.of(TYPENAME_STRING));
+ newLucenePropertyIndexDefinition(index, "lucene", ImmutableSet.of("foo", "foo2"), null);
NodeState before = builder.getNodeState();
builder.setProperty("foo", "bar");
@@ -311,8 +310,7 @@ public class LuceneIndexTest {
@Test
public void luceneWithCopyOnReadDirAndReindex() throws Exception{
NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME);
- newLuceneIndexDefinition(index, "lucene",
- ImmutableSet.of(TYPENAME_STRING));
+ newLucenePropertyIndexDefinition(index, "lucene", ImmutableSet.of("foo", "foo2", "foo3"), null);
//1. Create index in two increments
NodeState before = builder.getNodeState();
@@ -366,12 +364,13 @@ public class LuceneIndexTest {
private void assertQuery(IndexTracker tracker, NodeState indexed, String key, String value){
- AdvancedQueryIndex queryIndex = new LuceneIndex(tracker, analyzer, null);
+ AdvancedQueryIndex queryIndex = new LucenePropertyIndex(tracker, analyzer);
FilterImpl filter = createFilter(NT_BASE);
filter.restrictPath("/", Filter.PathRestriction.EXACT);
filter.restrictProperty(key, Operator.EQUAL,
PropertyValues.newString(value));
- Cursor cursor = queryIndex.query(createPlan(filter), indexed);
+ List<IndexPlan> plans = queryIndex.getPlans(filter, null, indexed);
+ Cursor cursor = queryIndex.query(plans.get(0), indexed);
assertTrue(cursor.hasNext());
assertEquals("/", cursor.next().getPath());
assertFalse(cursor.hasNext());
@@ -382,12 +381,4 @@ public class LuceneIndexTest {
dirs.add(dir);
return dir.getAbsolutePath();
}
-
- private IndexPlan createPlan(Filter filter){
- return new IndexPlan.Builder()
- .setFilter(filter)
- .setAttribute(LuceneIndex.ATTR_INDEX_PATH, "/oak:index/lucene")
- .build();
- }
-
}