This is an automated email from the ASF dual-hosted git repository.

klund pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new bb85e7c  GEODE-5355: Remove BackupUtil and BackupDataStoreHelper
bb85e7c is described below

commit bb85e7c32a9cba9717fa22907997ca3c3bdab28a
Author: Kirk Lund <[email protected]>
AuthorDate: Mon Jul 2 10:40:54 2018 -0700

    GEODE-5355: Remove BackupUtil and BackupDataStoreHelper
    
    * Rename *Operation classes to *Step
    * Introduce new BackupOperation as internal API for launching backup
---
 .../admin/internal/AdminDistributedSystemImpl.java |   4 +-
 .../org/apache/geode/internal/SystemAdmin.java     |   7 +-
 ...rtBackupOperation.java => AbortBackupStep.java} |   4 +-
 .../internal/cache/backup/BackupConfigFactory.java |  42 +++++++
 .../cache/backup/BackupDataStoreHelper.java        |  85 --------------
 .../internal/cache/backup/BackupLockService.java   |  41 +++++++
 .../internal/cache/backup/BackupOperation.java     | 125 +++++++++++++--------
 .../{BackupOperation.java => BackupStep.java}      |   4 +-
 .../geode/internal/cache/backup/BackupUtil.java    |  95 ----------------
 ...hBackupOperation.java => FinishBackupStep.java} |   4 +-
 ...shToDiskOperation.java => FlushToDiskStep.java} |   4 +-
 ...BackupOperation.java => PrepareBackupStep.java} |   4 +-
 .../internal/beans/DistributedSystemBridge.java    |  16 +--
 .../cli/commands/BackupDiskStoreCommand.java       |   6 +-
 ...OperationTest.java => AbortBackupStepTest.java} |  38 +++----
 .../cache/backup/BackupDistributedTest.java        |   2 +-
 .../cache/backup/BackupIntegrationTest.java        |   3 +-
 .../backup/BackupPrepareAndFinishMsgDUnitTest.java |  14 ++-
 ...perationTest.java => FinishBackupStepTest.java} |  48 ++++----
 ...OperationTest.java => FlushToDiskStepTest.java} |  20 ++--
 .../backup/IncrementalBackupDistributedTest.java   |   8 +-
 .../cache/backup/PrepareBackupFactoryTest.java     |   3 +-
 .../cache/backup/PrepareBackupRequestTest.java     |   4 +-
 ...erationTest.java => PrepareBackupStepTest.java} |  54 ++++-----
 .../PersistentPartitionedRegionTestBase.java       |   4 +-
 .../beans/DistributedSystemBridgeJUnitTest.java    |   6 +-
 26 files changed, 288 insertions(+), 357 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/admin/internal/AdminDistributedSystemImpl.java
 
b/geode-core/src/main/java/org/apache/geode/admin/internal/AdminDistributedSystemImpl.java
index fc2409d..d6320c8 100755
--- 
a/geode-core/src/main/java/org/apache/geode/admin/internal/AdminDistributedSystemImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/admin/internal/AdminDistributedSystemImpl.java
@@ -88,7 +88,7 @@ import 
org.apache.geode.internal.admin.remote.RemoteApplicationVM;
 import org.apache.geode.internal.admin.remote.RemoteTransportConfig;
 import org.apache.geode.internal.admin.remote.RevokePersistentIDRequest;
 import org.apache.geode.internal.admin.remote.ShutdownAllRequest;
-import org.apache.geode.internal.cache.backup.BackupUtil;
+import org.apache.geode.internal.cache.backup.BackupOperation;
 import org.apache.geode.internal.cache.persistence.PersistentMemberPattern;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.internal.logging.InternalLogWriter;
@@ -2322,7 +2322,7 @@ public class AdminDistributedSystemImpl implements 
org.apache.geode.admin.AdminD
   public static BackupStatus backupAllMembers(DistributionManager dm, File 
targetDir,
       File baselineDir) throws AdminException {
     String baselineDirectory = baselineDir == null ? null : 
baselineDir.toString();
-    return BackupUtil.backupAllMembers(dm, targetDir.toString(), 
baselineDirectory);
+    return new BackupOperation().backupAllMembers(dm, targetDir.toString(), 
baselineDirectory);
   }
 
   public Map<DistributedMember, Set<PersistentID>> compactAllDiskStores() 
