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/14 07:47:08 UTC
svn commit: r1639577 -
/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
Author: chetanm
Date: Fri Nov 14 06:47:07 2014
New Revision: 1639577
URL: http://svn.apache.org/r1639577
Log:
OAK-2261 - Enable support for NodeType based indexing rules (WIP)
Remove dependency on ImmutableRoot (as it is part of o.a.j.oak.core package which is not exported)
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java?rev=1639577&r1=1639576&r2=1639577&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java Fri Nov 14 06:47:07 2014
@@ -28,6 +28,7 @@ import java.util.Set;
import java.util.regex.Pattern;
import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
@@ -41,7 +42,6 @@ import org.apache.jackrabbit.JcrConstant
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
-import org.apache.jackrabbit.oak.core.ImmutableRoot;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.plugins.index.lucene.util.LuceneIndexHelper;
import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager;
@@ -69,6 +69,7 @@ import static org.apache.jackrabbit.oak.
import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PROP_NAME;
import static org.apache.jackrabbit.oak.plugins.index.lucene.PropertyDefinition.DEFAULT_BOOST;
import static org.apache.jackrabbit.oak.plugins.index.lucene.util.ConfigUtil.getOptionalValue;
+import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.NODE_TYPES_PATH;
import static org.apache.jackrabbit.oak.plugins.tree.TreeConstants.OAK_CHILD_ORDER;
class IndexDefinition {
@@ -425,8 +426,7 @@ class IndexDefinition {
}
Map<String, List<IndexingRule>> nt2rules = newHashMap();
- ReadOnlyNodeTypeManager ntReg = ReadOnlyNodeTypeManager.getInstance(new ImmutableRoot(root),
- NamePathMapper.DEFAULT);
+ ReadOnlyNodeTypeManager ntReg = createNodeTypeManager(new ImmutableTree(root));
//Use Tree API to read ordered child nodes
ImmutableTree ruleTree = new ImmutableTree(indexRules);
@@ -680,6 +680,21 @@ class IndexDefinition {
}
}
+ private static ReadOnlyNodeTypeManager createNodeTypeManager(final Tree root) {
+ return new ReadOnlyNodeTypeManager() {
+ @Override
+ protected Tree getTypes() {
+ return TreeUtil.getTree(root,NODE_TYPES_PATH);
+ }
+
+ @Nonnull
+ @Override
+ protected NamePathMapper getNamePathMapper() {
+ return NamePathMapper.DEFAULT;
+ }
+ };
+ }
+
private static String getPrimaryTypeName(Tree state) {
String primaryType = TreeUtil.getPrimaryTypeName(state);
//In case not a proper JCR assume nt:base