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 2015/08/11 14:21:00 UTC
svn commit: r1695292 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/api/
main/java/org/apache/jackrabbit/oak/plugins/identifier/
main/java/org/apache/jackrabbit/oak/query/
main/java/org/apache/jackrabbit/oak/query/index/ m...
Author: thomasm
Date: Tue Aug 11 12:21:00 2015
New Revision: 1695292
URL: http://svn.apache.org/r1695292
Log:
OAK-2785 Add QueryEngine.executeQuery without limit and offset
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/QueryEngine.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/package-info.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.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/index/FilterImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/package-info.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/api/QueryTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/AbstractQueryTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/QueryEngine.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/QueryEngine.java?rev=1695292&r1=1695291&r2=1695292&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/QueryEngine.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/QueryEngine.java Tue Aug 11 12:21:00 2015
@@ -23,11 +23,14 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import aQute.bnd.annotation.ProviderType;
+
/**
* The query engine allows to parse and execute queries.
* <p>
* What query languages are supported depends on the registered query parsers.
*/
+@ProviderType
public interface QueryEngine {
/**
@@ -88,5 +91,22 @@ public interface QueryEngine {
String statement, String language, long limit, long offset,
Map<String, ? extends PropertyValue> bindings,
Map<String, String> mappings) throws ParseException;
+
+ /**
+ * Execute a query and get the result.
+ * This is a convenience method: no limit, and offset 0.
+ *
+ * @param statement the query statement
+ * @param language the language
+ * @param bindings the bind variable value bindings
+ * @param mappings namespace prefix mappings
+ * @return the result
+ * @throws ParseException if the statement could not be parsed
+ * @throws IllegalArgumentException if there was an error executing the query
+ */
+ Result executeQuery(
+ String statement, String language,
+ Map<String, ? extends PropertyValue> bindings,
+ Map<String, String> mappings) throws ParseException;
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/package-info.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/package-info.java?rev=1695292&r1=1695291&r2=1695292&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/package-info.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/package-info.java Tue Aug 11 12:21:00 2015
@@ -18,7 +18,7 @@
/**
* Oak repository API
*/
-@Version("2.0")
+@Version("2.1")
@Export(optional = "provide:=true")
package org.apache.jackrabbit.oak.api;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java?rev=1695292&r1=1695291&r2=1695292&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java Tue Aug 11 12:21:00 2015
@@ -222,7 +222,7 @@ public class IdentifierManager {
Result result = root.getQueryEngine().executeQuery(
"SELECT * FROM [nt:base] WHERE PROPERTY([" + pName + "], '" + reference + "') = $uuid" +
QueryEngine.INTERNAL_SQL2_QUERY,
- Query.JCR_SQL2, Long.MAX_VALUE, 0, bindings, NO_MAPPINGS);
+ Query.JCR_SQL2, bindings, NO_MAPPINGS);
return findPaths(result, uuid, propertyName, nodeTypeNames,
weak ? Type.WEAKREFERENCE : Type.REFERENCE,
weak ? Type.WEAKREFERENCES : Type.REFERENCES
@@ -315,7 +315,7 @@ public class IdentifierManager {
"SELECT * FROM [nt:base] WHERE [jcr:uuid] = $id" +
QueryEngine.INTERNAL_SQL2_QUERY,
Query.JCR_SQL2,
- Long.MAX_VALUE, 0, bindings, NO_MAPPINGS);
+ bindings, NO_MAPPINGS);
String path = null;
for (ResultRow rr : result.getRows()) {
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=1695292&r1=1695291&r2=1695292&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 Aug 11 12:21:00 2015
@@ -70,7 +70,9 @@ public abstract class QueryEngineImpl im
private boolean traversalEnabled = true;
/**
- * @return Execution context for a single query execution.
+ * Get the execution context for a single query execution.
+ *
+ * @return the context
*/
protected abstract ExecutionContext getExecutionContext();
@@ -146,6 +148,14 @@ public abstract class QueryEngineImpl im
}
@Override
+ public Result executeQuery(
+ String statement, String language,
+ Map<String, ? extends PropertyValue> bindings,
+ Map<String, String> mappings) throws ParseException {
+ return executeQuery(statement, language, Long.MAX_VALUE, 0, bindings, mappings);
+ }
+
+ @Override
public Result executeQuery(
String statement, String language, long limit, long offset,
Map<String, ? extends PropertyValue> bindings,
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java?rev=1695292&r1=1695291&r2=1695292&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java Tue Aug 11 12:21:00 2015
@@ -230,17 +230,26 @@ public class FilterImpl implements Filte
@Override @Nonnull
public Set<String> getSupertypes() {
- return selector == null ? Collections.EMPTY_SET : selector.getSupertypes();
+ if (selector == null) {
+ return Collections.emptySet();
+ }
+ return selector.getSupertypes();
}
@Override @Nonnull
public Set<String> getPrimaryTypes() {
- return selector == null ? Collections.EMPTY_SET : selector.getPrimaryTypes();
+ if (selector == null) {
+ return Collections.emptySet();
+ }
+ return selector.getPrimaryTypes();
}
@Override @Nonnull
public Set<String> getMixinTypes() {
- return selector == null ? Collections.EMPTY_SET : selector.getMixinTypes();
+ if (selector == null) {
+ return Collections.emptySet();
+ }
+ return selector.getMixinTypes();
}
@Override
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/package-info.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/package-info.java?rev=1695292&r1=1695291&r2=1695292&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/package-info.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/package-info.java Tue Aug 11 12:21:00 2015
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-@Version("2.1")
+@Version("2.2")
@Export(optional = "provide:=true")
package org.apache.jackrabbit.oak.query;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java?rev=1695292&r1=1695291&r2=1695292&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java Tue Aug 11 12:21:00 2015
@@ -559,7 +559,7 @@ public class AccessControlManagerImpl ex
try {
QueryEngine queryEngine = root.getQueryEngine();
return queryEngine.executeQuery(
- stmt.toString(), Query.XPATH, Long.MAX_VALUE, 0,
+ stmt.toString(), Query.XPATH,
QueryEngine.NO_BINDINGS, QueryEngine.NO_MAPPINGS);
} catch (ParseException e) {
String msg = "Error while collecting effective policies.";
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java?rev=1695292&r1=1695291&r2=1695292&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java Tue Aug 11 12:21:00 2015
@@ -156,7 +156,7 @@ class UserPrincipalProvider implements P
.append("')]");
Result result = root.getQueryEngine().executeQuery(
- statement.toString(), javax.jcr.query.Query.XPATH, Long.MAX_VALUE, 0,
+ statement.toString(), javax.jcr.query.Query.XPATH,
NO_BINDINGS, namePathMapper.getSessionLocalMappings());
Iterator<Principal> principals = Iterators.filter(
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/api/QueryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/api/QueryTest.java?rev=1695292&r1=1695291&r2=1695292&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/api/QueryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/api/QueryTest.java Tue Aug 11 12:21:00 2015
@@ -67,7 +67,7 @@ public class QueryTest {
r.commit();
Result result = r2.getQueryEngine().executeQuery(
- "test//element(*, nt:base)", Query.XPATH, Long.MAX_VALUE, 0,
+ "test//element(*, nt:base)", Query.XPATH,
QueryEngine.NO_BINDINGS, QueryEngine.NO_MAPPINGS);
Set<String> paths = new HashSet<String>();
for (ResultRow rr : result.getRows()) {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/AbstractQueryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/AbstractQueryTest.java?rev=1695292&r1=1695291&r2=1695292&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/AbstractQueryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/AbstractQueryTest.java Tue Aug 11 12:21:00 2015
@@ -112,7 +112,7 @@ public abstract class AbstractQueryTest
protected Result executeQuery(String statement, String language,
Map<String, PropertyValue> sv) throws ParseException {
- return qe.executeQuery(statement, language, Long.MAX_VALUE, 0, sv, NO_MAPPINGS);
+ return qe.executeQuery(statement, language, sv, NO_MAPPINGS);
}
protected void test(String file) throws Exception {