]> source.dussan.org Git - archiva.git/commitdiff
Changing JCR queries to new syntax
authorMartin Stockhammer <martin_s@apache.org>
Sun, 1 Apr 2018 22:28:02 +0000 (00:28 +0200)
committerMartin Stockhammer <martin_s@apache.org>
Sun, 1 Apr 2018 22:28:02 +0000 (00:28 +0200)
archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepository.java

index a4d5d5d6c4fced5d117bb408e137ffefa1939342..978602ad2043d84bd1e2b7c06c507412969bb08e 100644 (file)
@@ -1722,14 +1722,15 @@ public class JcrMetadataRepository
         {
             QueryManager queryManager = session.getWorkspace().getQueryManager();
 
-            // TODO: JCR-SQL2 query will not complete on a large repo in Jackrabbit 2.2.0 - see JCR-2835
+            // TODO: Check, if this is still the case - Switched to Jackrabbit OAK with archiva 3.0
+            // Former statement: JCR-SQL2 query will not complete on a large repo in Jackrabbit 2.2.0 - see JCR-2835
             //    Using the JCR-SQL2 variants gives
             //      "org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount is set to 1024"
 //            String whereClause = "WHERE ISDESCENDANTNODE([/repositories/" + repositoryId + "/content])";
 //            Query query = queryManager.createQuery( "SELECT size FROM [archiva:artifact] " + whereClause,
 //                                                    Query.JCR_SQL2 );
-            String whereClause = "WHERE jcr:path LIKE '/repositories/" + repositoryId + "/content/%'";
-            Query query = queryManager.createQuery( "SELECT size FROM archiva:artifact " + whereClause, Query.SQL );
+            String whereClause = "WHERE ISDESCENDANTNODE([/repositories/" + repositoryId + "/content])";
+            Query query = queryManager.createQuery( "SELECT size FROM [archiva:artifact] " + whereClause, Query.JCR_SQL2 );
 
             QueryResult queryResult = query.execute();
 
@@ -1766,15 +1767,15 @@ public class JcrMetadataRepository
 
             // The query ordering is a trick to ensure that the size is correct, otherwise due to lazy init it will be -1
 //            query = queryManager.createQuery( "SELECT * FROM [archiva:project] " + whereClause, Query.JCR_SQL2 );
-            query = queryManager.createQuery( "SELECT * FROM archiva:project " + whereClause + " ORDER BY jcr:score",
-                                              Query.SQL );
+            query = queryManager.createQuery( "SELECT * FROM [archiva:project] " + whereClause + " ORDER BY [jcr:score]",
+                                              Query.JCR_SQL2 );
             repositoryStatistics.setTotalProjectCount( query.execute().getRows().getSize() );
 
 //            query = queryManager.createQuery(
 //                "SELECT * FROM [archiva:namespace] " + whereClause + " AND namespace IS NOT NULL", Query.JCR_SQL2 );
             query = queryManager.createQuery(
-                "SELECT * FROM archiva:namespace " + whereClause + " AND namespace IS NOT NULL ORDER BY jcr:score",
-                Query.SQL );
+                "SELECT * FROM [archiva:namespace] " + whereClause + " AND namespace IS NOT NULL ORDER BY [jcr:score]",
+                Query.JCR_SQL2 );
             repositoryStatistics.setTotalGroupCount( query.execute().getRows().getSize() );
         }
         catch ( RepositoryException e )