Author: tomekr
Date: Fri Jun  9 10:37:20 2017
New Revision: 1798188

URL: http://svn.apache.org/viewvc?rev=1798188&view=rev
Log:
OAK-5309: Supporting roles in RepositoryManager execution of maintenance tasks

Added cancelRevisionGCForRole() and getRevisionGCStatusForRole().

Modified:
    
jackrabbit/oak/trunk/oak-api/src/main/java/org/apache/jackrabbit/oak/api/jmx/RepositoryManagementMBean.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/management/RepositoryManager.java

Modified: 
jackrabbit/oak/trunk/oak-api/src/main/java/org/apache/jackrabbit/oak/api/jmx/RepositoryManagementMBean.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-api/src/main/java/org/apache/jackrabbit/oak/api/jmx/RepositoryManagementMBean.java?rev=1798188&r1=1798187&r2=1798188&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-api/src/main/java/org/apache/jackrabbit/oak/api/jmx/RepositoryManagementMBean.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-api/src/main/java/org/apache/jackrabbit/oak/api/jmx/RepositoryManagementMBean.java
 Fri Jun  9 10:37:20 2017
@@ -188,6 +188,16 @@ public interface RepositoryManagementMBe
     CompositeData cancelRevisionGC();
 
     /**
+     * Cancel a running revision garbage collection operation for a given role.
+     * Does nothing if revision garbage collection is not running.
+     *
+     * @return  the status of the operation right after it was initiated
+     */
+    @Nonnull
+    @Description("Cancel a running revision garbage collection operation. Does 
nothing if revision garbage collection is not running.")
+    CompositeData cancelRevisionGCForRole(String role);
+
+    /**
      * Revision garbage collection status
      *
      * @return  the status of the ongoing operation or if none the terminal
@@ -198,6 +208,16 @@ public interface RepositoryManagementMBe
     CompositeData getRevisionGCStatus();
 
     /**
+     * Revision garbage collection status for a given role.
+     *
+     * @return  the status of the ongoing operation or if none the terminal
+     * status of the last operation or <em>Status not available</em> if none.
+     */
+    @Nonnull
+    @Description("Revision garbage collection status for a given role")
+    CompositeData getRevisionGCStatusForRole(String role);
+
+    /**
      * Creates a new checkpoint of the latest root of the tree. The checkpoint
      * remains valid for at least as long as requested and allows that state
      * of the repository to be retrieved using the returned opaque string

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/management/RepositoryManager.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/management/RepositoryManager.java?rev=1798188&r1=1798187&r2=1798188&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/management/RepositoryManager.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/management/RepositoryManager.java
 Fri Jun  9 10:37:20 2017
@@ -194,24 +194,36 @@ public class RepositoryManager extends A
     @Nonnull
     @Override
     public CompositeData cancelRevisionGC() {
+        return cancelRevisionGCForRole(null);
+    }
+
+    @Nonnull
+    @Override
+    public CompositeData cancelRevisionGCForRole(String role) {
         return execute(RevisionGCMBean.class, new Function<RevisionGCMBean, 
Status>() {
             @Nonnull
             @Override
             public Status apply(RevisionGCMBean revisionGCService) {
                 return fromCompositeData(revisionGCService.cancelRevisionGC());
             }
-        }).toCompositeData();
+        }, singletonMap("role", role)).toCompositeData();
     }
 
     @Override
     public CompositeData getRevisionGCStatus() {
+        return getRevisionGCStatusForRole(null);
+    }
+
+    @Nonnull
+    @Override
+    public CompositeData getRevisionGCStatusForRole(String role) {
         return execute(RevisionGCMBean.class, new Function<RevisionGCMBean, 
Status>() {
             @Nonnull
             @Override
             public Status apply(RevisionGCMBean revisionGCService) {
                 return 
fromCompositeData(revisionGCService.getRevisionGCStatus());
             }
-        }).toCompositeData();
+        }, singletonMap("role", role)).toCompositeData();
     }
 
     @Override


Reply via email to