Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/RowImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/RowImpl.java (revision 1797861) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/RowImpl.java (revision ) @@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.ResultRow; import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import com.google.common.base.Joiner; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SimilarImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SimilarImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SimilarImpl.java (revision ) @@ -24,7 +24,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryIndex.FulltextQueryIndex; import org.slf4j.Logger; import org.slf4j.LoggerFactory; \ No newline at end of file Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ResultRowImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ResultRowImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ResultRowImpl.java (revision ) @@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.query.ast.ColumnImpl; import org.apache.jackrabbit.oak.query.ast.OrderingImpl; import org.apache.jackrabbit.oak.query.fulltext.SimpleExcerptProvider; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryConstants; /** \ No newline at end of file Index: oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java (revision 1797861) +++ oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java (revision ) @@ -55,7 +55,7 @@ import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.namepath.NamePathMapper; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityRef; import org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncConfig; import org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIdentityConstants; \ No newline at end of file Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java (revision ) @@ -27,9 +27,10 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; +import org.apache.jackrabbit.oak.query.ValueConverter; import org.apache.jackrabbit.oak.query.fulltext.LikePattern; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; /** * A comparison operation (including "like"). @@ -123,7 +124,7 @@ private PropertyValue convertToType(PropertyValue v, int targetType) { try { - return PropertyValues.convert(v, targetType, query.getNamePathMapper()); + return ValueConverter.convert(v, targetType, query.getNamePathMapper()); } catch (IllegalArgumentException e) { // not possible to convert return v; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/InImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/InImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/InImpl.java (revision ) @@ -30,7 +30,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; /** * A "in" comparison operation. Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SpellcheckImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SpellcheckImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SpellcheckImpl.java (revision ) @@ -24,7 +24,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryIndex.FulltextQueryIndex; import org.slf4j.Logger; import org.slf4j.LoggerFactory; \ No newline at end of file Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/SimpleExcerptProvider.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/SimpleExcerptProvider.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/SimpleExcerptProvider.java (revision ) @@ -34,7 +34,7 @@ import org.apache.jackrabbit.oak.query.ast.FullTextSearchImpl; import org.apache.jackrabbit.oak.query.ast.LiteralImpl; import org.apache.jackrabbit.oak.query.ast.OrImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import static org.apache.jackrabbit.util.Text.encodeIllegalXMLCharacters; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java (revision ) @@ -32,7 +32,7 @@ import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters; import org.apache.jackrabbit.oak.spi.security.user.AuthorizableType; import org.slf4j.Logger; \ No newline at end of file Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/FullTextSearchScoreImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/FullTextSearchScoreImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/FullTextSearchScoreImpl.java (revision ) @@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryConstants; import org.apache.jackrabbit.oak.spi.query.QueryIndex.OrderEntry; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java (revision ) @@ -54,7 +54,7 @@ import org.apache.jackrabbit.oak.query.ast.SelectorImpl; 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.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -796,7 +796,7 @@ int propertyType = getPropertyTypeFromName(currentToken); read(); - PropertyValue v = PropertyValues.convert(value, propertyType, null); + PropertyValue v = ValueConverter.convert(value, propertyType, null); if (v == null) { throw getSyntaxError("data type (STRING|BINARY|...)"); } Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LengthImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LengthImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LengthImpl.java (revision ) @@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryConstants; import org.apache.jackrabbit.oak.spi.query.QueryIndex.OrderEntry; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java (revision ) @@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryConstants; import org.apache.jackrabbit.oak.spi.query.QueryIndex.OrderEntry; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyStateValue.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyStateValue.java (revision 1797861) +++ oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStateValue.java (revision ) @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.jackrabbit.oak.spi.query; +package org.apache.jackrabbit.oak.plugins.memory; import java.io.IOException; import java.io.InputStream; @@ -40,7 +40,7 @@ private final PropertyState ps; - protected PropertyStateValue(PropertyState ps) { + PropertyStateValue(PropertyState ps) { this.ps = ps; } Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/EquiJoinConditionImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/EquiJoinConditionImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/EquiJoinConditionImpl.java (revision ) @@ -22,7 +22,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; /** * The "a.x = b.y" join condition. Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java (revision ) @@ -49,7 +49,7 @@ import org.apache.jackrabbit.oak.plugins.memory.StringPropertyState; import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager; import org.apache.jackrabbit.oak.plugins.version.VersionConstants; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.slf4j.Logger; import org.slf4j.LoggerFactory; \ No newline at end of file Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/jcr/ValueFactoryImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/jcr/ValueFactoryImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/jcr/ValueFactoryImpl.java (revision ) @@ -16,9 +16,6 @@ */ package org.apache.jackrabbit.oak.plugins.value.jcr; -import static com.google.common.base.Preconditions.checkNotNull; -import static org.apache.jackrabbit.oak.plugins.value.jcr.ValueImpl.newValue; - import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; @@ -26,7 +23,6 @@ import java.net.URISyntaxException; import java.util.Calendar; import java.util.List; - import javax.annotation.Nonnull; import javax.jcr.Binary; import javax.jcr.Node; @@ -43,6 +39,7 @@ import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.Root; +import org.apache.jackrabbit.oak.commons.benchmark.PerfLogger; import org.apache.jackrabbit.oak.namepath.JcrNameParser; import org.apache.jackrabbit.oak.namepath.JcrPathParser; import org.apache.jackrabbit.oak.namepath.NamePathMapper; @@ -54,13 +51,15 @@ import org.apache.jackrabbit.oak.plugins.memory.GenericPropertyState; import org.apache.jackrabbit.oak.plugins.memory.LongPropertyState; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.plugins.memory.StringPropertyState; import org.apache.jackrabbit.oak.plugins.value.Conversions; import org.apache.jackrabbit.oak.plugins.value.ErrorValue; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; -import org.apache.jackrabbit.oak.commons.benchmark.PerfLogger; import org.apache.jackrabbit.util.ISO8601; import org.slf4j.LoggerFactory; + +import static com.google.common.base.Preconditions.checkNotNull; +import static org.apache.jackrabbit.oak.plugins.value.jcr.ValueImpl.newValue; /** * Implementation of {@link ValueFactory} interface. Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/Operator.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/Operator.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/Operator.java (revision ) @@ -19,7 +19,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.query.fulltext.LikePattern; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; /** * The enumeration of all operators. Index: oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java (revision ) @@ -36,7 +36,7 @@ import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.commons.PathUtils; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters; import org.apache.jackrabbit.oak.spi.security.user.AuthorizableNodeName; import org.apache.jackrabbit.oak.spi.security.user.AuthorizableType; \ No newline at end of file Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/UpperCaseImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/UpperCaseImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/UpperCaseImpl.java (revision ) @@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryConstants; import org.apache.jackrabbit.oak.spi.query.QueryIndex.OrderEntry; Index: oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java (revision 1797861) +++ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java (revision ) @@ -52,7 +52,7 @@ import org.apache.jackrabbit.oak.spi.query.Filter; import org.apache.jackrabbit.oak.spi.query.Filter.PropertyRestriction; import org.apache.jackrabbit.oak.spi.query.IndexRow; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.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.AdvanceFulltextQueryIndex; Index: oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java (revision 1797861) +++ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java (revision ) @@ -66,7 +66,7 @@ import org.apache.jackrabbit.oak.spi.query.Filter; import org.apache.jackrabbit.oak.spi.query.Filter.PropertyRestriction; import org.apache.jackrabbit.oak.spi.query.IndexRow; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.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.AdvanceFulltextQueryIndex; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java (revision ) @@ -47,7 +47,7 @@ import org.apache.jackrabbit.oak.spi.query.Cursor; import org.apache.jackrabbit.oak.spi.query.Cursors; import org.apache.jackrabbit.oak.spi.query.IndexRow; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.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; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditor.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditor.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditor.java (revision ) @@ -45,7 +45,7 @@ import org.apache.jackrabbit.oak.plugins.nodetype.TypePredicate; import org.apache.jackrabbit.oak.spi.commit.Editor; import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.jackrabbit.oak.spi.state.NodeState; \ No newline at end of file Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeNameImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeNameImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeNameImpl.java (revision ) @@ -30,7 +30,7 @@ import org.apache.jackrabbit.oak.namepath.JcrNameParser; import org.apache.jackrabbit.oak.query.QueryImpl; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryConstants; import org.apache.jackrabbit.oak.spi.query.QueryIndex.OrderEntry; import org.apache.jackrabbit.util.ISO9075; @@ -144,8 +144,12 @@ // Name escaping (convert _x0020_ to space) name = ISO9075.decode(name); // normalize paths (./name > name) - name = PropertyValues.getOakPath(name, query.getNamePathMapper()); - if (PathUtils.isAbsolute(name)) { + if (query.getNamePathMapper() != null) { + name = query.getNamePathMapper().getOakPath(name); + } + if (name == null) { + throw new IllegalArgumentException("Not a valid JCR name: " + name); + } else if (PathUtils.isAbsolute(name)) { throw new IllegalArgumentException("Not a valid JCR name: " + name + " (absolute paths are not names)"); } else if (PathUtils.getDepth(name) > 1) { Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java (revision ) @@ -80,7 +80,7 @@ import org.apache.jackrabbit.oak.query.plan.ExecutionPlan; import org.apache.jackrabbit.oak.query.plan.SelectorExecutionPlan; import org.apache.jackrabbit.oak.spi.query.Filter; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.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; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java (revision ) @@ -31,7 +31,7 @@ import org.apache.jackrabbit.oak.query.ast.ColumnImpl; import org.apache.jackrabbit.oak.query.ast.OrderingImpl; import org.apache.jackrabbit.oak.query.QueryImpl.MeasuringIterator; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java (revision 1797861) +++ oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyValues.java (revision ) @@ -16,33 +16,20 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.jackrabbit.oak.spi.query; +package org.apache.jackrabbit.oak.plugins.memory; -import static com.google.common.collect.Iterables.contains; - import java.math.BigDecimal; -import java.net.URI; - import javax.annotation.CheckForNull; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import javax.jcr.PropertyType; import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.namepath.NamePathMapper; -import org.apache.jackrabbit.oak.plugins.memory.BinaryPropertyState; -import org.apache.jackrabbit.oak.plugins.memory.BooleanPropertyState; -import org.apache.jackrabbit.oak.plugins.memory.DecimalPropertyState; -import org.apache.jackrabbit.oak.plugins.memory.DoublePropertyState; -import org.apache.jackrabbit.oak.plugins.memory.GenericPropertyState; -import org.apache.jackrabbit.oak.plugins.memory.LongPropertyState; -import org.apache.jackrabbit.oak.plugins.memory.MultiGenericPropertyState; -import org.apache.jackrabbit.oak.plugins.memory.MultiStringPropertyState; -import org.apache.jackrabbit.oak.plugins.memory.StringPropertyState; +import static com.google.common.collect.Iterables.contains; + /** * Utility class for creating {@link PropertyValue} instances. */ @@ -240,120 +227,6 @@ // -- - /** - * Converts the given value to a value of the specified target type. The - * conversion is performed according to the rules described in - * "3.6.4 Property Type Conversion" in the JCR 2.0 specification. - * - * @param value the value to convert - * @param targetType the target property type - * @param mapper the name mapper or {@code null} if no name/path mapping is required. - * @return the converted value - * @throws IllegalArgumentException if mapping is illegal - */ - public static PropertyValue convert(@Nonnull PropertyValue value, int targetType, @Nullable NamePathMapper mapper) { - int sourceType = value.getType().tag(); - if (sourceType == targetType) { - return value; - } - switch (targetType) { - case PropertyType.BINARY: - Blob blob = value.getValue(Type.BINARY); - return newBinary(blob); - case PropertyType.BOOLEAN: - return newBoolean(value.getValue(Type.BOOLEAN)); - case PropertyType.DATE: - return newDate(value.getValue(Type.DATE)); - case PropertyType.DOUBLE: - return newDouble(value.getValue(Type.DOUBLE)); - case PropertyType.LONG: - return newLong(value.getValue(Type.LONG)); - case PropertyType.DECIMAL: - return newDecimal(value.getValue(Type.DECIMAL)); - } - // for other types, the value is first converted to a string - String v = value.getValue(Type.STRING); - switch (targetType) { - case PropertyType.STRING: - return newString(v); - case PropertyType.PATH: - switch (sourceType) { - case PropertyType.BINARY: - case PropertyType.STRING: - case PropertyType.NAME: - return newPath(v); - case PropertyType.URI: - URI uri = URI.create(v); - if (uri.isAbsolute()) { - // uri contains scheme - throw new IllegalArgumentException( - "Failed to convert URI " + v + " to PATH"); - } - String p = uri.getPath(); - if (p.startsWith("./")) { - p = p.substring(2); - } - return newPath(v); - } - break; - case PropertyType.NAME: - switch (sourceType) { - case PropertyType.BINARY: - case PropertyType.STRING: - case PropertyType.PATH: - // path might be a name (relative path of length 1) - // try conversion via string - return newName(getOakPath(v, mapper)); - case PropertyType.URI: - URI uri = URI.create(v); - if (uri.isAbsolute()) { - // uri contains scheme - throw new IllegalArgumentException( - "Failed to convert URI " + v + " to PATH"); - } - String p = uri.getPath(); - if (p.startsWith("./")) { - p = p.substring(2); - } - return newName(getOakPath(v, mapper)); - } - break; - case PropertyType.REFERENCE: - switch (sourceType) { - case PropertyType.BINARY: - case PropertyType.STRING: - case PropertyType.WEAKREFERENCE: - return newReference(v); - } - break; - case PropertyType.WEAKREFERENCE: - switch (sourceType) { - case PropertyType.BINARY: - case PropertyType.STRING: - case PropertyType.REFERENCE: - return newWeakReference(v); - } - break; - case PropertyType.URI: - switch (sourceType) { - case PropertyType.BINARY: - case PropertyType.STRING: - return newUri(v); - case PropertyType.NAME: - // prefix name with "./" (JCR 2.0 spec 3.6.4.8) - return newUri("./" + v); - case PropertyType.PATH: - // prefix name with "./" (JCR 2.0 spec 3.6.4.9) - return newUri("./" + v); - } - } - throw new IllegalArgumentException( - "Unsupported conversion from property type " + - PropertyType.nameFromValue(sourceType) + - " to property type " + - PropertyType.nameFromValue(targetType)); - } - public static boolean canConvert(int sourceType, int targetType) { if (sourceType == targetType || sourceType == PropertyType.UNDEFINED || @@ -393,19 +266,6 @@ return true; } return false; - } - - public static String getOakPath(@Nonnull String jcrPath, @CheckForNull NamePathMapper mapper) { - if (mapper == null) { - // to simplify testing, a getNamePathMapper isn't required - return jcrPath; - } - String p = mapper.getOakPath(jcrPath); - if (p == null) { - throw new IllegalArgumentException("Not a valid JCR path: " - + jcrPath); - } - return p; } } Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElement.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElement.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElement.java (revision ) @@ -23,7 +23,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.query.QueryImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.query.ValueConverter; /** * The base class for all abstract syntax tree nodes. @@ -130,7 +130,7 @@ return v; } try { - return PropertyValues.convert(v, type, query.getNamePathMapper()); + return ValueConverter.convert(v, type, query.getNamePathMapper()); } catch (IllegalArgumentException e) { // not possible to convert return v; Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryManagerImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryManagerImpl.java (revision 1797861) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryManagerImpl.java (revision ) @@ -47,7 +47,7 @@ import org.apache.jackrabbit.oak.jcr.query.qom.QueryObjectModelFactoryImpl; import org.apache.jackrabbit.oak.jcr.session.SessionContext; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.stats.MeterStats; import org.apache.jackrabbit.oak.stats.TimerStats; import org.slf4j.Logger; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexLookup.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexLookup.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexLookup.java (revision ) @@ -16,7 +16,7 @@ */ package org.apache.jackrabbit.oak.plugins.index.nodetype; -import static org.apache.jackrabbit.oak.spi.query.PropertyValues.newName; +import static org.apache.jackrabbit.oak.plugins.memory.PropertyValues.newName; import org.apache.jackrabbit.JcrConstants; import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexLookup; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeLocalNameImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeLocalNameImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NodeLocalNameImpl.java (revision ) @@ -28,7 +28,7 @@ import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryConstants; import org.apache.jackrabbit.oak.spi.query.QueryIndex.OrderEntry; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SuggestImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SuggestImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SuggestImpl.java (revision ) @@ -24,7 +24,7 @@ import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryIndex.FulltextQueryIndex; import org.slf4j.Logger; import org.slf4j.LoggerFactory; \ No newline at end of file Index: oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/RestrictionImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/RestrictionImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/RestrictionImpl.java (revision ) @@ -20,7 +20,7 @@ import com.google.common.base.Objects; import org.apache.jackrabbit.oak.api.PropertyState; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; /** * {@code RestrictionImpl} Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ValueConverter.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ValueConverter.java (revision ) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ValueConverter.java (revision ) @@ -0,0 +1,165 @@ +/* + * 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 java.net.URI; +import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import javax.jcr.PropertyType; + +import org.apache.jackrabbit.oak.api.Blob; +import org.apache.jackrabbit.oak.api.PropertyValue; +import org.apache.jackrabbit.oak.api.Type; +import org.apache.jackrabbit.oak.namepath.NamePathMapper; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ValueConverter { + + private static final Logger log = LoggerFactory.getLogger(ValueConverter.class); + + private ValueConverter() {} + + /** + * Converts the given value to a value of the specified target type. The + * conversion is performed according to the rules described in + * "3.6.4 Property Type Conversion" in the JCR 2.0 specification. + * + * @param value the value to convert + * @param targetType the target property type + * @param mapper the name mapper or {@code null} if no name/path mapping is required. + * @return the converted value + * @throws IllegalArgumentException if mapping is illegal + */ + public static PropertyValue convert(@Nonnull PropertyValue value, int targetType, @Nullable NamePathMapper mapper) { + int sourceType = value.getType().tag(); + if (sourceType == targetType) { + return value; + } + switch (targetType) { + case PropertyType.BINARY: + Blob blob = value.getValue(Type.BINARY); + return PropertyValues.newBinary(blob); + case PropertyType.BOOLEAN: + return PropertyValues.newBoolean(value.getValue(Type.BOOLEAN)); + case PropertyType.DATE: + return PropertyValues.newDate(value.getValue(Type.DATE)); + case PropertyType.DOUBLE: + return PropertyValues.newDouble(value.getValue(Type.DOUBLE)); + case PropertyType.LONG: + return PropertyValues.newLong(value.getValue(Type.LONG)); + case PropertyType.DECIMAL: + return PropertyValues.newDecimal(value.getValue(Type.DECIMAL)); + } + // for other types, the value is first converted to a string + String v = value.getValue(Type.STRING); + switch (targetType) { + case PropertyType.STRING: + return PropertyValues.newString(v); + case PropertyType.PATH: + switch (sourceType) { + case PropertyType.BINARY: + case PropertyType.STRING: + case PropertyType.NAME: + return PropertyValues.newPath(v); + case PropertyType.URI: + URI uri = URI.create(v); + if (uri.isAbsolute()) { + // uri contains scheme + throw new IllegalArgumentException( + "Failed to convert URI " + v + " to PATH"); + } + String p = uri.getPath(); + if (p.startsWith("./")) { + p = p.substring(2); + } + return PropertyValues.newPath(v); + } + break; + case PropertyType.NAME: + switch (sourceType) { + case PropertyType.BINARY: + case PropertyType.STRING: + case PropertyType.PATH: + // path might be a name (relative path of length 1) + // try conversion via string + return PropertyValues.newName(getOakPath(v, mapper)); + case PropertyType.URI: + URI uri = URI.create(v); + if (uri.isAbsolute()) { + // uri contains scheme + throw new IllegalArgumentException( + "Failed to convert URI " + v + " to PATH"); + } + String p = uri.getPath(); + if (p.startsWith("./")) { + p = p.substring(2); + } + return PropertyValues.newName(getOakPath(v, mapper)); + } + break; + case PropertyType.REFERENCE: + switch (sourceType) { + case PropertyType.BINARY: + case PropertyType.STRING: + case PropertyType.WEAKREFERENCE: + return PropertyValues.newReference(v); + } + break; + case PropertyType.WEAKREFERENCE: + switch (sourceType) { + case PropertyType.BINARY: + case PropertyType.STRING: + case PropertyType.REFERENCE: + return PropertyValues.newWeakReference(v); + } + break; + case PropertyType.URI: + switch (sourceType) { + case PropertyType.BINARY: + case PropertyType.STRING: + return PropertyValues.newUri(v); + case PropertyType.NAME: + // prefix name with "./" (JCR 2.0 spec 3.6.4.8) + return PropertyValues.newUri("./" + v); + case PropertyType.PATH: + // prefix name with "./" (JCR 2.0 spec 3.6.4.9) + return PropertyValues.newUri("./" + v); + } + } + throw new IllegalArgumentException( + "Unsupported conversion from property type " + + PropertyType.nameFromValue(sourceType) + + " to property type " + + PropertyType.nameFromValue(targetType)); + } + + private static String getOakPath(@Nonnull String jcrPath, @CheckForNull NamePathMapper mapper) { + if (mapper == null) { + // to simplify testing, a getNamePathMapper isn't required + return jcrPath; + } + String p = mapper.getOakPath(jcrPath); + if (p == null) { + throw new IllegalArgumentException("Not a valid JCR path: " + + jcrPath); + } + return p; + } +} \ No newline at end of file Index: oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/FullTextSearchImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/FullTextSearchImpl.java (revision 1797861) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/FullTextSearchImpl.java (revision ) @@ -34,7 +34,7 @@ import org.apache.jackrabbit.oak.query.fulltext.FullTextExpression; import org.apache.jackrabbit.oak.query.fulltext.FullTextParser; import org.apache.jackrabbit.oak.query.index.FilterImpl; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.query.QueryIndex.FulltextQueryIndex; /** Index: oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndex.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndex.java (revision 1797861) +++ oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndex.java (revision ) @@ -55,7 +55,7 @@ import org.apache.jackrabbit.oak.spi.query.Cursors; import org.apache.jackrabbit.oak.spi.query.Filter; import org.apache.jackrabbit.oak.spi.query.IndexRow; -import org.apache.jackrabbit.oak.spi.query.PropertyValues; +import org.apache.jackrabbit.oak.plugins.memory.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.FulltextQueryIndex;