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 {