throws AdminException {
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/SystemAdmin.java 
b/geode-core/src/main/java/org/apache/geode/internal/SystemAdmin.java
index c35b297..9ebd211 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/SystemAdmin.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/SystemAdmin.java
@@ -76,7 +76,7 @@ import 
org.apache.geode.distributed.internal.membership.InternalDistributedMembe
 import org.apache.geode.distributed.internal.tcpserver.TcpClient;
 import org.apache.geode.internal.admin.remote.TailLogResponse;
 import org.apache.geode.internal.cache.DiskStoreImpl;
-import org.apache.geode.internal.cache.backup.BackupUtil;
+import org.apache.geode.internal.cache.backup.BackupOperation;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.internal.logging.DateFormatter;
 import org.apache.geode.internal.logging.MergeLogFiles;
@@ -618,8 +618,9 @@ public class SystemAdmin {
     InternalDistributedSystem ads = getAdminCnx();
 
     // Baseline directory should be null if it was not provided on the command 
line
-    BackupStatus status = 
BackupUtil.backupAllMembers(ads.getDistributionManager(), targetDir,
-        SystemAdmin.baselineDir);
+    BackupStatus status =
+        new BackupOperation().backupAllMembers(ads.getDistributionManager(), 
targetDir,
+            SystemAdmin.baselineDir);
 
     boolean incomplete = !status.getOfflineDiskStores().isEmpty();
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/AbortBackupOperation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/AbortBackupStep.java
similarity index 94%
rename from 
geode-core/src/main/java/org/apache/geode/internal/cache/backup/AbortBackupOperation.java
rename to 
geode-core/src/main/java/org/apache/geode/internal/cache/backup/AbortBackupStep.java
index a879618..659a449 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/AbortBackupOperation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/AbortBackupStep.java
@@ -24,13 +24,13 @@ import 
org.apache.geode.distributed.internal.ReplyProcessor21;
 import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.InternalCache;
 
-class AbortBackupOperation extends BackupOperation {
+class AbortBackupStep extends BackupStep {
   private final InternalDistributedMember member;
   private final InternalCache cache;
   private final Set<InternalDistributedMember> recipients;
   private final AbortBackupFactory abortBackupFactory;
 
-  AbortBackupOperation(DistributionManager dm, InternalDistributedMember 
member,
+  AbortBackupStep(DistributionManager dm, InternalDistributedMember member,
       InternalCache cache, Set<InternalDistributedMember> recipients,
       AbortBackupFactory abortBackupFactory) {
     super(dm);
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupConfigFactory.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupConfigFactory.java
new file mode 100644
index 0000000..18611b5
--- /dev/null
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupConfigFactory.java
@@ -0,0 +1,42 @@
+package org.apache.geode.internal.cache.backup;
+
+import static 
org.apache.geode.internal.cache.backup.AbstractBackupWriterConfig.TIMESTAMP;
+import static 
org.apache.geode.internal.cache.backup.AbstractBackupWriterConfig.TYPE;
+import static 
org.apache.geode.internal.cache.backup.FileSystemBackupWriterConfig.BASELINE_DIR;
+import static 
org.apache.geode.internal.cache.backup.FileSystemBackupWriterConfig.TARGET_DIR;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Properties;
+
+class BackupConfigFactory {
+
+  private String targetDirPath;
+  private String baselineDirPath;
+
+  BackupConfigFactory() {
+    // nothing
+  }
+
+  BackupConfigFactory withTargetDirPath(String targetDirPath) {
+    this.targetDirPath = targetDirPath;
+    return this;
+  }
+
+  BackupConfigFactory withBaselineDirPath(String baselineDirPath) {
+    this.baselineDirPath = baselineDirPath;
+    return this;
+  }
+
+  Properties createBackupProperties() {
+    Properties properties = new Properties();
+    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
+    properties.setProperty(TIMESTAMP, format.format(new Date()));
+    properties.setProperty(TYPE, "FileSystem");
+    properties.setProperty(TARGET_DIR, targetDirPath);
+    if (baselineDirPath != null) {
+      properties.setProperty(BASELINE_DIR, baselineDirPath);
+    }
+    return properties;
+  }
+}
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupDataStoreHelper.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupDataStoreHelper.java
deleted file mode 100644
index 89e1511..0000000
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupDataStoreHelper.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
- * agreements. See the NOTICE file distributed with this work for additional 
information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the 
License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software 
distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
- * or implied. See the License for the specific language governing permissions 
and limitations under
- * the License.
- */
-package org.apache.geode.internal.cache.backup;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.geode.cache.persistence.PersistentID;
-import org.apache.geode.distributed.DistributedLockService;
-import org.apache.geode.distributed.DistributedMember;
-import org.apache.geode.distributed.internal.DistributionManager;
-import org.apache.geode.internal.Assert;
-
-public class BackupDataStoreHelper {
-
-  public static final String LOCK_SERVICE_NAME = 
BackupDataStoreHelper.class.getSimpleName();
-  private static final String LOCK_NAME = LOCK_SERVICE_NAME + "_token";
-  private static final Object LOCK_SYNC = new Object();
-  private static final FlushToDiskFactory flushToDiskFactory = new 
FlushToDiskFactory();
-  private static final PrepareBackupFactory prepareBackupFactory = new 
PrepareBackupFactory();
-  private static final AbortBackupFactory abortBackupFactory = new 
AbortBackupFactory();
-  private static final FinishBackupFactory finishBackupFactory = new 
FinishBackupFactory();
-
-  @SuppressWarnings("rawtypes")
-  public static BackupDataStoreResult backupAllMembers(DistributionManager dm, 
Set recipients,
-      Properties properties) {
-    new FlushToDiskOperation(dm, dm.getId(), dm.getCache(), recipients, 
flushToDiskFactory).send();
-
-    boolean abort = true;
-    Map<DistributedMember, Set<PersistentID>> successfulMembers;
-    Map<DistributedMember, Set<PersistentID>> existingDataStores;
-    try {
-      existingDataStores = new PrepareBackupOperation(dm, dm.getId(), 
dm.getCache(), recipients,
-          prepareBackupFactory, properties).send();
-      abort = false;
-    } finally {
-      if (abort) {
-        new AbortBackupOperation(dm, dm.getId(), dm.getCache(), recipients, 
abortBackupFactory)
-            .send();
-        successfulMembers = Collections.emptyMap();
-      } else {
-        successfulMembers = new FinishBackupOperation(dm, dm.getId(), 
dm.getCache(), recipients,
-            finishBackupFactory).send();
-      }
-    }
-    return new BackupDataStoreResult(existingDataStores, successfulMembers);
-  }
-
-  private static DistributedLockService getLockService(DistributionManager dm) 
{
-    DistributedLockService dls = 
DistributedLockService.getServiceNamed(LOCK_SERVICE_NAME);
-    if (dls == null) {
-      synchronized (LOCK_SYNC) {
-        dls = DistributedLockService.getServiceNamed(LOCK_SERVICE_NAME);
-        if (dls == null) {
-          // Create the DistributedLockService
-          dls = DistributedLockService.create(LOCK_SERVICE_NAME, 
dm.getSystem());
-        }
-      }
-    }
-    Assert.assertTrue(dls != null);
-    return dls;
-  }
-
-  public static boolean obtainLock(DistributionManager dm) {
-    return getLockService(dm).lock(LOCK_NAME, 0, -1);
-  }
-
-  public static void releaseLock(DistributionManager dm) {
-    getLockService(dm).unlock(LOCK_NAME);
-  }
-}
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupLockService.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupLockService.java
new file mode 100644
index 0000000..615b678
--- /dev/null
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupLockService.java
@@ -0,0 +1,41 @@
+package org.apache.geode.internal.cache.backup;
+
+import org.apache.geode.distributed.DistributedLockService;
+import org.apache.geode.distributed.internal.DistributionManager;
+import org.apache.geode.internal.Assert;
+
+public class BackupLockService {
+
+  public static final String LOCK_SERVICE_NAME = 
BackupLockService.class.getSimpleName();
+
+  private static final String LOCK_NAME = LOCK_SERVICE_NAME + "_token";
+  private static final Object LOCK_SYNC = new Object();
+
+  BackupLockService() {
+    // nothing
+  }
+
+  boolean obtainLock(DistributionManager dm) {
+    return getLockService(dm).lock(LOCK_NAME, 0, -1);
+  }
+
+  void releaseLock(DistributionManager dm) {
+    getLockService(dm).unlock(LOCK_NAME);
+  }
+
+  private DistributedLockService getLockService(DistributionManager dm) {
+    DistributedLockService dls = DistributedLockService.getServiceNamed(
+        LOCK_SERVICE_NAME);
+    if (dls == null) {
+      synchronized (LOCK_SYNC) {
+        dls = DistributedLockService.getServiceNamed(LOCK_SERVICE_NAME);
+        if (dls == null) {
+          // Create the DistributedLockService
+          dls = DistributedLockService.create(LOCK_SERVICE_NAME, 
dm.getSystem());
+        }
+      }
+    }
+    Assert.assertTrue(dls != null);
+    return dls;
+  }
+}
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupOperation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupOperation.java
index 5cae876..aa666c6 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupOperation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupOperation.java
@@ -15,71 +15,104 @@
 package org.apache.geode.internal.cache.backup;
 
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
 
-import org.apache.logging.log4j.Logger;
-
-import org.apache.geode.CancelException;
+import org.apache.geode.admin.internal.AdminDistributedSystemImpl;
 import org.apache.geode.cache.persistence.PersistentID;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.distributed.internal.DistributionManager;
-import org.apache.geode.distributed.internal.DistributionMessage;
-import org.apache.geode.distributed.internal.ReplyException;
-import org.apache.geode.distributed.internal.ReplyProcessor21;
 import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.internal.logging.LogService;
+import org.apache.geode.internal.i18n.LocalizedStrings;
+import org.apache.geode.management.BackupStatus;
+import org.apache.geode.management.ManagementException;
+import org.apache.geode.management.internal.BackupStatusImpl;
 
-abstract class BackupOperation implements BackupResultCollector {
-  private static final Logger logger = LogService.getLogger();
+public class BackupOperation {
 
-  private final DistributionManager dm;
-  private final Map<DistributedMember, Set<PersistentID>> results =
-      Collections.synchronizedMap(new HashMap<DistributedMember, 
Set<PersistentID>>());
+  private final FlushToDiskFactory flushToDiskFactory;
+  private final PrepareBackupFactory prepareBackupFactory;
+  private final AbortBackupFactory abortBackupFactory;
+  private final FinishBackupFactory finishBackupFactory;
 
-  protected BackupOperation(DistributionManager dm) {
-    this.dm = dm;
+  public BackupOperation() {
+    this(new FlushToDiskFactory(), new PrepareBackupFactory(), new 
AbortBackupFactory(),
+        new FinishBackupFactory());
   }
 
-  abstract ReplyProcessor21 createReplyProcessor();
-
-  abstract DistributionMessage createDistributionMessage(ReplyProcessor21 
replyProcessor);
-
-  abstract void processLocally();
-
-  Map<DistributedMember, Set<PersistentID>> send() {
-    ReplyProcessor21 replyProcessor = createReplyProcessor();
-
-    dm.putOutgoing(createDistributionMessage(replyProcessor));
+  BackupOperation(FlushToDiskFactory flushToDiskFactory, PrepareBackupFactory 
prepareBackupFactory,
+      AbortBackupFactory abortBackupFactory, FinishBackupFactory 
finishBackupFactory) {
+    this.flushToDiskFactory = flushToDiskFactory;
+    this.prepareBackupFactory = prepareBackupFactory;
+    this.abortBackupFactory = abortBackupFactory;
+    this.finishBackupFactory = finishBackupFactory;
+  }
 
-    processLocally();
+  public BackupStatus backupAllMembers(DistributionManager dm, String 
targetDirPath,
+      String baselineDirPath) {
+    Properties properties = new 
BackupConfigFactory().withTargetDirPath(targetDirPath)
+        .withBaselineDirPath(baselineDirPath).createBackupProperties();
+    return performBackup(dm, properties);
+  }
 
-    try {
-      replyProcessor.waitForReplies();
-    } catch (ReplyException e) {
-      if (!(e.getCause() instanceof CancelException)) {
-        throw e;
+  private BackupStatus performBackup(DistributionManager dm, Properties 
properties)
+      throws ManagementException {
+    BackupLockService backupLockService = new BackupLockService();
+    BackupStatus status;
+    if (backupLockService.obtainLock(dm)) {
+      try {
+        Set<PersistentID> missingMembers =
+            AdminDistributedSystemImpl.getMissingPersistentMembers(dm);
+        Set<InternalDistributedMember> recipients = 
dm.getOtherDistributionManagerIds();
+
+        BackupDataStoreResult result = performBackupSteps(dm, recipients, 
properties);
+
+        // It's possible that when calling getMissingPersistentMembers, some 
members are
+        // still creating/recovering regions, and at FinishBackupRequest.send, 
the
+        // regions at the members are ready. Logically, since the members in 
successfulMembers
+        // should override the previous missingMembers
+        for (Set<PersistentID> onlineMembersIds : 
result.getSuccessfulMembers().values()) {
+          missingMembers.removeAll(onlineMembersIds);
+        }
+
+        
result.getExistingDataStores().keySet().removeAll(result.getSuccessfulMembers().keySet());
+        for (Set<PersistentID> lostMembersIds : 
result.getExistingDataStores().values()) {
+          missingMembers.addAll(lostMembersIds);
+        }
+        status = new BackupStatusImpl(result.getSuccessfulMembers(), 
missingMembers);
+      } finally {
+        backupLockService.releaseLock(dm);
       }
-    } catch (InterruptedException e) {
-      logger.warn(e.getMessage(), e);
-    }
-
-    return getResults();
-  }
 
-  @Override
-  public void addToResults(InternalDistributedMember member, Set<PersistentID> 
persistentIds) {
-    if (persistentIds != null && !persistentIds.isEmpty()) {
-      results.put(member, persistentIds);
+    } else {
+      throw new ManagementException(
+          
LocalizedStrings.DistributedSystem_BACKUP_ALREADY_IN_PROGRESS.toLocalizedString());
     }
+    return status;
   }
 
-  Map<DistributedMember, Set<PersistentID>> getResults() {
-    return this.results;
-  }
+  private BackupDataStoreResult performBackupSteps(DistributionManager dm, Set 
recipients,
+      Properties properties) {
+    new FlushToDiskStep(dm, dm.getId(), dm.getCache(), recipients, 
flushToDiskFactory).send();
 
-  protected DistributionManager getDistributionManager() {
-    return this.dm;
+    boolean abort = true;
+    Map<DistributedMember, Set<PersistentID>> successfulMembers;
+    Map<DistributedMember, Set<PersistentID>> existingDataStores;
+    try {
+      existingDataStores = new PrepareBackupStep(dm, dm.getId(), 
dm.getCache(), recipients,
+          prepareBackupFactory, properties).send();
+      abort = false;
+    } finally {
+      if (abort) {
+        new AbortBackupStep(dm, dm.getId(), dm.getCache(), recipients, 
abortBackupFactory)
+            .send();
+        successfulMembers = Collections.emptyMap();
+      } else {
+        successfulMembers = new FinishBackupStep(dm, dm.getId(), 
dm.getCache(), recipients,
+            finishBackupFactory).send();
+      }
+    }
+    return new BackupDataStoreResult(existingDataStores, successfulMembers);
   }
 }
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupOperation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupStep.java
similarity index 95%
copy from 
geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupOperation.java
copy to 
geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupStep.java
index 5cae876..45ac9f1 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupOperation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupStep.java
@@ -31,14 +31,14 @@ import 
org.apache.geode.distributed.internal.ReplyProcessor21;
 import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.logging.LogService;
 
-abstract class BackupOperation implements BackupResultCollector {
+abstract class BackupStep implements BackupResultCollector {
   private static final Logger logger = LogService.getLogger();
 
   private final DistributionManager dm;
   private final Map<DistributedMember, Set<PersistentID>> results =
       Collections.synchronizedMap(new HashMap<DistributedMember, 
Set<PersistentID>>());
 
-  protected BackupOperation(DistributionManager dm) {
+  protected BackupStep(DistributionManager dm) {
     this.dm = dm;
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupUtil.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupUtil.java
deleted file mode 100644
index 5ce481c..0000000
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupUtil.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
- * agreements. See the NOTICE file distributed with this work for additional 
information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the 
License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software 
distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
- * or implied. See the License for the specific language governing permissions 
and limitations under
- * the License.
- */
-package org.apache.geode.internal.cache.backup;
-
-import static 
org.apache.geode.internal.cache.backup.AbstractBackupWriterConfig.TIMESTAMP;
-import static 
org.apache.geode.internal.cache.backup.AbstractBackupWriterConfig.TYPE;
-import static 
org.apache.geode.internal.cache.backup.FileSystemBackupWriterConfig.BASELINE_DIR;
-import static 
org.apache.geode.internal.cache.backup.FileSystemBackupWriterConfig.TARGET_DIR;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.geode.admin.internal.AdminDistributedSystemImpl;
-import org.apache.geode.cache.persistence.PersistentID;
-import org.apache.geode.distributed.internal.DistributionManager;
-import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.internal.i18n.LocalizedStrings;
-import org.apache.geode.management.BackupStatus;
-import org.apache.geode.management.ManagementException;
-import org.apache.geode.management.internal.BackupStatusImpl;
-
-public class BackupUtil {
-
-  private BackupUtil() {
-    // do not instantiate
-  }
-
-  public static BackupStatus backupAllMembers(DistributionManager dm, String 
targetDirPath,
-      String baselineDirPath) {
-    Properties properties = createBackupProperties(targetDirPath, 
baselineDirPath);
-    return backupAllMembers(dm, properties);
-  }
-
-  static Properties createBackupProperties(String targetDirPath, String 
baselineDirPath) {
-    Properties properties = new Properties();
-    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
-    properties.setProperty(TIMESTAMP, format.format(new Date()));
-    properties.setProperty(TYPE, "FileSystem");
-    properties.setProperty(TARGET_DIR, targetDirPath);
-    if (baselineDirPath != null) {
-      properties.setProperty(BASELINE_DIR, baselineDirPath);
-    }
-    return properties;
-  }
-
-  public static BackupStatus backupAllMembers(DistributionManager dm, 
Properties properties)
-      throws ManagementException {
-    BackupStatus status;
-    if (BackupDataStoreHelper.obtainLock(dm)) {
-      try {
-        Set<PersistentID> missingMembers =
-            AdminDistributedSystemImpl.getMissingPersistentMembers(dm);
-        Set<InternalDistributedMember> recipients = 
dm.getOtherDistributionManagerIds();
-
-        BackupDataStoreResult result =
-            BackupDataStoreHelper.backupAllMembers(dm, recipients, properties);
-
-        // It's possible that when calling getMissingPersistentMembers, some 
members are
-        // still creating/recovering regions, and at FinishBackupRequest.send, 
the
-        // regions at the members are ready. Logically, since the members in 
successfulMembers
-        // should override the previous missingMembers
-        for (Set<PersistentID> onlineMembersIds : 
result.getSuccessfulMembers().values()) {
-          missingMembers.removeAll(onlineMembersIds);
-        }
-
-        
result.getExistingDataStores().keySet().removeAll(result.getSuccessfulMembers().keySet());
-        for (Set<PersistentID> lostMembersIds : 
result.getExistingDataStores().values()) {
-          missingMembers.addAll(lostMembersIds);
-        }
-        status = new BackupStatusImpl(result.getSuccessfulMembers(), 
missingMembers);
-      } finally {
-        BackupDataStoreHelper.releaseLock(dm);
-      }
-
-    } else {
-      throw new ManagementException(
-          
LocalizedStrings.DistributedSystem_BACKUP_ALREADY_IN_PROGRESS.toLocalizedString());
-    }
-    return status;
-  }
-}
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupOperation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupStep.java
similarity index 94%
rename from 
geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupOperation.java
rename to 
geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupStep.java
index b2e1f34..cc260c8 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupOperation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupStep.java
@@ -26,7 +26,7 @@ import 
org.apache.geode.distributed.internal.membership.InternalDistributedMembe
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.logging.LogService;
 
-class FinishBackupOperation extends BackupOperation {
+class FinishBackupStep extends BackupStep {
   private static final Logger logger = LogService.getLogger();
 
   private final InternalDistributedMember member;
@@ -34,7 +34,7 @@ class FinishBackupOperation extends BackupOperation {
   private final Set<InternalDistributedMember> recipients;
   private final FinishBackupFactory finishBackupFactory;
 
-  FinishBackupOperation(DistributionManager dm, InternalDistributedMember 
member,
+  FinishBackupStep(DistributionManager dm, InternalDistributedMember member,
       InternalCache cache, Set<InternalDistributedMember> recipients,
       FinishBackupFactory FinishBackupFactory) {
     super(dm);
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FlushToDiskOperation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FlushToDiskStep.java
similarity index 96%
rename from 
geode-core/src/main/java/org/apache/geode/internal/cache/backup/FlushToDiskOperation.java
rename to 
geode-core/src/main/java/org/apache/geode/internal/cache/backup/FlushToDiskStep.java
index 955a293..6db8f44 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FlushToDiskOperation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FlushToDiskStep.java
@@ -32,7 +32,7 @@ import org.apache.geode.internal.logging.LogService;
  * of the backup, the members will suspend bucket destroys to make sure 
buckets aren't missed during
  * the backup.
  */
-public class FlushToDiskOperation {
+public class FlushToDiskStep {
   private static final Logger logger = LogService.getLogger();
 
   private final DistributionManager dm;
@@ -41,7 +41,7 @@ public class FlushToDiskOperation {
   private final Set<InternalDistributedMember> recipients;
   private final FlushToDiskFactory flushToDiskFactory;
 
-  FlushToDiskOperation(DistributionManager dm, InternalDistributedMember 
member,
+  FlushToDiskStep(DistributionManager dm, InternalDistributedMember member,
       InternalCache cache, Set<InternalDistributedMember> recipients,
       FlushToDiskFactory flushToDiskFactory) {
     this.flushToDiskFactory = flushToDiskFactory;
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupOperation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupStep.java
similarity index 95%
rename from 
geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupOperation.java
rename to 
geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupStep.java
index e7a899a..b8c497b 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupOperation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupStep.java
@@ -27,7 +27,7 @@ import 
org.apache.geode.distributed.internal.membership.InternalDistributedMembe
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.logging.LogService;
 
-class PrepareBackupOperation extends BackupOperation {
+class PrepareBackupStep extends BackupStep {
   private static final Logger logger = LogService.getLogger();
 
   private final InternalDistributedMember member;
@@ -36,7 +36,7 @@ class PrepareBackupOperation extends BackupOperation {
   private final PrepareBackupFactory prepareBackupFactory;
   private final Properties properties;
 
-  PrepareBackupOperation(DistributionManager dm, InternalDistributedMember 
member,
+  PrepareBackupStep(DistributionManager dm, InternalDistributedMember member,
       InternalCache cache, Set<InternalDistributedMember> recipients,
       PrepareBackupFactory prepareBackupFactory, Properties properties) {
     super(dm);
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/beans/DistributedSystemBridge.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/beans/DistributedSystemBridge.java
index 3fa419e..037ffc4 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/beans/DistributedSystemBridge.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/beans/DistributedSystemBridge.java
@@ -14,18 +14,15 @@
  */
 package org.apache.geode.management.internal.beans;
 
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
@@ -54,7 +51,7 @@ import 
org.apache.geode.internal.admin.remote.PrepareRevokePersistentIDRequest;
 import org.apache.geode.internal.admin.remote.RevokePersistentIDRequest;
 import org.apache.geode.internal.admin.remote.ShutdownAllRequest;
 import org.apache.geode.internal.cache.InternalCache;
-import org.apache.geode.internal.cache.backup.BackupUtil;
+import org.apache.geode.internal.cache.backup.BackupOperation;
 import org.apache.geode.internal.cache.persistence.PersistentMemberPattern;
 import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.internal.logging.log4j.LocalizedMessage;
@@ -479,15 +476,8 @@ public class DistributedSystemBridge {
    * @return open type DiskBackupStatus containing each member wise disk back 
up status
    */
   public DiskBackupStatus backupAllMembers(String targetDirPath, String 
baselineDirPath) {
-    Properties properties = new Properties();
-    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
-    properties.setProperty("TIMESTAMP", format.format(new Date()));
-    properties.setProperty("TYPE", "FileSystem");
-    properties.setProperty("TARGET_DIRECTORY", targetDirPath);
-    if (baselineDirPath != null) {
-      properties.setProperty("BASELINE_DIRECTORY", baselineDirPath);
-    }
-    BackupStatus result = BackupUtil.backupAllMembers(dm, properties);
+    BackupStatus result =
+        new BackupOperation().backupAllMembers(dm, targetDirPath, 
baselineDirPath);
     DiskBackupStatusImpl diskBackupStatus = new DiskBackupStatusImpl();
     
diskBackupStatus.generateBackedUpDiskStores(result.getBackedUpDiskStores());
     diskBackupStatus.generateOfflineDiskStores(result.getOfflineDiskStores());
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/BackupDiskStoreCommand.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/BackupDiskStoreCommand.java
index 68e874d..b4fb469 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/BackupDiskStoreCommand.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/BackupDiskStoreCommand.java
@@ -25,7 +25,7 @@ import org.apache.geode.cache.persistence.PersistentID;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.distributed.internal.DistributionManager;
 import org.apache.geode.internal.cache.InternalCache;
-import org.apache.geode.internal.cache.backup.BackupUtil;
+import org.apache.geode.internal.cache.backup.BackupOperation;
 import org.apache.geode.management.BackupStatus;
 import org.apache.geode.management.cli.CliMetaData;
 import org.apache.geode.management.cli.Result;
@@ -60,9 +60,9 @@ public class BackupDiskStoreCommand extends 
InternalGfshCommand {
       BackupStatus backupStatus;
 
       if (baselineDir != null && !baselineDir.isEmpty()) {
-        backupStatus = BackupUtil.backupAllMembers(dm, targetDir, baselineDir);
+        backupStatus = new BackupOperation().backupAllMembers(dm, targetDir, 
baselineDir);
       } else {
-        backupStatus = BackupUtil.backupAllMembers(dm, targetDir, null);
+        backupStatus = new BackupOperation().backupAllMembers(dm, targetDir, 
null);
       }
 
       Map<DistributedMember, Set<PersistentID>> backedupMemberDiskstoreMap =
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/AbortBackupOperationTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/AbortBackupStepTest.java
similarity index 84%
rename from 
geode-core/src/test/java/org/apache/geode/internal/cache/backup/AbortBackupOperationTest.java
rename to 
geode-core/src/test/java/org/apache/geode/internal/cache/backup/AbortBackupStepTest.java
index c7b8b51..edc715d 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/AbortBackupOperationTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/AbortBackupStepTest.java
@@ -42,7 +42,7 @@ import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.test.junit.categories.UnitTest;
 
 @Category(UnitTest.class)
-public class AbortBackupOperationTest {
+public class AbortBackupStepTest {
 
   private DistributionManager dm;
 
@@ -54,7 +54,7 @@ public class AbortBackupOperationTest {
   private AbortBackupRequest abortBackupRequest;
   private AbortBackup abortBackup;
 
-  private AbortBackupOperation abortBackupOperation;
+  private AbortBackupStep abortBackupStep;
 
   @Before
   public void setUp() throws Exception {
@@ -72,12 +72,12 @@ public class AbortBackupOperationTest {
     member2 = mock(InternalDistributedMember.class, "member2");
     Set<InternalDistributedMember> recipients = new HashSet<>();
 
-    abortBackupOperation =
-        new AbortBackupOperation(dm, sender, cache, recipients, 
abortBackupFactory);
+    abortBackupStep =
+        new AbortBackupStep(dm, sender, cache, recipients, abortBackupFactory);
 
     when(backupReplyProcessor.getProcessorId()).thenReturn(42);
 
-    when(abortBackupFactory.createReplyProcessor(eq(abortBackupOperation), 
eq(dm), eq(recipients)))
+    when(abortBackupFactory.createReplyProcessor(eq(abortBackupStep), eq(dm), 
eq(recipients)))
         .thenReturn(backupReplyProcessor);
     when(abortBackupFactory.createRequest(eq(sender), eq(recipients), eq(42)))
         .thenReturn(abortBackupRequest);
@@ -86,14 +86,14 @@ public class AbortBackupOperationTest {
 
   @Test
   public void sendShouldSendAbortBackupMessage() {
-    abortBackupOperation.send();
+    abortBackupStep.send();
 
     verify(dm, times(1)).putOutgoing(abortBackupRequest);
   }
 
   @Test
   public void sendReturnsResultsForLocalMember() {
-    assertThat(abortBackupOperation.send()).containsOnlyKeys(sender);
+    assertThat(abortBackupStep.send()).containsOnlyKeys(sender);
   }
 
   @Test
@@ -104,24 +104,24 @@ public class AbortBackupOperationTest {
 
     
doAnswer(invokeAddToResults(ids)).when(backupReplyProcessor).waitForReplies();
 
-    assertThat(abortBackupOperation.send()).containsOnlyKeys(member1, member2, 
sender);
+    assertThat(abortBackupStep.send()).containsOnlyKeys(member1, member2, 
sender);
   }
 
   @Test
   public void getResultsShouldReturnEmptyMapByDefault() {
-    assertThat(abortBackupOperation.getResults()).isEmpty();
+    assertThat(abortBackupStep.getResults()).isEmpty();
   }
 
   @Test
   public void addToResultsWithNullShouldBeNoop() {
-    abortBackupOperation.addToResults(member1, null);
-    assertThat(abortBackupOperation.getResults()).isEmpty();
+    abortBackupStep.addToResults(member1, null);
+    assertThat(abortBackupStep.getResults()).isEmpty();
   }
 
   @Test
   public void addToResultsShouldShowUpInGetResults() {
-    abortBackupOperation.addToResults(member1, new HashSet<>());
-    assertThat(abortBackupOperation.getResults()).containsOnlyKeys(member1);
+    abortBackupStep.addToResults(member1, new HashSet<>());
+    assertThat(abortBackupStep.getResults()).containsOnlyKeys(member1);
   }
 
   @Test
@@ -129,20 +129,20 @@ public class AbortBackupOperationTest {
     ReplyException replyException =
         new ReplyException("expected exception", new 
CacheClosedException("expected exception"));
     doThrow(replyException).when(backupReplyProcessor).waitForReplies();
-    abortBackupOperation.send();
+    abortBackupStep.send();
   }
 
   @Test
   public void sendShouldHandleInterruptedExceptionFromWaitForReplies() throws 
Exception {
     doThrow(new InterruptedException("expected 
exception")).when(backupReplyProcessor)
         .waitForReplies();
-    abortBackupOperation.send();
+    abortBackupStep.send();
   }
 
   @Test(expected = ReplyException.class)
   public void sendShouldThrowReplyExceptionWithNoCauseFromWaitForReplies() 
throws Exception {
     doThrow(new ReplyException("expected 
exception")).when(backupReplyProcessor).waitForReplies();
-    abortBackupOperation.send();
+    abortBackupStep.send();
   }
 
   @Test(expected = ReplyException.class)
@@ -150,13 +150,13 @@ public class AbortBackupOperationTest {
       throws Exception {
     doThrow(new ReplyException("expected exception", new 
RuntimeException("expected")))
         .when(backupReplyProcessor).waitForReplies();
-    abortBackupOperation.send();
+    abortBackupStep.send();
   }
 
   @Test
   public void sendShouldAbortBackupInLocalMemberBeforeWaitingForReplies() 
throws Exception {
     InOrder inOrder = inOrder(abortBackup, backupReplyProcessor);
-    abortBackupOperation.send();
+    abortBackupStep.send();
 
     inOrder.verify(abortBackup, times(1)).run();
     inOrder.verify(backupReplyProcessor, times(1)).waitForReplies();
@@ -165,7 +165,7 @@ public class AbortBackupOperationTest {
   private Answer<Object> invokeAddToResults(MemberWithPersistentIds... 
memberWithPersistentIds) {
     return invocation -> {
       for (MemberWithPersistentIds ids : memberWithPersistentIds) {
-        abortBackupOperation.addToResults(ids.member, ids.persistentIds);
+        abortBackupStep.addToResults(ids.member, ids.persistentIds);
       }
       return null;
     };
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupDistributedTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupDistributedTest.java
index 9fb8cd9..a0a3653 100755
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupDistributedTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupDistributedTest.java
@@ -700,7 +700,7 @@ public class BackupDistributedTest extends 
PersistentPartitionedRegionTestBase {
   private BackupStatus backupMember(final VM vm) {
     return vm.invoke("backup", () -> {
       try {
-        return BackupUtil.backupAllMembers(getCache().getDistributionManager(),
+        return new 
BackupOperation().backupAllMembers(getCache().getDistributionManager(),
             backupBaseDir.toString(), null);
       } catch (ManagementException e) {
         throw new RuntimeException(e);
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupIntegrationTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupIntegrationTest.java
index ac2f7e6..82b6de5 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupIntegrationTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupIntegrationTest.java
@@ -249,7 +249,8 @@ public class BackupIntegrationTest {
   }
 
   private BackupWriter getBackupWriter() {
-    Properties backupProperties = 
BackupUtil.createBackupProperties(backupDir.toString(), null);
+    Properties backupProperties =
+        new 
BackupConfigFactory().withTargetDirPath(backupDir.toString()).createBackupProperties();
     return BackupWriterFactory.FILE_SYSTEM.createWriter(backupProperties,
         cache.getMyId().toString());
   }
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupPrepareAndFinishMsgDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupPrepareAndFinishMsgDUnitTest.java
index 8d22f07..1ab9933 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupPrepareAndFinishMsgDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupPrepareAndFinishMsgDUnitTest.java
@@ -144,15 +144,16 @@ public abstract class BackupPrepareAndFinishMsgDUnitTest 
extends CacheTestCase {
       throws InterruptedException, TimeoutException, ExecutionException {
     DistributionManager dm = 
GemFireCacheImpl.getInstance().getDistributionManager();
     Set recipients = dm.getOtherDistributionManagerIds();
-    Properties backupProperties = 
BackupUtil.createBackupProperties(diskDirs[0].toString(), null);
+    Properties backupProperties = new BackupConfigFactory()
+        .withTargetDirPath(diskDirs[0].toString()).createBackupProperties();
     Future<Void> future = null;
-    new PrepareBackupOperation(dm, dm.getId(), dm.getCache(), recipients,
+    new PrepareBackupStep(dm, dm.getId(), dm.getCache(), recipients,
         new PrepareBackupFactory(), backupProperties).send();
     ReentrantLock backupLock = ((LocalRegion) 
region).getDiskStore().getBackupLock();
     future = CompletableFuture.runAsync(function);
     Awaitility.await().atMost(5, TimeUnit.SECONDS)
         .until(() -> assertTrue(backupLock.getQueueLength() > 0));
-    new FinishBackupOperation(dm, dm.getId(), dm.getCache(), recipients, new 
FinishBackupFactory())
+    new FinishBackupStep(dm, dm.getId(), dm.getCache(), recipients, new 
FinishBackupFactory())
         .send();
     future.get(5, TimeUnit.SECONDS);
   }
@@ -160,14 +161,15 @@ public abstract class BackupPrepareAndFinishMsgDUnitTest 
extends CacheTestCase {
   private void doReadActionsAndVerifyCompletion() {
     DistributionManager dm = 
GemFireCacheImpl.getInstance().getDistributionManager();
     Set recipients = dm.getOtherDistributionManagerIds();
-    Properties backupProperties = 
BackupUtil.createBackupProperties(diskDirs[0].toString(), null);
-    new PrepareBackupOperation(dm, dm.getId(), dm.getCache(), recipients,
+    Properties backupProperties = new BackupConfigFactory()
+        .withTargetDirPath(diskDirs[0].toString()).createBackupProperties();
+    new PrepareBackupStep(dm, dm.getId(), dm.getCache(), recipients,
         new PrepareBackupFactory(), backupProperties).send();
     ReentrantLock backupLock = ((LocalRegion) 
region).getDiskStore().getBackupLock();
     List<CompletableFuture<?>> futureList = doReadActions();
     CompletableFuture.allOf(futureList.toArray(new 
CompletableFuture<?>[futureList.size()]));
     assertTrue(backupLock.getQueueLength() == 0);
-    new FinishBackupOperation(dm, dm.getId(), dm.getCache(), recipients, new 
FinishBackupFactory())
+    new FinishBackupStep(dm, dm.getId(), dm.getCache(), recipients, new 
FinishBackupFactory())
         .send();
   }
 
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupOperationTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupStepTest.java
similarity index 86%
rename from 
geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupOperationTest.java
rename to 
geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupStepTest.java
index a869337..f4fc0ad 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupOperationTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupStepTest.java
@@ -43,7 +43,7 @@ import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.test.junit.categories.UnitTest;
 
 @Category(UnitTest.class)
-public class FinishBackupOperationTest {
+public class FinishBackupStepTest {
 
   private DistributionManager dm;
   private InternalCache cache;
@@ -60,7 +60,7 @@ public class FinishBackupOperationTest {
   private FinishBackupRequest finishBackupRequest;
   private FinishBackup finishBackup;
 
-  private FinishBackupOperation finishBackupOperation;
+  private FinishBackupStep finishBackupStep;
 
   @Before
   public void setUp() throws Exception {
@@ -78,13 +78,13 @@ public class FinishBackupOperationTest {
     member2 = mock(InternalDistributedMember.class, "member2");
     recipients = new HashSet<>();
 
-    finishBackupOperation =
-        new FinishBackupOperation(dm, sender, cache, recipients, 
finishBackupFactory);
+    finishBackupStep =
+        new FinishBackupStep(dm, sender, cache, recipients, 
finishBackupFactory);
 
     when(finishBackupReplyProcessor.getProcessorId()).thenReturn(42);
 
     when(
-        finishBackupFactory.createReplyProcessor(eq(finishBackupOperation), 
eq(dm), eq(recipients)))
+        finishBackupFactory.createReplyProcessor(eq(finishBackupStep), eq(dm), 
eq(recipients)))
             .thenReturn(finishBackupReplyProcessor);
     when(finishBackupFactory.createRequest(eq(sender), eq(recipients), eq(42)))
         .thenReturn(finishBackupRequest);
@@ -93,7 +93,7 @@ public class FinishBackupOperationTest {
 
   @Test
   public void sendShouldSendfinishBackupMessage() throws Exception {
-    finishBackupOperation.send();
+    finishBackupStep.send();
 
     verify(dm, times(1)).putOutgoing(finishBackupRequest);
   }
@@ -105,7 +105,7 @@ public class FinishBackupOperationTest {
     doAnswer(invokeAddToResults(new MemberWithPersistentIds(member1, 
persistentIdsForMember1)))
         .when(finishBackupReplyProcessor).waitForReplies();
 
-    assertThat(finishBackupOperation.send()).containsOnlyKeys(member1)
+    assertThat(finishBackupStep.send()).containsOnlyKeys(member1)
         .containsValues(persistentIdsForMember1);
   }
 
@@ -115,7 +115,7 @@ public class FinishBackupOperationTest {
     persistentIdsForSender.add(mock(PersistentID.class));
     when(finishBackup.run()).thenReturn(persistentIdsForSender);
 
-    assertThat(finishBackupOperation.send()).containsOnlyKeys(sender)
+    assertThat(finishBackupStep.send()).containsOnlyKeys(sender)
         .containsValue(persistentIdsForSender);
   }
 
@@ -137,46 +137,46 @@ public class FinishBackupOperationTest {
     persistentIdsForSender.add(mock(PersistentID.class));
     when(finishBackup.run()).thenReturn(persistentIdsForSender);
 
-    assertThat(finishBackupOperation.send()).containsOnlyKeys(member1, 
member2, sender)
+    assertThat(finishBackupStep.send()).containsOnlyKeys(member1, member2, 
sender)
         .containsValues(persistentIdsForSender, persistentIdsForMember1, 
persistentIdsForMember2);
   }
 
   @Test
   public void getResultsShouldReturnEmptyMapByDefault() throws Exception {
-    assertThat(finishBackupOperation.getResults()).isEmpty();
+    assertThat(finishBackupStep.getResults()).isEmpty();
   }
 
   @Test
   public void addToResultsWithNullShouldBeNoop() throws Exception {
-    finishBackupOperation.addToResults(member1, null);
-    assertThat(finishBackupOperation.getResults()).isEmpty();
+    finishBackupStep.addToResults(member1, null);
+    assertThat(finishBackupStep.getResults()).isEmpty();
   }
 
   @Test
   public void addToResultsWithEmptySetShouldBeNoop() throws Exception {
-    finishBackupOperation.addToResults(member1, new HashSet<>());
-    assertThat(finishBackupOperation.getResults()).isEmpty();
+    finishBackupStep.addToResults(member1, new HashSet<>());
+    assertThat(finishBackupStep.getResults()).isEmpty();
   }
 
   @Test
   public void addToResultsShouldShowUpInGetResults() throws Exception {
     HashSet<PersistentID> persistentIdsForMember1 = new HashSet<>();
     persistentIdsForMember1.add(mock(PersistentID.class));
-    finishBackupOperation.addToResults(member1, persistentIdsForMember1);
-    assertThat(finishBackupOperation.getResults()).containsOnlyKeys(member1)
+    finishBackupStep.addToResults(member1, persistentIdsForMember1);
+    assertThat(finishBackupStep.getResults()).containsOnlyKeys(member1)
         .containsValue(persistentIdsForMember1);
   }
 
   @Test
   public void sendShouldHandleIOExceptionThrownFromRun() throws Exception {
     when(finishBackup.run()).thenThrow(new IOException("expected exception"));
-    finishBackupOperation.send();
+    finishBackupStep.send();
   }
 
   @Test(expected = RuntimeException.class)
   public void sendShouldThrowNonIOExceptionThrownFromRun() throws Exception {
     when(finishBackup.run()).thenThrow(new RuntimeException("expected 
exception"));
-    finishBackupOperation.send();
+    finishBackupStep.send();
   }
 
   @Test
@@ -184,21 +184,21 @@ public class FinishBackupOperationTest {
     ReplyException replyException =
         new ReplyException("expected exception", new 
CacheClosedException("expected exception"));
     doThrow(replyException).when(finishBackupReplyProcessor).waitForReplies();
-    finishBackupOperation.send();
+    finishBackupStep.send();
   }
 
   @Test
   public void sendShouldHandleInterruptedExceptionFromWaitForReplies() throws 
Exception {
     doThrow(new InterruptedException("expected 
exception")).when(finishBackupReplyProcessor)
         .waitForReplies();
-    finishBackupOperation.send();
+    finishBackupStep.send();
   }
 
   @Test(expected = ReplyException.class)
   public void sendShouldThrowReplyExceptionWithNoCauseFromWaitForReplies() 
throws Exception {
     doThrow(new ReplyException("expected 
exception")).when(finishBackupReplyProcessor)
         .waitForReplies();
-    finishBackupOperation.send();
+    finishBackupStep.send();
   }
 
   @Test(expected = ReplyException.class)
@@ -206,13 +206,13 @@ public class FinishBackupOperationTest {
       throws Exception {
     doThrow(new ReplyException("expected exception", new 
RuntimeException("expected")))
         .when(finishBackupReplyProcessor).waitForReplies();
-    finishBackupOperation.send();
+    finishBackupStep.send();
   }
 
   @Test
   public void sendShouldfinishForBackupInLocalMemberBeforeWaitingForReplies() 
throws Exception {
     InOrder inOrder = inOrder(finishBackup, finishBackupReplyProcessor);
-    finishBackupOperation.send();
+    finishBackupStep.send();
 
     inOrder.verify(finishBackup, times(1)).run();
     inOrder.verify(finishBackupReplyProcessor, times(1)).waitForReplies();
@@ -221,7 +221,7 @@ public class FinishBackupOperationTest {
   private Answer<Object> invokeAddToResults(MemberWithPersistentIds... 
memberWithPersistentIds) {
     return invocation -> {
       for (MemberWithPersistentIds ids : memberWithPersistentIds) {
-        finishBackupOperation.addToResults(ids.member, ids.persistentIds);
+        finishBackupStep.addToResults(ids.member, ids.persistentIds);
       }
       return null;
     };
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FlushToDiskOperationTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FlushToDiskStepTest.java
similarity index 91%
rename from 
geode-core/src/test/java/org/apache/geode/internal/cache/backup/FlushToDiskOperationTest.java
rename to 
geode-core/src/test/java/org/apache/geode/internal/cache/backup/FlushToDiskStepTest.java
index bf937df..f8d5c83 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FlushToDiskOperationTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FlushToDiskStepTest.java
@@ -38,7 +38,7 @@ import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.test.junit.categories.UnitTest;
 
 @Category(UnitTest.class)
-public class FlushToDiskOperationTest {
+public class FlushToDiskStepTest {
 
   private DistributionManager dm;
   private InternalCache cache;
@@ -51,7 +51,7 @@ public class FlushToDiskOperationTest {
   private FlushToDiskRequest flushToDiskRequest;
   private FlushToDisk flushToDisk;
 
-  private FlushToDiskOperation flushToDiskOperation;
+  private FlushToDiskStep flushToDiskStep;
 
   @Before
   public void setUp() throws Exception {
@@ -67,8 +67,8 @@ public class FlushToDiskOperationTest {
     sender = mock(InternalDistributedMember.class, "sender");
     recipients = new HashSet<>();
 
-    flushToDiskOperation =
-        new FlushToDiskOperation(dm, sender, cache, recipients, 
flushToDiskFactory);
+    flushToDiskStep =
+        new FlushToDiskStep(dm, sender, cache, recipients, flushToDiskFactory);
 
     when(flushToDiskReplyProcessor.getProcessorId()).thenReturn(42);
 
@@ -81,7 +81,7 @@ public class FlushToDiskOperationTest {
 
   @Test
   public void sendShouldSendFlushToDiskMessage() throws Exception {
-    flushToDiskOperation.send();
+    flushToDiskStep.send();
 
     verify(dm, times(1)).putOutgoing(flushToDiskRequest);
   }
@@ -91,21 +91,21 @@ public class FlushToDiskOperationTest {
     ReplyException replyException =
         new ReplyException("expected exception", new 
CacheClosedException("expected exception"));
     doThrow(replyException).when(flushToDiskReplyProcessor).waitForReplies();
-    flushToDiskOperation.send();
+    flushToDiskStep.send();
   }
 
   @Test
   public void sendShouldHandleInterruptedExceptionFromWaitForReplies() throws 
Exception {
     doThrow(new InterruptedException("expected 
exception")).when(flushToDiskReplyProcessor)
         .waitForReplies();
-    flushToDiskOperation.send();
+    flushToDiskStep.send();
   }
 
   @Test(expected = ReplyException.class)
   public void sendShouldThrowReplyExceptionWithNoCauseFromWaitForReplies() 
throws Exception {
     doThrow(new ReplyException("expected 
exception")).when(flushToDiskReplyProcessor)
         .waitForReplies();
-    flushToDiskOperation.send();
+    flushToDiskStep.send();
   }
 
   @Test(expected = ReplyException.class)
@@ -113,13 +113,13 @@ public class FlushToDiskOperationTest {
       throws Exception {
     doThrow(new ReplyException("expected exception", new 
RuntimeException("expected")))
         .when(flushToDiskReplyProcessor).waitForReplies();
-    flushToDiskOperation.send();
+    flushToDiskStep.send();
   }
 
   @Test
   public void sendShouldProcessLocallyBeforeWaitingForReplies() throws 
Exception {
     InOrder inOrder = inOrder(flushToDisk, flushToDiskReplyProcessor);
-    flushToDiskOperation.send();
+    flushToDiskStep.send();
 
     inOrder.verify(flushToDisk, times(1)).run();
     inOrder.verify(flushToDiskReplyProcessor, times(1)).waitForReplies();
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java
index be74312..49bc528 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java
@@ -209,7 +209,7 @@ public class IncrementalBackupDistributedTest extends 
JUnit4CacheTestCase {
   private BackupStatus baseline(VM vm) {
     return vm.invoke(() -> {
       try {
-        return 
BackupUtil.backupAllMembers(getSystem().getDistributionManager(),
+        return new 
BackupOperation().backupAllMembers(getSystem().getDistributionManager(),
             getBaselineDir().toString(), null);
       } catch (ManagementException e) {
         throw new RuntimeException(e);
@@ -220,7 +220,7 @@ public class IncrementalBackupDistributedTest extends 
JUnit4CacheTestCase {
   private BackupStatus incremental(VM vm) {
     return vm.invoke(() -> {
       try {
-        return 
BackupUtil.backupAllMembers(getSystem().getDistributionManager(),
+        return new 
BackupOperation().backupAllMembers(getSystem().getDistributionManager(),
             getIncrementalDir().toString(), getBaselineBackupDir().toString());
       } catch (ManagementException e) {
         throw new RuntimeException(e);
@@ -231,7 +231,7 @@ public class IncrementalBackupDistributedTest extends 
JUnit4CacheTestCase {
   private BackupStatus incremental2(VM vm) {
     return vm.invoke(() -> {
       try {
-        return 
BackupUtil.backupAllMembers(getSystem().getDistributionManager(),
+        return new 
BackupOperation().backupAllMembers(getSystem().getDistributionManager(),
             getIncremental2Dir().toString(), 
getIncrementalBackupDir().toString());
       } catch (ManagementException e) {
         throw new RuntimeException(e);
@@ -940,7 +940,7 @@ public class IncrementalBackupDistributedTest extends 
JUnit4CacheTestCase {
       @Override
       public Object call() {
         try {
-          return 
BackupUtil.backupAllMembers(getSystem().getDistributionManager(),
+          return new 
BackupOperation().backupAllMembers(getSystem().getDistributionManager(),
               getIncrementalDir().toString(), this.baselineDir.toString());
 
         } catch (ManagementException e) {
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupFactoryTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupFactoryTest.java
index 731dead..31cd759 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupFactoryTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupFactoryTest.java
@@ -74,7 +74,8 @@ public class PrepareBackupFactoryTest {
 
   @Test
   public void createPrepareBackupReturnsPrepareBackup() throws Exception {
-    Properties properties = BackupUtil.createBackupProperties("targetDir", 
null);
+    Properties properties =
+        new 
BackupConfigFactory().withTargetDirPath("targetDir").createBackupProperties();
     assertThat(prepareBackupFactory.createPrepareBackup(member, cache, 
properties))
         .isInstanceOf(PrepareBackup.class);
   }
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupRequestTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupRequestTest.java
index cb26a8c..3bb7cec 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupRequestTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupRequestTest.java
@@ -69,8 +69,8 @@ public class PrepareBackupRequestTest {
     recipients = new HashSet<>();
     persistentIds = new HashSet<>();
 
-    backupProperties =
-        BackupUtil.createBackupProperties(targetDir.toString(), 
baselineDir.toString());
+    backupProperties = new 
BackupConfigFactory().withTargetDirPath(targetDir.toString())
+        .withBaselineDirPath(baselineDir.toString()).createBackupProperties();
 
     when(dm.getCache()).thenReturn(cache);
     when(dm.getDistributionManagerId()).thenReturn(sender);
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupOperationTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupStepTest.java
similarity index 84%
rename from 
geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupOperationTest.java
rename to 
geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupStepTest.java
index 3e24178..857984e 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupOperationTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupStepTest.java
@@ -45,7 +45,7 @@ import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.test.junit.categories.UnitTest;
 
 @Category(UnitTest.class)
-public class PrepareBackupOperationTest {
+public class PrepareBackupStepTest {
 
   private DistributionManager dm;
   private InternalCache cache;
@@ -60,7 +60,7 @@ public class PrepareBackupOperationTest {
   private PrepareBackupRequest prepareBackupRequest;
   private PrepareBackup prepareBackup;
 
-  private PrepareBackupOperation prepareBackupOperation;
+  private PrepareBackupStep prepareBackupStep;
 
   @Before
   public void setUp() throws Exception {
@@ -81,15 +81,15 @@ public class PrepareBackupOperationTest {
     member2 = mock(InternalDistributedMember.class, "member2");
     recipients = new HashSet<>();
 
-    Properties backupProperties =
-        BackupUtil.createBackupProperties(targetDir.toString(), 
baselineDir.toString());
+    Properties backupProperties = new 
BackupConfigFactory().withTargetDirPath(targetDir.toString())
+        .withBaselineDirPath(baselineDir.toString()).createBackupProperties();
 
-    prepareBackupOperation = new PrepareBackupOperation(dm, sender, cache, 
recipients,
+    prepareBackupStep = new PrepareBackupStep(dm, sender, cache, recipients,
         prepareBackupFactory, backupProperties);
 
     when(prepareBackupReplyProcessor.getProcessorId()).thenReturn(42);
 
-    when(prepareBackupFactory.createReplyProcessor(eq(prepareBackupOperation), 
eq(dm),
+    when(prepareBackupFactory.createReplyProcessor(eq(prepareBackupStep), 
eq(dm),
         eq(recipients))).thenReturn(prepareBackupReplyProcessor);
     when(prepareBackupFactory.createRequest(eq(sender), eq(recipients), eq(42),
         eq(backupProperties))).thenReturn(prepareBackupRequest);
@@ -99,7 +99,7 @@ public class PrepareBackupOperationTest {
 
   @Test
   public void sendShouldSendPrepareBackupMessage() throws Exception {
-    prepareBackupOperation.send();
+    prepareBackupStep.send();
 
     verify(dm, times(1)).putOutgoing(prepareBackupRequest);
   }
@@ -111,7 +111,7 @@ public class PrepareBackupOperationTest {
     doAnswer(invokeAddToResults(new MemberWithPersistentIds(member1, 
persistentIdsForMember1)))
         .when(prepareBackupReplyProcessor).waitForReplies();
 
-    assertThat(prepareBackupOperation.send()).containsOnlyKeys(member1)
+    assertThat(prepareBackupStep.send()).containsOnlyKeys(member1)
         .containsValues(persistentIdsForMember1);
   }
 
@@ -121,7 +121,7 @@ public class PrepareBackupOperationTest {
     persistentIdsForSender.add(mock(PersistentID.class));
     when(prepareBackup.run()).thenReturn(persistentIdsForSender);
 
-    assertThat(prepareBackupOperation.send()).containsOnlyKeys(sender)
+    assertThat(prepareBackupStep.send()).containsOnlyKeys(sender)
         .containsValue(persistentIdsForSender);
   }
 
@@ -139,53 +139,53 @@ public class PrepareBackupOperationTest {
 
     
doAnswer(invokeAddToResults(ids)).when(prepareBackupReplyProcessor).waitForReplies();
 
-    // prepareBackupOperation.addToResults(ids[0].member, 
ids[0].persistentIds);
-    // prepareBackupOperation.addToResults(ids[1].member, 
ids[1].persistentIds);
+    // prepareBackupStep.addToResults(ids[0].member, ids[0].persistentIds);
+    // prepareBackupStep.addToResults(ids[1].member, ids[1].persistentIds);
 
     HashSet<PersistentID> persistentIdsForSender = new HashSet<>();
     persistentIdsForSender.add(mock(PersistentID.class));
     when(prepareBackup.run()).thenReturn(persistentIdsForSender);
 
-    assertThat(prepareBackupOperation.send()).containsOnlyKeys(member1, 
member2, sender)
+    assertThat(prepareBackupStep.send()).containsOnlyKeys(member1, member2, 
sender)
         .containsValues(persistentIdsForSender, persistentIdsForMember1, 
persistentIdsForMember2);
   }
 
   @Test
   public void getResultsShouldReturnEmptyMapByDefault() throws Exception {
-    assertThat(prepareBackupOperation.getResults()).isEmpty();
+    assertThat(prepareBackupStep.getResults()).isEmpty();
   }
 
   @Test
   public void addToResultsWithNullShouldBeNoop() throws Exception {
-    prepareBackupOperation.addToResults(member1, null);
-    assertThat(prepareBackupOperation.getResults()).isEmpty();
+    prepareBackupStep.addToResults(member1, null);
+    assertThat(prepareBackupStep.getResults()).isEmpty();
   }
 
   @Test
   public void addToResultsWithEmptySetShouldBeNoop() throws Exception {
-    prepareBackupOperation.addToResults(member1, new HashSet<>());
-    assertThat(prepareBackupOperation.getResults()).isEmpty();
+    prepareBackupStep.addToResults(member1, new HashSet<>());
+    assertThat(prepareBackupStep.getResults()).isEmpty();
   }
 
   @Test
   public void addToResultsShouldShowUpInGetResults() throws Exception {
     HashSet<PersistentID> persistentIdsForMember1 = new HashSet<>();
     persistentIdsForMember1.add(mock(PersistentID.class));
-    prepareBackupOperation.addToResults(member1, persistentIdsForMember1);
-    assertThat(prepareBackupOperation.getResults()).containsOnlyKeys(member1)
+    prepareBackupStep.addToResults(member1, persistentIdsForMember1);
+    assertThat(prepareBackupStep.getResults()).containsOnlyKeys(member1)
         .containsValue(persistentIdsForMember1);
   }
 
   @Test
   public void sendShouldHandleIOExceptionThrownFromRun() throws Exception {
     when(prepareBackup.run()).thenThrow(new IOException("expected exception"));
-    prepareBackupOperation.send();
+    prepareBackupStep.send();
   }
 
   @Test(expected = RuntimeException.class)
   public void sendShouldThrowNonIOExceptionThrownFromRun() throws Exception {
     when(prepareBackup.run()).thenThrow(new RuntimeException("expected 
exception"));
-    prepareBackupOperation.send();
+    prepareBackupStep.send();
   }
 
   @Test
@@ -193,21 +193,21 @@ public class PrepareBackupOperationTest {
     ReplyException replyException =
         new ReplyException("expected exception", new 
CacheClosedException("expected exception"));
     doThrow(replyException).when(prepareBackupReplyProcessor).waitForReplies();
-    prepareBackupOperation.send();
+    prepareBackupStep.send();
   }
 
   @Test
   public void sendShouldHandleInterruptedExceptionFromWaitForReplies() throws 
Exception {
     doThrow(new InterruptedException("expected 
exception")).when(prepareBackupReplyProcessor)
         .waitForReplies();
-    prepareBackupOperation.send();
+    prepareBackupStep.send();
   }
 
   @Test(expected = ReplyException.class)
   public void sendShouldThrowReplyExceptionWithNoCauseFromWaitForReplies() 
throws Exception {
     doThrow(new ReplyException("expected 
exception")).when(prepareBackupReplyProcessor)
         .waitForReplies();
-    prepareBackupOperation.send();
+    prepareBackupStep.send();
   }
 
   @Test(expected = ReplyException.class)
@@ -215,13 +215,13 @@ public class PrepareBackupOperationTest {
       throws Exception {
     doThrow(new ReplyException("expected exception", new 
RuntimeException("expected")))
         .when(prepareBackupReplyProcessor).waitForReplies();
-    prepareBackupOperation.send();
+    prepareBackupStep.send();
   }
 
   @Test
   public void sendShouldPrepareForBackupInLocalMemberBeforeWaitingForReplies() 
throws Exception {
     InOrder inOrder = inOrder(prepareBackup, prepareBackupReplyProcessor);
-    prepareBackupOperation.send();
+    prepareBackupStep.send();
 
     inOrder.verify(prepareBackup, times(1)).run();
     inOrder.verify(prepareBackupReplyProcessor, times(1)).waitForReplies();
@@ -230,7 +230,7 @@ public class PrepareBackupOperationTest {
   private Answer<Object> invokeAddToResults(MemberWithPersistentIds... 
memberWithPersistentIds) {
     return invocation -> {
       for (MemberWithPersistentIds ids : memberWithPersistentIds) {
-        prepareBackupOperation.addToResults(ids.member, ids.persistentIds);
+        prepareBackupStep.addToResults(ids.member, ids.persistentIds);
       }
       return null;
     };
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionTestBase.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionTestBase.java
index d929722..8bb0644 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionTestBase.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionTestBase.java
@@ -44,7 +44,7 @@ import org.apache.geode.cache.partition.PartitionRegionInfo;
 import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.PartitionedRegion;
 import org.apache.geode.internal.cache.PartitionedRegionDataStore;
-import org.apache.geode.internal.cache.backup.BackupUtil;
+import org.apache.geode.internal.cache.backup.BackupOperation;
 import org.apache.geode.internal.cache.control.InternalResourceManager;
 import 
org.apache.geode.internal.cache.control.InternalResourceManager.ResourceObserver;
 import 
org.apache.geode.internal.cache.control.InternalResourceManager.ResourceObserverAdapter;
@@ -313,7 +313,7 @@ public abstract class PersistentPartitionedRegionTestBase 
extends JUnit4CacheTes
   protected BackupStatus backup(final VM vm) {
     return vm.invoke("backup", () -> {
       try {
-        return 
BackupUtil.backupAllMembers(getSystem().getDistributionManager(),
+        return new 
BackupOperation().backupAllMembers(getSystem().getDistributionManager(),
             getBackupDir().toString(), null);
       } catch (ManagementException e) {
         throw new RuntimeException(e);
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/beans/DistributedSystemBridgeJUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/beans/DistributedSystemBridgeJUnitTest.java
index f56d674..4dc033f 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/beans/DistributedSystemBridgeJUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/beans/DistributedSystemBridgeJUnitTest.java
@@ -42,7 +42,7 @@ import 
org.apache.geode.distributed.internal.DistributionManager;
 import org.apache.geode.distributed.internal.locks.DLockService;
 import org.apache.geode.internal.cache.GemFireCacheImpl;
 import org.apache.geode.internal.cache.backup.AbortBackupRequest;
-import org.apache.geode.internal.cache.backup.BackupDataStoreHelper;
+import org.apache.geode.internal.cache.backup.BackupLockService;
 import org.apache.geode.internal.cache.backup.BackupService;
 import org.apache.geode.internal.cache.backup.FinishBackupRequest;
 import org.apache.geode.internal.cache.backup.PrepareBackupRequest;
@@ -75,7 +75,7 @@ public class DistributedSystemBridgeJUnitTest {
     DLockService dlock = mock(DLockService.class);
     when(dlock.lock(any(), anyLong(), anyLong())).thenReturn(true);
 
-    
DLockService.addLockServiceForTests(BackupDataStoreHelper.LOCK_SERVICE_NAME, 
dlock);
+    DLockService.addLockServiceForTests(BackupLockService.LOCK_SERVICE_NAME, 
dlock);
 
     name1 = ObjectName
         .getInstance(MessageFormat.format(OBJECTNAME__GATEWAYSENDER_MXBEAN, 
"sender1", "server1"));
@@ -105,7 +105,7 @@ public class DistributedSystemBridgeJUnitTest {
 
   @After
   public void clearCache() {
-    
DLockService.removeLockServiceForTests(BackupDataStoreHelper.LOCK_SERVICE_NAME);
+    
DLockService.removeLockServiceForTests(BackupLockService.LOCK_SERVICE_NAME);
   }
 
   @Test

Reply via email to