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