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 al...@apache.org on 2012/10/24 14:18:30 UTC
svn commit: r1401643 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/plugins/index/
main/java/org/apache/jackrabbit/oak/plugins/index/lucene/
main/java/org/apache/jackrabbit/oak/plugins/index/old/
test/java/org/apache/jackr...
Author: alexparvulescu
Date: Wed Oct 24 12:18:29 2012
New Revision: 1401643
URL: http://svn.apache.org/viewvc?rev=1401643&view=rev
Log:
OAK-178 Query: index definition documentation and tooling
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexConstants.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexDefinition.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexDefinitionImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneEditor.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneHook.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneReindexHook.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/old/PropertyIndexConstants.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/old/PropertyIndexer.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/AbstractQueryTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexConstants.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexConstants.java?rev=1401643&r1=1401642&r2=1401643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexConstants.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexConstants.java Wed Oct 24 12:18:29 2012
@@ -18,6 +18,8 @@ package org.apache.jackrabbit.oak.plugin
public interface IndexConstants {
+ String INDEX_DEFINITIONS_NODE_TYPE = "oak:queryIndexDefinition";
+
String INDEX_DEFINITIONS_NAME = "oak:index";
String TYPE_PROPERTY_NAME = "type";
@@ -28,6 +30,7 @@ public interface IndexConstants {
String INDEX_DATA_CHILD_NAME = ":data";
+ //TODO remove this property as soon as the index manager is in
String DEFAULT_INDEX_HOME = "/";
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexDefinition.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexDefinition.java?rev=1401643&r1=1401642&r2=1401643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexDefinition.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexDefinition.java Wed Oct 24 12:18:29 2012
@@ -18,8 +18,6 @@ package org.apache.jackrabbit.oak.plugin
import javax.annotation.Nonnull;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
-
/**
* Defines an index definition
*
@@ -46,15 +44,4 @@ public interface IndexDefinition {
@Nonnull
String getType();
- /**
- * @return flag marking if reindexing is required on this index
- */
- boolean isReindex();
-
- /**
- * @return the state that this definition is built on
- */
- @Nonnull
- NodeState getState();
-
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexDefinitionImpl.java?rev=1401643&r1=1401642&r2=1401643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexDefinitionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexDefinitionImpl.java Wed Oct 24 12:18:29 2012
@@ -16,23 +16,16 @@
*/
package org.apache.jackrabbit.oak.plugins.index;
-import org.apache.jackrabbit.oak.api.PropertyState;
-import org.apache.jackrabbit.oak.api.Type;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
-
public class IndexDefinitionImpl implements IndexDefinition, IndexConstants {
private final String name;
private final String type;
private final String path;
- private final NodeState state;
- public IndexDefinitionImpl(String name, String type, String path,
- NodeState state) {
+ public IndexDefinitionImpl(String name, String type, String path) {
this.name = name;
this.type = type;
this.path = path;
- this.state = state;
}
@Override
@@ -51,28 +44,18 @@ public class IndexDefinitionImpl impleme
}
@Override
- public boolean isReindex() {
- PropertyState ps = state.getProperty(REINDEX_PROPERTY_NAME);
- return ps != null && ps.getValue(Type.BOOLEAN);
- }
-
- @Override
- public NodeState getState() {
- return state;
- }
-
- @Override
public String toString() {
return "IndexDefinitionImpl [name=" + name + ", type=" + type
- + ", path=" + path + ", reindex=" + isReindex() + ", state="
- + state + "]";
+ + ", path=" + path + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + ((state == null) ? 0 : state.hashCode());
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + ((path == null) ? 0 : path.hashCode());
+ result = prime * result + ((type == null) ? 0 : type.hashCode());
return result;
}
@@ -85,12 +68,21 @@ public class IndexDefinitionImpl impleme
if (getClass() != obj.getClass())
return false;
IndexDefinitionImpl other = (IndexDefinitionImpl) obj;
- if (state == null) {
- if (other.state != null)
+ if (name == null) {
+ if (other.name != null)
+ return false;
+ } else if (!name.equals(other.name))
+ return false;
+ if (path == null) {
+ if (other.path != null)
return false;
- } else if (!state.equals(other.state))
+ } else if (!path.equals(other.path))
+ return false;
+ if (type == null) {
+ if (other.type != null)
+ return false;
+ } else if (!type.equals(other.type))
return false;
return true;
}
-
}
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=1401643&r1=1401642&r2=1401643&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 Wed Oct 24 12:18:29 2012
@@ -72,7 +72,7 @@ public class IndexUtils implements Index
if (typeFilter != null && !typeFilter.equals(type)) {
return null;
}
- return new IndexDefinitionImpl(name, type, concat(path, name), ns);
+ return new IndexDefinitionImpl(name, type, concat(path, name));
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneEditor.java?rev=1401643&r1=1401642&r2=1401643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneEditor.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneEditor.java Wed Oct 24 12:18:29 2012
@@ -30,7 +30,6 @@ import org.apache.jackrabbit.oak.api.Blo
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Type;
-import org.apache.jackrabbit.oak.plugins.index.IndexDefinition;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -72,10 +71,10 @@ class LuceneEditor implements CommitHook
}
}
- private final IndexDefinition index;
+ private final String path;
- public LuceneEditor(IndexDefinition indexDefinition) {
- this.index = indexDefinition;
+ public LuceneEditor(String path) {
+ this.path = path;
}
@Override
@@ -83,7 +82,7 @@ class LuceneEditor implements CommitHook
throws CommitFailedException {
NodeBuilder rootBuilder = after.builder();
NodeBuilder builder = rootBuilder;
- for (String name : elements(index.getPath())) {
+ for (String name : elements(path)) {
builder = builder.child(name);
}
builder = builder.child(INDEX_DATA_CHILD_NAME);
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneHook.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneHook.java?rev=1401643&r1=1401642&r2=1401643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneHook.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneHook.java Wed Oct 24 12:18:29 2012
@@ -42,7 +42,7 @@ public class LuceneHook implements Commi
List<IndexDefinition> indexDefinitions = buildIndexDefinitions(after,
indexConfigPath, TYPE_LUCENE);
for (IndexDefinition def : indexDefinitions) {
- hooks.add(new LuceneEditor(def));
+ hooks.add(new LuceneEditor(def.getPath()));
}
return CompositeHook.compose(hooks).processCommit(before, after);
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneReindexHook.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneReindexHook.java?rev=1401643&r1=1401642&r2=1401643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneReindexHook.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneReindexHook.java Wed Oct 24 12:18:29 2012
@@ -64,10 +64,6 @@ public class LuceneReindexHook implement
if (!defsBefore.contains(def)) {
defsChanged.add(def);
}
- // verify reindex flag
- if (def.isReindex()) {
- defsChanged.add(def);
- }
}
if (defsChanged.isEmpty()) {
return after;
@@ -79,7 +75,7 @@ public class LuceneReindexHook implement
// TODO buffer content reindex
List<CommitHook> hooks = new ArrayList<CommitHook>();
for (IndexDefinition def : defsChanged) {
- hooks.add(new LuceneEditor(def));
+ hooks.add(new LuceneEditor(def.getPath()));
}
NodeState done = CompositeHook.compose(hooks).processCommit(
MemoryNodeState.EMPTY_NODE, after);
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/old/PropertyIndexConstants.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/old/PropertyIndexConstants.java?rev=1401643&r1=1401642&r2=1401643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/old/PropertyIndexConstants.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/old/PropertyIndexConstants.java Wed Oct 24 12:18:29 2012
@@ -26,7 +26,7 @@ public interface PropertyIndexConstants
* The root node of the index definition (configuration) nodes.
*/
// TODO OAK-178 discuss where to store index config data
- String INDEX_CONFIG_PATH = IndexUtils.DEFAULT_INDEX_HOME + IndexUtils.INDEX_DEFINITIONS_NAME + "/indexes";
+ String INDEX_CONFIG_PATH = "/" + IndexUtils.INDEX_DEFINITIONS_NAME + "/indexes";
// "/jcr:system/indexes";
/**
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/old/PropertyIndexer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/old/PropertyIndexer.java?rev=1401643&r1=1401642&r2=1401643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/old/PropertyIndexer.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/old/PropertyIndexer.java Wed Oct 24 12:18:29 2012
@@ -35,7 +35,7 @@ import org.apache.jackrabbit.oak.spi.sta
public class PropertyIndexer implements QueryIndexProvider, CommitHook,
PropertyIndexConstants {
- private final String indexConfigPath = IndexUtils.DEFAULT_INDEX_HOME;
+ private final String indexConfigPath = "/";
private final Indexer indexer;
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java?rev=1401643&r1=1401642&r2=1401643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java Wed Oct 24 12:18:29 2012
@@ -41,15 +41,17 @@ import org.junit.Test;
public class LuceneIndexTest implements LuceneIndexConstants {
+ private static String DEFAULT_INDEX_NAME = "default-lucene";
+
@Test
public void testLucene() throws Exception {
KernelNodeStore store = new KernelNodeStore(new MicroKernelImpl());
IndexDefinition testID = new IndexDefinitionImpl(DEFAULT_INDEX_NAME,
- TYPE_LUCENE, DEFAULT_INDEX_HOME + INDEX_DEFINITIONS_NAME + "/"
- + DEFAULT_INDEX_NAME, store.getRoot());
+ TYPE_LUCENE, "/" + INDEX_DEFINITIONS_NAME + "/"
+ + DEFAULT_INDEX_NAME);
- store.setHook(new LuceneEditor(testID));
+ store.setHook(new LuceneEditor(testID.getPath()));
Root root = new RootImpl(store, null, new Subject(),
new AccessControlProviderImpl(),
new CompositeQueryIndexProvider());
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/AbstractQueryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/AbstractQueryTest.java?rev=1401643&r1=1401642&r2=1401643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/AbstractQueryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/AbstractQueryTest.java Wed Oct 24 12:18:29 2012
@@ -47,8 +47,8 @@ import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
-import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.DEFAULT_INDEX_HOME;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NAME;
+import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NODE_TYPE;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.REINDEX_PROPERTY_NAME;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_PROPERTY_NAME;
import static org.junit.Assert.assertEquals;
@@ -60,9 +60,8 @@ import static org.junit.Assert.fail;
*/
public abstract class AbstractQueryTest {
+ public static final String TEST_INDEX_HOME = "/";
protected static final String TEST_INDEX_NAME = "test-index";
- protected static final String TEST_INDEX_HOME = DEFAULT_INDEX_HOME;
- protected static final String INDEX_DEFINITION_NODE_TYPE = "nam:oak:queryIndexDefinition";
protected SessionQueryEngine qe;
protected ContentSession session;
@@ -102,7 +101,7 @@ public abstract class AbstractQueryTest
indexDef = indexDef.addChild(INDEX_DEFINITIONS_NAME).addChild(
TEST_INDEX_NAME);
indexDef.setProperty(JcrConstants.JCR_PRIMARYTYPE,
- INDEX_DEFINITION_NODE_TYPE);
+ INDEX_DEFINITIONS_NODE_TYPE, Type.NAME);
indexDef.setProperty(TYPE_PROPERTY_NAME, type);
indexDef.setProperty(REINDEX_PROPERTY_NAME, true);
return indexDef;