Extract deletion logic

Take advantage of the already extracted logic between archiving and
deletion and further extract common logic.

Bug: Issue 461332435
Change-Id: I750c57cbbf300fee6f48ed7eae1d38da6a6a6964
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/AbstractScheduledTask.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/AbstractScheduledTask.java
index cefbfc9..0b32d6d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/AbstractScheduledTask.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/AbstractScheduledTask.java
@@ -16,16 +16,22 @@
 
 import static com.googlesource.gerrit.plugins.deleteproject.Configuration.DEFAULT_INITIAL_DELAY_MILLIS;
 import static com.googlesource.gerrit.plugins.deleteproject.Configuration.DEFAULT_PERIOD_DAYS;
+import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.flogger.FluentLogger;
+import com.google.common.io.MoreFiles;
 import com.google.gerrit.extensions.events.LifecycleListener;
 import com.google.gerrit.server.config.ScheduleConfig;
 import com.google.gerrit.server.git.WorkQueue;
+import java.io.IOException;
+import java.nio.file.Path;
 import java.util.Optional;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
 public abstract class AbstractScheduledTask implements LifecycleListener, Runnable {
+  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private final WorkQueue queue;
   private final Optional<ScheduleConfig.Schedule> schedule;
@@ -62,6 +68,14 @@
   @Override
   public abstract void run();
 
+  protected void recursivelyDelete(Path path) {
+    try {
+      MoreFiles.deleteRecursively(path, ALLOW_INSECURE);
+    } catch (IOException e) {
+      logger.atWarning().withCause(e).log("Failed to delete %s", path);
+    }
+  }
+
   @VisibleForTesting
   ScheduledFuture<?> getWorkerFuture() {
     return scheduledTask;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java
index 8628644..24ffded 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java
@@ -14,9 +14,7 @@
 
 package com.googlesource.gerrit.plugins.deleteproject.fs;
 
-import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE;
 import com.google.common.flogger.FluentLogger;
-import com.google.common.io.MoreFiles;
 import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.server.git.WorkQueue;
 import com.google.inject.Inject;
@@ -61,12 +59,7 @@
 
   private void cleanUpOverdueRepositories() {
     for (Path path : listOverdueFiles(config.getArchiveDuration())) {
-      try {
-        MoreFiles.deleteRecursively(path, ALLOW_INSECURE);
-      } catch (IOException e) {
-        logger.atWarning().withCause(e).log(
-            "Error trying to clean the archived git repository: %s", path);
-      }
+      recursivelyDelete(path);
     }
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java
index 62bda19..d34d112 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java
@@ -13,13 +13,10 @@
 // limitations under the License.
 package com.googlesource.gerrit.plugins.deleteproject.fs;
 
-import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE;
-
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Stopwatch;
 import com.google.common.collect.Sets;
 import com.google.common.flogger.FluentLogger;
-import com.google.common.io.MoreFiles;
 import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.gerrit.server.config.RepositoryConfig;
@@ -153,11 +150,4 @@
     return false;
   }
 
-  private void recursivelyDelete(Path folder) {
-    try {
-      MoreFiles.deleteRecursively(folder, ALLOW_INSECURE);
-    } catch (IOException e) {
-      log.atSevere().withCause(e).log("Failed to delete %s", folder);
-    }
-  }
 }