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 th...@apache.org on 2016/05/24 08:20:27 UTC
svn commit: r1745322 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/query/
oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/
oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/
oak-core/src/test/java/...
Author: thomasm
Date: Tue May 24 08:20:27 2016
New Revision: 1745322
URL: http://svn.apache.org/viewvc?rev=1745322&view=rev
Log:
OAK-4381 Query engine: decouple nodetype lookup
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/NodeStateNodeTypeInfoProvider.java (with props)
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfo.java (with props)
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfoProvider.java (with props)
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ExecutionContext.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElementFactory.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/AsyncPropertyIndexTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/FilterTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/LargeQueryTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/NativeQueryTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2OptimiseQueryTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2ParserTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/XPathTest.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlannerTest.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndexTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ExecutionContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ExecutionContext.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ExecutionContext.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ExecutionContext.java Tue May 24 08:20:27 2016
@@ -23,6 +23,7 @@ import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import org.apache.jackrabbit.oak.api.Root;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.spi.query.QueryIndexProvider;
import org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -68,6 +69,15 @@ public class ExecutionContext {
public NodeState getBaseState() {
return baseState;
}
+
+ /**
+ * Get the nodetype info provider.
+ *
+ * @return the provider
+ */
+ public NodeTypeInfoProvider getNodeTypeInfoProvider() {
+ return new NodeStateNodeTypeInfoProvider(baseState);
+ }
/**
* Used to create the actual query results from the indexed paths, needs to
Added: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/NodeStateNodeTypeInfoProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/NodeStateNodeTypeInfoProvider.java?rev=1745322&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/NodeStateNodeTypeInfoProvider.java (added)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/NodeStateNodeTypeInfoProvider.java Tue May 24 08:20:27 2016
@@ -0,0 +1,100 @@
+/*
+ * 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.query;
+
+import static com.google.common.collect.Sets.newHashSet;
+import static org.apache.jackrabbit.JcrConstants.JCR_ISMIXIN;
+import static org.apache.jackrabbit.JcrConstants.JCR_NODETYPENAME;
+import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
+import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.JCR_NODE_TYPES;
+import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.REP_MIXIN_SUBTYPES;
+import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.REP_NAMED_SINGLE_VALUED_PROPERTIES;
+import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.REP_PRIMARY_SUBTYPES;
+import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.REP_SUPERTYPES;
+
+import java.util.Set;
+
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfo;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
+import org.apache.jackrabbit.oak.spi.state.NodeState;
+
+/**
+ * A nodetype info provider that is based on node states.
+ */
+public class NodeStateNodeTypeInfoProvider implements NodeTypeInfoProvider {
+
+ private final NodeState types;
+
+ public NodeStateNodeTypeInfoProvider(NodeState baseState) {
+ this.types = baseState.
+ getChildNode(JCR_SYSTEM).
+ getChildNode(JCR_NODE_TYPES);
+ }
+
+ @Override
+ public NodeTypeInfo getNodeTypeInfo(String nodeTypeName) {
+ NodeState type = types.getChildNode(nodeTypeName);
+ return new NodeStateNodeTypeInfo(type);
+ }
+
+ static class NodeStateNodeTypeInfo implements NodeTypeInfo {
+
+ private final NodeState type;
+
+ NodeStateNodeTypeInfo(NodeState type) {
+ this.type = type;
+ }
+
+ @Override
+ public boolean exists() {
+ return type.exists();
+ }
+
+ @Override
+ public String getNodeTypeName() {
+ return type.getName(JCR_NODETYPENAME);
+ }
+
+ @Override
+ public Set<String> getSuperTypes() {
+ return newHashSet(type.getNames(REP_SUPERTYPES));
+ }
+
+ @Override
+ public Set<String> getPrimarySubTypes() {
+ return newHashSet(type
+ .getNames(REP_PRIMARY_SUBTYPES));
+ }
+
+ @Override
+ public Set<String> getMixinSubTypes() {
+ return newHashSet(type.getNames(REP_MIXIN_SUBTYPES));
+ }
+
+ @Override
+ public boolean isMixin() {
+ return type.getBoolean(JCR_ISMIXIN);
+ }
+
+ @Override
+ public Iterable<String> getNamesSingleValuesProperties() {
+ return type.getNames(REP_NAMED_SINGLE_VALUED_PROPERTIES);
+ }
+
+ }
+
+}
Propchange: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/NodeStateNodeTypeInfoProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java Tue May 24 08:20:27 2016
@@ -18,8 +18,6 @@ package org.apache.jackrabbit.oak.query;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.ImmutableSet.of;
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
-import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.JCR_NODE_TYPES;
import java.text.ParseException;
import java.util.ArrayList;
@@ -37,8 +35,8 @@ import org.apache.jackrabbit.oak.api.Res
import org.apache.jackrabbit.oak.namepath.LocalNameMapper;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.namepath.NamePathMapperImpl;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.xpath.XPathToSQL2Converter;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
@@ -157,12 +155,10 @@ public abstract class QueryEngineImpl im
NamePathMapper mapper = new NamePathMapperImpl(
new LocalNameMapper(context.getRoot(), mappings));
- NodeState types = context.getBaseState()
- .getChildNode(JCR_SYSTEM)
- .getChildNode(JCR_NODE_TYPES);
+ NodeTypeInfoProvider nodeTypes = context.getNodeTypeInfoProvider();
QueryEngineSettings settings = context.getSettings();
- SQL2Parser parser = new SQL2Parser(mapper, types, settings);
+ SQL2Parser parser = new SQL2Parser(mapper, nodeTypes, settings);
if (language.endsWith(NO_LITERALS)) {
language = language.substring(0, language.length() - NO_LITERALS.length());
parser.setAllowNumberLiterals(false);
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java Tue May 24 08:20:27 2016
@@ -42,6 +42,8 @@ import org.apache.jackrabbit.oak.query.a
import org.apache.jackrabbit.oak.query.ast.JoinConditionImpl;
import org.apache.jackrabbit.oak.query.ast.JoinType;
import org.apache.jackrabbit.oak.query.ast.LiteralImpl;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfo;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.ast.Operator;
import org.apache.jackrabbit.oak.query.ast.OrderingImpl;
import org.apache.jackrabbit.oak.query.ast.PropertyExistenceImpl;
@@ -51,7 +53,6 @@ import org.apache.jackrabbit.oak.query.a
import org.apache.jackrabbit.oak.query.ast.SourceImpl;
import org.apache.jackrabbit.oak.query.ast.StaticOperandImpl;
import org.apache.jackrabbit.oak.spi.query.PropertyValues;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -73,7 +74,7 @@ public class SQL2Parser {
private static final int KEYWORD = 1, IDENTIFIER = 2, PARAMETER = 3, END = 4, VALUE = 5;
private static final int MINUS = 12, PLUS = 13, OPEN = 14, CLOSE = 15;
- private final NodeState types;
+ private final NodeTypeInfoProvider nodeTypes;
// The query as an array of characters and character types
private String statement;
@@ -113,11 +114,12 @@ public class SQL2Parser {
* Create a new parser. A parser can be re-used, but it is not thread safe.
*
* @param namePathMapper the name-path mapper to use
- * @param types the node with the node type information
+ * @param nodeTypes the nodetypes
+ * @param settings the query engine settings
*/
- public SQL2Parser(NamePathMapper namePathMapper, NodeState types, QueryEngineSettings settings) {
+ public SQL2Parser(NamePathMapper namePathMapper, NodeTypeInfoProvider nodeTypes, QueryEngineSettings settings) {
this.namePathMapper = namePathMapper;
- this.types = checkNotNull(types);
+ this.nodeTypes = checkNotNull(nodeTypes);
this.settings = checkNotNull(settings);
}
@@ -247,8 +249,8 @@ public class SQL2Parser {
throw e2;
}
}
- NodeState type = types.getChildNode(nodeTypeName);
- if (!type.exists()) {
+ NodeTypeInfo nodeTypeInfo = nodeTypes.getNodeTypeInfo(nodeTypeName);
+ if (!nodeTypeInfo.exists()) {
throw getSyntaxError("unknown node type");
}
@@ -257,7 +259,7 @@ public class SQL2Parser {
selectorName = readName();
}
- return factory.selector(type, selectorName);
+ return factory.selector(nodeTypeInfo, selectorName);
}
private String readName() throws ParseException {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElementFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElementFactory.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElementFactory.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElementFactory.java Tue May 24 08:20:27 2016
@@ -21,7 +21,6 @@ import javax.annotation.Nonnull;
import org.apache.jackrabbit.oak.api.PropertyValue;
import org.apache.jackrabbit.oak.query.QueryImpl;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -147,8 +146,8 @@ public class AstElementFactory {
return new SameNodeJoinConditionImpl(selector1Name, selector2Name, selector2Path);
}
- public SelectorImpl selector(NodeState type, String selectorName) {
- return new SelectorImpl(type, selectorName);
+ public SelectorImpl selector(NodeTypeInfo nodeTypeInfo, String selectorName) {
+ return new SelectorImpl(nodeTypeInfo, selectorName);
}
public UpperCaseImpl upperCase(DynamicOperandImpl operand) {
Added: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfo.java?rev=1745322&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfo.java (added)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfo.java Tue May 24 08:20:27 2016
@@ -0,0 +1,59 @@
+package org.apache.jackrabbit.oak.query.ast;
+
+import java.util.Set;
+
+/**
+ * A nodetype info mechanism.
+ */
+public interface NodeTypeInfo {
+
+ /**
+ * Check whether the nodetype exists.
+ *
+ * @return true if it exists
+ */
+ boolean exists();
+
+ /**
+ * Get the name of the nodetype.
+ *
+ * @return the fully qualified name
+ */
+ String getNodeTypeName();
+
+ /**
+ * Get the set of supertypes.
+ *
+ * @return the set
+ */
+ Set<String> getSuperTypes();
+
+ /**
+ * Get the set of primary subtypes.
+ *
+ * @return the set
+ */
+ Set<String> getPrimarySubTypes();
+
+ /**
+ * Get the set of mixin subtypes.
+ *
+ * @return the set
+ */
+ Set<String> getMixinSubTypes();
+
+ /**
+ * Check whether this is a mixin.
+ *
+ * @return true if it is a mixin, false if it is a primary type
+ */
+ boolean isMixin();
+
+ /**
+ * Get the names of all single-valued properties.
+ *
+ * @return the names
+ */
+ Iterable<String> getNamesSingleValuesProperties();
+
+}
\ No newline at end of file
Propchange: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfoProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfoProvider.java?rev=1745322&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfoProvider.java (added)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfoProvider.java Tue May 24 08:20:27 2016
@@ -0,0 +1,16 @@
+package org.apache.jackrabbit.oak.query.ast;
+
+/**
+ * A nodetype info mechanism.
+ */
+public interface NodeTypeInfoProvider {
+
+ /**
+ * Verify that the given nodetype exists.
+ *
+ * @param nodeTypeName the fully qualified nodetype name
+ * @return the information
+ */
+ NodeTypeInfo getNodeTypeInfo(String nodeTypeName);
+
+}
\ No newline at end of file
Propchange: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeTypeInfoProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java Tue May 24 08:20:27 2016
@@ -20,18 +20,11 @@ package org.apache.jackrabbit.oak.query.
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.Lists.newArrayList;
-import static com.google.common.collect.Sets.newHashSet;
-import static org.apache.jackrabbit.JcrConstants.JCR_ISMIXIN;
import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
-import static org.apache.jackrabbit.JcrConstants.JCR_NODETYPENAME;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.apache.jackrabbit.JcrConstants.NT_BASE;
import static org.apache.jackrabbit.oak.api.Type.NAME;
import static org.apache.jackrabbit.oak.api.Type.NAMES;
-import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.REP_MIXIN_SUBTYPES;
-import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.REP_NAMED_SINGLE_VALUED_PROPERTIES;
-import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.REP_PRIMARY_SUBTYPES;
-import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.REP_SUPERTYPES;
import java.util.ArrayList;
import java.util.List;
@@ -91,7 +84,7 @@ public class SelectorImpl extends Source
/**
* The node type associated with the {@link #nodeTypeName}
*/
- private final NodeState nodeType;
+ private final NodeTypeInfo nodeTypeInfo;
private final String selectorName;
@@ -163,21 +156,20 @@ public class SelectorImpl extends Source
private Tree lastTree;
private String lastPath;
- public SelectorImpl(NodeState nodeType, String selectorName) {
- this.nodeType = checkNotNull(nodeType);
+ public SelectorImpl(NodeTypeInfo nodeTypeInfo, String selectorName) {
+ this.nodeTypeInfo = checkNotNull(nodeTypeInfo);
this.selectorName = checkNotNull(selectorName);
- this.nodeTypeName = nodeType.getName(JCR_NODETYPENAME);
+ this.nodeTypeName = nodeTypeInfo.getNodeTypeName();
this.matchesAllTypes = NT_BASE.equals(nodeTypeName);
if (!this.matchesAllTypes) {
- this.supertypes = newHashSet(nodeType.getNames(REP_SUPERTYPES));
+ this.supertypes = nodeTypeInfo.getSuperTypes();
supertypes.add(nodeTypeName);
- this.primaryTypes = newHashSet(nodeType
- .getNames(REP_PRIMARY_SUBTYPES));
- this.mixinTypes = newHashSet(nodeType.getNames(REP_MIXIN_SUBTYPES));
- if (nodeType.getBoolean(JCR_ISMIXIN)) {
+ this.primaryTypes = nodeTypeInfo.getPrimarySubTypes();
+ this.mixinTypes = nodeTypeInfo.getMixinSubTypes();
+ if (nodeTypeInfo.isMixin()) {
mixinTypes.add(nodeTypeName);
} else {
primaryTypes.add(nodeTypeName);
@@ -229,7 +221,7 @@ public class SelectorImpl extends Source
}
public Iterable<String> getWildcardColumns() {
- return nodeType.getNames(REP_NAMED_SINGLE_VALUED_PROPERTIES);
+ return nodeTypeInfo.getNamesSingleValuesProperties();
}
@Override
@@ -804,6 +796,6 @@ public class SelectorImpl extends Source
@Override
public SourceImpl copyOf() {
- return new SelectorImpl(nodeType, selectorName);
+ return new SelectorImpl(nodeTypeInfo, selectorName);
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java Tue May 24 08:20:27 2016
@@ -16,7 +16,6 @@
*/
package org.apache.jackrabbit.oak.plugins.index;
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
import static org.apache.jackrabbit.JcrConstants.NT_BASE;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.ASYNC_PROPERTY_NAME;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.ASYNC_REINDEX_VALUE;
@@ -25,7 +24,6 @@ import static org.apache.jackrabbit.oak.
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.REINDEX_ASYNC_PROPERTY_NAME;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.REINDEX_PROPERTY_NAME;
import static org.apache.jackrabbit.oak.plugins.index.IndexUtils.createIndexDefinition;
-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.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -46,7 +44,10 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexLookup;
import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
+import org.apache.jackrabbit.oak.query.NodeStateNodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.QueryEngineSettings;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfo;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.ast.SelectorImpl;
import org.apache.jackrabbit.oak.query.index.FilterImpl;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
@@ -474,9 +475,8 @@ public class IndexUpdateTest {
private Set<String> find(PropertyIndexLookup lookup, String name,
String value) {
- NodeState system = root.getChildNode(JCR_SYSTEM);
- NodeState types = system.getChildNode(JCR_NODE_TYPES);
- NodeState type = types.getChildNode(NT_BASE);
+ NodeTypeInfoProvider nodeTypes = new NodeStateNodeTypeInfoProvider(root);
+ NodeTypeInfo type = nodeTypes.getNodeTypeInfo(NT_BASE);
SelectorImpl selector = new SelectorImpl(type, NT_BASE);
Filter filter = new FilterImpl(selector, "SELECT * FROM [nt:base]", new QueryEngineSettings());
return Sets.newHashSet(lookup.query(filter, name,
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexTest.java Tue May 24 08:20:27 2016
@@ -16,8 +16,6 @@
*/
package org.apache.jackrabbit.oak.plugins.index.nodetype;
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
-import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.JCR_NODE_TYPES;
import static org.junit.Assert.assertEquals;
import java.io.ByteArrayInputStream;
@@ -26,8 +24,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Set;
-import com.google.common.collect.Sets;
-
import org.apache.jackrabbit.JcrConstants;
import org.apache.jackrabbit.oak.api.Blob;
import org.apache.jackrabbit.oak.api.Type;
@@ -37,7 +33,10 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
+import org.apache.jackrabbit.oak.query.NodeStateNodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.QueryEngineSettings;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfo;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.ast.SelectorImpl;
import org.apache.jackrabbit.oak.query.index.FilterImpl;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
@@ -51,6 +50,8 @@ import org.apache.jackrabbit.oak.spi.sta
import org.junit.Before;
import org.junit.Test;
+import com.google.common.collect.Sets;
+
/**
* {@code NodeTypeIndexTest} performs tests on {@link NodeTypeIndex}.
*/
@@ -102,9 +103,8 @@ public class NodeTypeIndexTest {
}
private static FilterImpl createFilter(NodeState root, String nodeTypeName) {
- NodeState system = root.getChildNode(JCR_SYSTEM);
- NodeState types = system.getChildNode(JCR_NODE_TYPES);
- NodeState type = types.getChildNode(nodeTypeName);
+ NodeTypeInfoProvider nodeTypes = new NodeStateNodeTypeInfoProvider(root);
+ NodeTypeInfo type = nodeTypes.getNodeTypeInfo(nodeTypeName);
SelectorImpl selector = new SelectorImpl(type, nodeTypeName);
return new FilterImpl(selector, "SELECT * FROM [" + nodeTypeName + "]", new QueryEngineSettings());
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/AsyncPropertyIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/AsyncPropertyIndexTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/AsyncPropertyIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/AsyncPropertyIndexTest.java Tue May 24 08:20:27 2016
@@ -37,7 +37,10 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider;
import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
+import org.apache.jackrabbit.oak.query.NodeStateNodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.QueryEngineSettings;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfo;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.ast.SelectorImpl;
import org.apache.jackrabbit.oak.query.index.FilterImpl;
import org.apache.jackrabbit.oak.spi.commit.EditorHook;
@@ -51,8 +54,6 @@ import org.junit.Test;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
-;
-
/**
* Test the asynchronous reindexing ability of an synchronous index
*/
@@ -113,9 +114,8 @@ public class AsyncPropertyIndexTest {
}
private static FilterImpl createFilter(NodeState root, String nodeTypeName) {
- NodeState system = root.getChildNode(JCR_SYSTEM);
- NodeState types = system.getChildNode(JCR_NODE_TYPES);
- NodeState type = types.getChildNode(nodeTypeName);
+ NodeTypeInfoProvider nodeTypes = new NodeStateNodeTypeInfoProvider(root);
+ NodeTypeInfo type = nodeTypes.getNodeTypeInfo(nodeTypeName);
SelectorImpl selector = new SelectorImpl(type, nodeTypeName);
return new FilterImpl(selector, "SELECT * FROM [" + nodeTypeName + "]",
new QueryEngineSettings());
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexTest.java Tue May 24 08:20:27 2016
@@ -17,9 +17,7 @@
package org.apache.jackrabbit.oak.plugins.index.property;
import static com.google.common.collect.ImmutableSet.of;
-import static java.util.Arrays.asList;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
import static org.apache.jackrabbit.JcrConstants.NT_BASE;
import static org.apache.jackrabbit.JcrConstants.NT_FILE;
import static org.apache.jackrabbit.JcrConstants.NT_UNSTRUCTURED;
@@ -31,32 +29,24 @@ import static org.apache.jackrabbit.oak.
import static org.apache.jackrabbit.oak.plugins.index.counter.NodeCounterEditor.COUNT_PROPERTY_NAME;
import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.apache.jackrabbit.oak.plugins.memory.PropertyStates.createProperty;
-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.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import static org.junit.matchers.JUnitMatchers.containsString;
import java.util.Arrays;
import java.util.Set;
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.LoggerContext;
-import ch.qos.logback.classic.spi.ILoggingEvent;
-import ch.qos.logback.core.Appender;
-import ch.qos.logback.core.read.ListAppender;
-import ch.qos.logback.core.spi.FilterReply;
-import com.google.common.collect.Iterables;
import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider;
import org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy;
import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
+import org.apache.jackrabbit.oak.query.NodeStateNodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.QueryEngineSettings;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfo;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.ast.Operator;
import org.apache.jackrabbit.oak.query.ast.SelectorImpl;
import org.apache.jackrabbit.oak.query.index.FilterImpl;
@@ -69,10 +59,18 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
import org.junit.Test;
+import org.slf4j.LoggerFactory;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.Appender;
+import ch.qos.logback.core.read.ListAppender;
+import ch.qos.logback.core.spi.FilterReply;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
-import org.slf4j.LoggerFactory;
/**
* Test the Property2 index mechanism.
@@ -400,9 +398,8 @@ public class PropertyIndexTest {
}
private static FilterImpl createFilter(NodeState root, String nodeTypeName) {
- NodeState system = root.getChildNode(JCR_SYSTEM);
- NodeState types = system.getChildNode(JCR_NODE_TYPES);
- NodeState type = types.getChildNode(nodeTypeName);
+ NodeTypeInfoProvider nodeTypes = new NodeStateNodeTypeInfoProvider(root);
+ NodeTypeInfo type = nodeTypes.getNodeTypeInfo(nodeTypeName);
SelectorImpl selector = new SelectorImpl(type, nodeTypeName);
return new FilterImpl(selector, "SELECT * FROM [" + nodeTypeName + "]", new QueryEngineSettings());
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/FilterTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/FilterTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/FilterTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/FilterTest.java Tue May 24 08:20:27 2016
@@ -17,8 +17,6 @@
package org.apache.jackrabbit.oak.query;
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
-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.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -27,9 +25,9 @@ import static org.junit.Assert.assertNot
import java.text.ParseException;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.xpath.XPathToSQL2Converter;
import org.apache.jackrabbit.oak.spi.query.Filter;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.junit.Ignore;
import org.junit.Test;
@@ -37,11 +35,10 @@ import org.junit.Test;
* Test filter conditions.
*/
public class FilterTest {
+
+ private final NodeTypeInfoProvider nodeTypes = new NodeStateNodeTypeInfoProvider(INITIAL_CONTENT);
- private final NodeState types = INITIAL_CONTENT.getChildNode(JCR_SYSTEM)
- .getChildNode(JCR_NODE_TYPES);
-
- private final SQL2Parser p = new SQL2Parser(NamePathMapper.DEFAULT, types, new QueryEngineSettings());
+ private final SQL2Parser p = new SQL2Parser(NamePathMapper.DEFAULT, nodeTypes, new QueryEngineSettings());
private Filter createFilter(String xpath) throws ParseException {
String sql = new XPathToSQL2Converter().convert(xpath);
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/LargeQueryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/LargeQueryTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/LargeQueryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/LargeQueryTest.java Tue May 24 08:20:27 2016
@@ -16,8 +16,6 @@
*/
package org.apache.jackrabbit.oak.query;
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
-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.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -25,14 +23,13 @@ import static org.junit.Assert.assertTru
import java.text.ParseException;
import java.util.Random;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.xpath.XPathToSQL2Converter;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.junit.Test;
public class LargeQueryTest {
- private final NodeState types =
- INITIAL_CONTENT.getChildNode(JCR_SYSTEM).getChildNode(JCR_NODE_TYPES);
+ private final NodeTypeInfoProvider nodeTypes = new NodeStateNodeTypeInfoProvider(INITIAL_CONTENT);
@Test
public void testSimpleOr() throws ParseException {
@@ -113,7 +110,7 @@ public class LargeQueryTest {
sql2 = sql2.substring(0, xpathIndex);
// should use union now
assertTrue(sql2.indexOf(" or ") < 0);
- SQL2Parser p = new SQL2Parser(null, types, new QueryEngineSettings());
+ SQL2Parser p = new SQL2Parser(null, nodeTypes, new QueryEngineSettings());
p.parse(sql2);
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/NativeQueryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/NativeQueryTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/NativeQueryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/NativeQueryTest.java Tue May 24 08:20:27 2016
@@ -16,33 +16,31 @@
*/
package org.apache.jackrabbit.oak.query;
+import static org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent.INITIAL_CONTENT;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import java.text.ParseException;
+import java.util.Iterator;
+
import org.apache.jackrabbit.oak.api.Result;
import org.apache.jackrabbit.oak.api.ResultRow;
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.spi.state.NodeState;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.junit.Test;
-import java.text.ParseException;
-import java.util.Iterator;
-
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
-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.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-
public class NativeQueryTest {
- private final NodeState types = INITIAL_CONTENT.getChildNode(JCR_SYSTEM)
- .getChildNode(JCR_NODE_TYPES);
-
private final ImmutableRoot ROOT = new ImmutableRoot(INITIAL_CONTENT);
private final QueryEngineImpl QUERY_ENGINE = (QueryEngineImpl)ROOT.getQueryEngine();
- private final SQL2Parser p = new SQL2Parser(NamePathMapper.DEFAULT, types, new QueryEngineSettings());
+ private final NodeTypeInfoProvider nodeTypes = new NodeStateNodeTypeInfoProvider(INITIAL_CONTENT);
+
+ private final SQL2Parser p = new SQL2Parser(NamePathMapper.DEFAULT, nodeTypes, new QueryEngineSettings());
+
@Test
public void dontTraverseForSuggest() throws Exception {
String sql = "select [rep:suggest()] from [nt:base] where suggest('test')";
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2OptimiseQueryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2OptimiseQueryTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2OptimiseQueryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2OptimiseQueryTest.java Tue May 24 08:20:27 2016
@@ -20,12 +20,11 @@ import static com.google.common.base.Pre
import static com.google.common.collect.ImmutableList.of;
import static javax.jcr.query.Query.JCR_SQL2;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
import static org.apache.jackrabbit.oak.api.Type.NAME;
-import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.JCR_NODE_TYPES;
import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.NT_OAK_UNSTRUCTURED;
-import static org.apache.jackrabbit.oak.query.QueryEngineImpl.QuerySelectionMode.CHEAPEST;
+import static org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent.INITIAL_CONTENT;
import static org.apache.jackrabbit.oak.query.QueryEngineImpl.QuerySelectionMode.ALTERNATIVE;
+import static org.apache.jackrabbit.oak.query.QueryEngineImpl.QuerySelectionMode.CHEAPEST;
import static org.apache.jackrabbit.oak.query.QueryEngineImpl.QuerySelectionMode.ORIGINAL;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertNotNull;
@@ -49,8 +48,8 @@ import org.apache.jackrabbit.oak.namepat
import org.apache.jackrabbit.oak.namepath.NamePathMapperImpl;
import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.junit.Test;
@@ -187,7 +186,7 @@ public class SQL2OptimiseQueryTest exten
*/
@Test
public void optimise() throws ParseException {
- SQL2Parser parser = new SQL2Parser(getMappings(), getTypes(), qeSettings);
+ SQL2Parser parser = new SQL2Parser(getMappings(), getNodeTypes(), qeSettings);
String statement;
Query original, optimised;
@@ -232,8 +231,8 @@ public class SQL2OptimiseQueryTest exten
new LocalNameMapper(root, QueryEngine.NO_MAPPINGS));
}
- private NodeState getTypes() {
- return store.getRoot().getChildNode(JCR_SYSTEM).getChildNode(JCR_NODE_TYPES);
+ private static NodeTypeInfoProvider getNodeTypes() {
+ return new NodeStateNodeTypeInfoProvider(INITIAL_CONTENT);
}
@Override
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2ParserTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2ParserTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2ParserTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2ParserTest.java Tue May 24 08:20:27 2016
@@ -16,15 +16,13 @@
*/
package org.apache.jackrabbit.oak.query;
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
-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.junit.Assert.assertTrue;
import java.text.ParseException;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.xpath.XPathToSQL2Converter;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.junit.Test;
/**
@@ -32,10 +30,9 @@ import org.junit.Test;
*/
public class SQL2ParserTest {
- private final NodeState types =
- INITIAL_CONTENT.getChildNode(JCR_SYSTEM).getChildNode(JCR_NODE_TYPES);
+ private final NodeTypeInfoProvider nodeTypes = new NodeStateNodeTypeInfoProvider(INITIAL_CONTENT);
- private final SQL2Parser p = new SQL2Parser(null, types, new QueryEngineSettings());
+ private final SQL2Parser p = new SQL2Parser(null, nodeTypes, new QueryEngineSettings());
@Test
public void testIgnoreSqlComment() throws ParseException {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/XPathTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/XPathTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/XPathTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/XPathTest.java Tue May 24 08:20:27 2016
@@ -16,15 +16,13 @@
*/
package org.apache.jackrabbit.oak.query;
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
-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.junit.Assert.assertEquals;
import java.text.ParseException;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.xpath.XPathToSQL2Converter;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.junit.Test;
/**
@@ -32,8 +30,8 @@ import org.junit.Test;
*/
public class XPathTest {
- private final NodeState types =
- INITIAL_CONTENT.getChildNode(JCR_SYSTEM).getChildNode(JCR_NODE_TYPES);
+ private final NodeTypeInfoProvider nodeTypes =
+ new NodeStateNodeTypeInfoProvider(INITIAL_CONTENT);
@Test
public void test() throws ParseException {
@@ -112,7 +110,7 @@ public class XPathTest {
sql2 = formatSQL(sql2);
expectedSql2 = formatSQL(expectedSql2);
assertEquals(expectedSql2, sql2);
- SQL2Parser p = new SQL2Parser(null, types, new QueryEngineSettings());
+ SQL2Parser p = new SQL2Parser(null, nodeTypes, new QueryEngineSettings());
p.parse(sql2);
}
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlannerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlannerTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlannerTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlannerTest.java Tue May 24 08:20:27 2016
@@ -19,16 +19,41 @@
package org.apache.jackrabbit.oak.plugins.index.lucene;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.collect.ImmutableSet.of;
+import static javax.jcr.PropertyType.TYPENAME_STRING;
+import static org.apache.jackrabbit.oak.api.Type.NAMES;
+import static org.apache.jackrabbit.oak.api.Type.STRINGS;
+import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.DECLARING_NODE_TYPES;
+import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NAME;
+import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.INDEX_DATA_CHILD_NAME;
+import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.INDEX_RULES;
+import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.ORDERED_PROP_NAMES;
+import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.VERSION;
+import static org.apache.jackrabbit.oak.plugins.index.lucene.TestUtil.NT_TEST;
+import static org.apache.jackrabbit.oak.plugins.index.lucene.TestUtil.registerTestNodeType;
+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.memory.PropertyStates.createProperty;
+import static org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent.INITIAL_CONTENT;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
import java.io.IOException;
import java.util.Collections;
import javax.annotation.Nonnull;
-import com.google.common.collect.ImmutableList;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
+import org.apache.jackrabbit.oak.query.NodeStateNodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.QueryEngineSettings;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfo;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.ast.Operator;
import org.apache.jackrabbit.oak.query.ast.SelectorImpl;
import org.apache.jackrabbit.oak.query.fulltext.FullTextParser;
@@ -36,6 +61,7 @@ import org.apache.jackrabbit.oak.query.i
import org.apache.jackrabbit.oak.spi.query.Filter;
import org.apache.jackrabbit.oak.spi.query.PropertyValues;
import org.apache.jackrabbit.oak.spi.query.QueryIndex;
+import org.apache.jackrabbit.oak.spi.query.QueryIndex.OrderEntry;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.lucene.document.Document;
@@ -45,35 +71,9 @@ import org.apache.lucene.index.IndexWrit
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
-import org.junit.Ignore;
import org.junit.Test;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.collect.ImmutableSet.of;
-import static javax.jcr.PropertyType.TYPENAME_STRING;
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
-import static org.apache.jackrabbit.oak.api.Type.NAMES;
-import static org.apache.jackrabbit.oak.api.Type.STRINGS;
-import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.DECLARING_NODE_TYPES;
-import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NAME;
-import static org.apache.jackrabbit.oak.plugins.index.PathFilter.PROP_INCLUDED_PATHS;
-import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.INDEX_DATA_CHILD_NAME;
-import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.INDEX_RULES;
-import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.ORDERED_PROP_NAMES;
-import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.VERSION;
-import static org.apache.jackrabbit.oak.plugins.index.lucene.TestUtil.NT_TEST;
-import static org.apache.jackrabbit.oak.plugins.index.lucene.TestUtil.registerTestNodeType;
-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.memory.PropertyStates.createProperty;
-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.OrderEntry;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import com.google.common.collect.ImmutableList;
public class IndexPlannerTest {
private NodeState root = INITIAL_CONTENT;
@@ -594,9 +594,8 @@ public class IndexPlannerTest {
}
private FilterImpl createFilter(String nodeTypeName) {
- NodeState system = root.getChildNode(JCR_SYSTEM);
- NodeState types = system.getChildNode(JCR_NODE_TYPES);
- NodeState type = types.getChildNode(nodeTypeName);
+ NodeTypeInfoProvider nodeTypes = new NodeStateNodeTypeInfoProvider(root);
+ NodeTypeInfo type = nodeTypes.getNodeTypeInfo(nodeTypeName);
SelectorImpl selector = new SelectorImpl(type, nodeTypeName);
return new FilterImpl(selector, "SELECT * FROM [" + nodeTypeName + "]", new QueryEngineSettings());
}
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=1745322&r1=1745321&r2=1745322&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 Tue May 24 08:20:27 2016
@@ -16,19 +16,6 @@
*/
package org.apache.jackrabbit.oak.plugins.index.lucene;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import javax.jcr.PropertyType;
-
import static com.google.common.collect.ImmutableList.copyOf;
import static com.google.common.collect.ImmutableSet.of;
import static com.google.common.collect.Iterators.transform;
@@ -67,15 +54,21 @@ import static org.apache.jackrabbit.oak.
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.memory.PropertyStates.createProperty;
-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;
-import static org.apache.jackrabbit.oak.spi.query.QueryIndex.IndexPlan;
-import com.google.common.base.Function;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import javax.jcr.PropertyType;
+
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.jackrabbit.oak.api.Blob;
@@ -88,7 +81,10 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob;
import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore;
import org.apache.jackrabbit.oak.plugins.segment.memory.MemoryStore;
+import org.apache.jackrabbit.oak.query.NodeStateNodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.QueryEngineSettings;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfo;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.ast.Operator;
import org.apache.jackrabbit.oak.query.ast.SelectorImpl;
import org.apache.jackrabbit.oak.query.fulltext.FullTextParser;
@@ -105,6 +101,8 @@ import org.apache.jackrabbit.oak.spi.que
import org.apache.jackrabbit.oak.spi.query.PropertyValues;
import org.apache.jackrabbit.oak.spi.query.QueryConstants;
import org.apache.jackrabbit.oak.spi.query.QueryIndex;
+import org.apache.jackrabbit.oak.spi.query.QueryIndex.AdvancedQueryIndex;
+import org.apache.jackrabbit.oak.spi.query.QueryIndex.IndexPlan;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
@@ -122,8 +120,12 @@ import org.junit.After;
import org.junit.Assert;
import org.junit.Test;
+import com.google.common.base.Function;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
@SuppressWarnings("ConstantConditions")
public class LuceneIndexTest {
@@ -909,9 +911,8 @@ public class LuceneIndexTest {
}
private FilterImpl createFilter(String nodeTypeName) {
- NodeState system = root.getChildNode(JCR_SYSTEM);
- NodeState types = system.getChildNode(JCR_NODE_TYPES);
- NodeState type = types.getChildNode(nodeTypeName);
+ NodeTypeInfoProvider nodeTypes = new NodeStateNodeTypeInfoProvider(root);
+ NodeTypeInfo type = nodeTypes.getNodeTypeInfo(nodeTypeName);
SelectorImpl selector = new SelectorImpl(type, nodeTypeName);
return new FilterImpl(selector, "SELECT * FROM [" + nodeTypeName + "]", new QueryEngineSettings());
}
Modified: jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndexTest.java?rev=1745322&r1=1745321&r2=1745322&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndexTest.java Tue May 24 08:20:27 2016
@@ -16,9 +16,6 @@
*/
package org.apache.jackrabbit.oak.plugins.index.solr.query;
-import javax.annotation.Nonnull;
-import java.util.Arrays;
-import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
@@ -30,7 +27,10 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.solr.configuration.OakSolrConfiguration;
import org.apache.jackrabbit.oak.plugins.index.solr.configuration.OakSolrConfigurationProvider;
import org.apache.jackrabbit.oak.plugins.index.solr.server.SolrServerProvider;
+import org.apache.jackrabbit.oak.query.NodeStateNodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.QueryEngineSettings;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfo;
+import org.apache.jackrabbit.oak.query.ast.NodeTypeInfoProvider;
import org.apache.jackrabbit.oak.query.ast.Operator;
import org.apache.jackrabbit.oak.query.ast.SelectorImpl;
import org.apache.jackrabbit.oak.query.index.FilterImpl;
@@ -45,7 +45,6 @@ import org.apache.solr.client.solrj.Solr
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
-import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.params.SolrParams;
import org.junit.Before;
import org.junit.Ignore;
@@ -92,7 +91,7 @@ public class SolrQueryIndexTest {
@Test
public void testNoPlanWithPathRestrictions() throws Exception {
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -109,7 +108,7 @@ public class SolrQueryIndexTest {
builder.child("oak:index").child("solr").setProperty("pathRestrictions", true);
nodeState = builder.getNodeState();
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -128,7 +127,7 @@ public class SolrQueryIndexTest {
.setProperty("propertyRestrictions", true);
nodeState = builder.getNodeState();
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -142,7 +141,7 @@ public class SolrQueryIndexTest {
@Test
public void testNoPlanWithPropertyRestrictions() throws Exception {
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -160,7 +159,7 @@ public class SolrQueryIndexTest {
.setProperty("propertyRestrictions", true);
nodeState = builder.getNodeState();
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -173,7 +172,7 @@ public class SolrQueryIndexTest {
@Test
public void testNoPlanWithPrimaryTypeRestrictions() throws Exception {
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -190,7 +189,7 @@ public class SolrQueryIndexTest {
builder.child("oak:index").child("solr").setProperty("primaryTypes", true);
nodeState = builder.getNodeState();
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -209,7 +208,7 @@ public class SolrQueryIndexTest {
.setProperty("primaryTypes", true);
nodeState = builder.getNodeState();
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -229,7 +228,7 @@ public class SolrQueryIndexTest {
.setProperty("propertyRestrictions", true);
nodeState = builder.getNodeState();
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -248,7 +247,7 @@ public class SolrQueryIndexTest {
.setProperty("propertyRestrictions", true);
nodeState = builder.getNodeState();
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -267,7 +266,7 @@ public class SolrQueryIndexTest {
.setProperty("propertyRestrictions", true);
nodeState = builder.getNodeState();
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -286,7 +285,7 @@ public class SolrQueryIndexTest {
.setProperty("propertyRestrictions", true);
nodeState = builder.getNodeState();
- SelectorImpl selector = new SelectorImpl(nodeState, "a");
+ SelectorImpl selector = newSelector(nodeState, "a");
SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
@@ -320,7 +319,7 @@ public class SolrQueryIndexTest {
public void testSize() throws Exception {
NodeState root = mock(NodeState.class);
when(root.getNames(any(String.class))).thenReturn(Collections.<String>emptySet());
- SelectorImpl selector = new SelectorImpl(root, "a");
+ SelectorImpl selector = newSelector(root, "a");
String sqlQuery = "select [jcr:path], [jcr:score] from [nt:base] as a where" +
" contains([jcr:content/*], 'founded')";
SolrServer solrServer = TestUtils.createSolrServer();
@@ -350,7 +349,7 @@ public class SolrQueryIndexTest {
public void testNoMoreThanThreeSolrRequests() throws Exception {
NodeState root = mock(NodeState.class);
when(root.getNames(any(String.class))).thenReturn(Collections.<String>emptySet());
- SelectorImpl selector = new SelectorImpl(root, "a");
+ SelectorImpl selector = newSelector(root, "a");
String sqlQuery = "select [jcr:path], [jcr:score] from [nt:base] as a where" +
" contains([jcr:content/*], 'founded')";
SolrServer solrServer = mock(SolrServer.class);
@@ -383,6 +382,12 @@ public class SolrQueryIndexTest {
}
assertEquals(3, response.getCounter());
}
+
+ private static SelectorImpl newSelector(NodeState root, String name) {
+ NodeTypeInfoProvider types = new NodeStateNodeTypeInfoProvider(root);
+ NodeTypeInfo type = types.getNodeTypeInfo("nt:base");
+ return new SelectorImpl(type, name);
+ }
private class CountingResponse extends QueryResponse {
@@ -407,4 +412,5 @@ public class SolrQueryIndexTest {
return counter;
}
}
+
}