Author: mreutegg
Date: Mon Sep  4 09:04:08 2017
New Revision: 1807199

URL: http://svn.apache.org/viewvc?rev=1807199&view=rev
Log:
OAK-6609: Provide job name for JournalGC and RevisionGC job

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java?rev=1807199&r1=1807198&r2=1807199&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
 Mon Sep  4 09:04:08 2017
@@ -52,6 +52,7 @@ import javax.sql.DataSource;
 
 import com.google.common.base.Strings;
 import com.google.common.base.Supplier;
+import com.google.common.collect.ImmutableMap;
 import com.google.common.io.Closer;
 import com.google.common.util.concurrent.UncheckedExecutionException;
 import com.mongodb.MongoClientURI;
@@ -974,38 +975,27 @@ public class DocumentNodeStoreService {
     private void registerLastRevRecoveryJob(final DocumentNodeStore nodeStore) 
{
         long leaseTime = 
toLong(context.getProperties().get(PROP_REV_RECOVERY_INTERVAL),
                 ClusterNodeInfo.DEFAULT_LEASE_UPDATE_INTERVAL_MILLIS);
-        Runnable recoverJob = new Runnable() {
-            @Override
-            public void run() {
-                nodeStore.getLastRevRecoveryAgent().performRecoveryIfNeeded();
-            }
-        };
         addRegistration(WhiteboardUtils.scheduleWithFixedDelay(whiteboard,
-                recoverJob, TimeUnit.MILLISECONDS.toSeconds(leaseTime),
+                new LastRevRecoveryJob(nodeStore), 
TimeUnit.MILLISECONDS.toSeconds(leaseTime),
                 false/*runOnSingleClusterNode*/, true /*use dedicated pool*/));
     }
 
     private void registerJournalGC(final DocumentNodeStore nodeStore) {
         long journalGCInterval = 
toLong(context.getProperties().get(PROP_JOURNAL_GC_INTERVAL_MILLIS),
                 DEFAULT_JOURNAL_GC_INTERVAL_MILLIS);
-
-        Runnable journalGCJob = new Runnable() {
-            @Override
-            public void run() {
-                nodeStore.getJournalGarbageCollector().gc();
-            }
-
-        };
         addRegistration(WhiteboardUtils.scheduleWithFixedDelay(whiteboard,
-                journalGCJob, 
TimeUnit.MILLISECONDS.toSeconds(journalGCInterval),
+                new JournalGCJob(nodeStore),
+                jobPropertiesFor(JournalGCJob.class),
+                TimeUnit.MILLISECONDS.toSeconds(journalGCInterval),
                 true/*runOnSingleClusterNode*/, true /*use dedicated pool*/));
     }
 
     private void registerVersionGCJob(final DocumentNodeStore nodeStore) {
         if (isContinuousRevisionGC()) {
-            final long versionGcMaxAgeInSecs = 
toLong(prop(PROP_VER_GC_MAX_AGE), DEFAULT_VER_GC_MAX_AGE);
+            long versionGcMaxAgeInSecs = toLong(prop(PROP_VER_GC_MAX_AGE), 
DEFAULT_VER_GC_MAX_AGE);
             addRegistration(WhiteboardUtils.scheduleWithFixedDelay(whiteboard,
                     new RevisionGCJob(nodeStore, versionGcMaxAgeInSecs),
+                    jobPropertiesFor(RevisionGCJob.class),
                     MODIFIED_IN_SECS_RESOLUTION, true, true));
         }
     }
@@ -1138,4 +1128,36 @@ public class DocumentNodeStoreService {
             }
         }
     }
+
+    private static final class JournalGCJob implements Runnable {
+
+        private final DocumentNodeStore nodeStore;
+
+        JournalGCJob(DocumentNodeStore ns) {
+            this.nodeStore = ns;
+        }
+
+        @Override
+        public void run() {
+            nodeStore.getJournalGarbageCollector().gc();
+        }
+    }
+
+    private static final class LastRevRecoveryJob implements Runnable {
+
+        private final DocumentNodeStore nodeStore;
+
+        LastRevRecoveryJob(DocumentNodeStore ns) {
+            this.nodeStore = ns;
+        }
+
+        @Override
+        public void run() {
+            nodeStore.getLastRevRecoveryAgent().performRecoveryIfNeeded();
+        }
+    }
+
+    private static Map<String, Object> jobPropertiesFor(Class clazz) {
+        return ImmutableMap.of("scheduler.name", clazz.getName());
+    }
 }


Reply via email to