Author: mduerig
Date: Thu Mar 20 13:02:38 2014
New Revision: 1579613
URL: http://svn.apache.org/r1579613
Log:
OAK-1560: Expose RevisionGCMBean for supported NodeStores
Only require an Executor instead of an ExecutorService in the constructor of
RevisionGC
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java?rev=1579613&r1=1579612&r2=1579613&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java
Thu Mar 20 13:02:38 2014
@@ -23,8 +23,9 @@ import static com.google.common.base.Pre
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
+import java.util.concurrent.Executor;
+import java.util.concurrent.FutureTask;
+import java.util.concurrent.RunnableFuture;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nonnull;
@@ -39,20 +40,19 @@ public class RevisionGC implements Revis
private static final Logger log =
LoggerFactory.getLogger(RevisionGC.class);
private final Runnable gc;
- private final ExecutorService executorService;
+ private final Executor executor;
- private Future<Long> gcOp;
+ private RunnableFuture<Long> gcOp;
/**
* @param gc Revision garbage collector
- * @param executorService executor service for running the garbage
collection task
- * in the background.
+ * @param executor executor for running the garbage collection task
*/
public RevisionGC(
@Nonnull Runnable gc,
- @Nonnull ExecutorService executorService) {
+ @Nonnull Executor executor) {
this.gc = checkNotNull(gc);
- this.executorService = checkNotNull(executorService);
+ this.executor = checkNotNull(executor);
}
@@ -62,7 +62,7 @@ public class RevisionGC implements Revis
if (gcOp != null && !gcOp.isDone()) {
return "Garbage collection already running";
} else {
- gcOp = executorService.submit(new Callable<Long>() {
+ gcOp = new FutureTask<Long>(new Callable<Long>() {
@Override
public Long call() throws Exception {
long t0 = System.nanoTime();
@@ -70,6 +70,7 @@ public class RevisionGC implements Revis
return System.nanoTime() - t0;
}
});
+ executor.execute(gcOp);
return getRevisionGCStatus();
}
}