You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ds...@apache.org on 2017/11/13 21:21:04 UTC
[geode] branch feature/GEODE-3940 updated: refactored operation
code for Prepare and Finish into a common BackupOperation abstract class.
Implemented new classes for the FinishBackup operation.
This is an automated email from the ASF dual-hosted git repository.
dschneider pushed a commit to branch feature/GEODE-3940
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/feature/GEODE-3940 by this push:
new cbebe49 refactored operation code for Prepare and Finish into a common BackupOperation abstract class. Implemented new classes for the FinishBackup operation.
cbebe49 is described below
commit cbebe491420cba0940e70c64caf1e347661c9ad8
Author: Darrel Schneider <ds...@pivotal.io>
AuthorDate: Mon Nov 13 13:19:45 2017 -0800
refactored operation code for Prepare and Finish into a common BackupOperation abstract class.
Implemented new classes for the FinishBackup operation.
---
.../org/apache/geode/internal/DSFIDFactory.java | 11 +-
.../geode/internal/DataSerializableFixedID.java | 2 +-
.../cache/backup/BackupDataStoreHelper.java | 4 +-
...reBackupOperation.java => BackupOperation.java} | 44 +++---
...plyProcessor.java => BackupReplyProcessor.java} | 22 ++-
...pareBackupResponse.java => BackupResponse.java} | 11 +-
...ltCollector.java => BackupResultCollector.java} | 2 +-
...ackupResultCollector.java => FinishBackup.java} | 31 +++-
...BackupFactory.java => FinishBackupFactory.java} | 26 ++--
.../cache/backup/FinishBackupOperation.java | 75 ++++++++++
.../cache/backup/FinishBackupReplyProcessor.java | 70 ---------
.../internal/cache/backup/FinishBackupRequest.java | 77 ++--------
.../cache/backup/FinishBackupResponse.java | 74 ----------
.../cache/backup/PrepareBackupFactory.java | 10 +-
.../cache/backup/PrepareBackupOperation.java | 55 ++------
.../cache/backup/PrepareBackupRequest.java | 2 +-
.../backup/BackupPrepareAndFinishMsgDUnitTest.java | 6 +-
...ssorTest.java => BackupReplyProcessorTest.java} | 34 ++---
...ctoryTest.java => FinishBackupFactoryTest.java} | 36 ++---
...ionTest.java => FinishBackupOperationTest.java} | 116 +++++++--------
.../cache/backup/FinishBackupRequestTest.java | 156 ++++-----------------
.../cache/backup/PrepareBackupFactoryTest.java | 14 +-
.../cache/backup/PrepareBackupOperationTest.java | 4 +-
.../cache/backup/PrepareBackupRequestTest.java | 13 +-
24 files changed, 343 insertions(+), 552 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/internal/DSFIDFactory.java b/geode-core/src/main/java/org/apache/geode/internal/DSFIDFactory.java
index 3abcf0f..c02be89 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/DSFIDFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/DSFIDFactory.java
@@ -275,12 +275,11 @@ import org.apache.geode.internal.cache.UpdateAttributesProcessor;
import org.apache.geode.internal.cache.UpdateEntryVersionOperation.UpdateEntryVersionMessage;
import org.apache.geode.internal.cache.UpdateOperation;
import org.apache.geode.internal.cache.VMCachedDeserializable;
+import org.apache.geode.internal.cache.backup.BackupResponse;
import org.apache.geode.internal.cache.backup.FinishBackupRequest;
-import org.apache.geode.internal.cache.backup.FinishBackupResponse;
import org.apache.geode.internal.cache.backup.FlushToDiskRequest;
import org.apache.geode.internal.cache.backup.FlushToDiskResponse;
import org.apache.geode.internal.cache.backup.PrepareBackupRequest;
-import org.apache.geode.internal.cache.backup.PrepareBackupResponse;
import org.apache.geode.internal.cache.compression.SnappyCompressedCachedDeserializable;
import org.apache.geode.internal.cache.control.ResourceAdvisor.ResourceManagerProfile;
import org.apache.geode.internal.cache.control.ResourceAdvisor.ResourceProfileMessage;
@@ -874,9 +873,13 @@ public class DSFIDFactory implements DataSerializableFixedID {
registerDSFID(CLIENT_MEMBERSHIP_MESSAGE, ClientMembershipMessage.class);
registerDSFID(END_BUCKET_CREATION_MESSAGE, EndBucketCreationMessage.class);
registerDSFID(PREPARE_BACKUP_REQUEST, PrepareBackupRequest.class);
- registerDSFID(PREPARE_BACKUP_RESPONSE, PrepareBackupResponse.class);
+ registerDSFID(BACKUP_RESPONSE, BackupResponse.class); // in older versions this was
+ // FinishBackupResponse which is
+ // compatible
registerDSFID(FINISH_BACKUP_REQUEST, FinishBackupRequest.class);
- registerDSFID(FINISH_BACKUP_RESPONSE, FinishBackupResponse.class);
+ registerDSFID(FINISH_BACKUP_RESPONSE, BackupResponse.class); // for backwards compatibility map
+ // FINISH_BACKUP_RESPONSE to
+ // BackupResponse
registerDSFID(COMPACT_REQUEST, CompactRequest.class);
registerDSFID(COMPACT_RESPONSE, CompactResponse.class);
registerDSFID(FLOW_CONTROL_PERMIT_MESSAGE, FlowControlPermitMessage.class);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/DataSerializableFixedID.java b/geode-core/src/main/java/org/apache/geode/internal/DataSerializableFixedID.java
index e7a319e..d81f067 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/DataSerializableFixedID.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/DataSerializableFixedID.java
@@ -727,7 +727,7 @@ public interface DataSerializableFixedID extends SerializationVersions {
public static final short FINISH_BACKUP_REQUEST = 2114;
public static final short FINISH_BACKUP_RESPONSE = 2115;
public static final short PREPARE_BACKUP_REQUEST = 2116;
- public static final short PREPARE_BACKUP_RESPONSE = 2117;
+ public static final short BACKUP_RESPONSE = 2117;
public static final short COMPACT_REQUEST = 2118;
public static final short COMPACT_RESPONSE = 2119;
public static final short FLOW_CONTROL_PERMIT_MESSAGE = 2120;
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
index bf6cd1f..455111d 100644
--- 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
@@ -30,6 +30,7 @@ public class BackupDataStoreHelper {
private static final String LOCK_NAME = LOCK_SERVICE_NAME + "_token";
private static final Object LOCK_SYNC = new Object();
private static final PrepareBackupFactory prepareBackupFactory = new PrepareBackupFactory();
+ private static final FinishBackupFactory finishBackupFactory = new FinishBackupFactory();
@SuppressWarnings("rawtypes")
public static BackupDataStoreResult backupAllMembers(DM dm, Set recipients, File targetDir,
@@ -44,7 +45,8 @@ public class BackupDataStoreHelper {
prepareBackupFactory).send();
abort = false;
} finally {
- successfulMembers = FinishBackupRequest.send(dm, recipients, targetDir, baselineDir, abort);
+ successfulMembers = new FinishBackupOperation(dm, dm.getId(), dm.getCache(), recipients,
+ targetDir, baselineDir, abort, finishBackupFactory).send();
}
return new BackupDataStoreResult(existingDataStores, successfulMembers);
}
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/BackupOperation.java
similarity index 65%
copy from geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupOperation.java
copy to geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupOperation.java
index 9ebedb8..dc5f77b 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/BackupOperation.java
@@ -14,7 +14,6 @@
*/
package org.apache.geode.internal.cache.backup;
-import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -26,39 +25,33 @@ import org.apache.geode.CancelException;
import org.apache.geode.cache.persistence.PersistentID;
import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.distributed.internal.DM;
+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.cache.InternalCache;
import org.apache.geode.internal.logging.LogService;
-class PrepareBackupOperation implements PrepareBackupResultCollector {
+abstract class BackupOperation implements BackupResultCollector {
private static final Logger logger = LogService.getLogger();
private final DM dm;
- private final InternalDistributedMember member;
- private final InternalCache cache;
- private final Set<InternalDistributedMember> recipients;
- private final PrepareBackupFactory prepareBackupFactory;
-
private final Map<DistributedMember, Set<PersistentID>> results =
Collections.synchronizedMap(new HashMap<DistributedMember, Set<PersistentID>>());
- PrepareBackupOperation(DM dm, InternalDistributedMember member, InternalCache cache,
- Set<InternalDistributedMember> recipients, PrepareBackupFactory prepareBackupFactory) {
+ protected BackupOperation(DM dm) {
this.dm = dm;
- this.member = member;
- this.cache = cache;
- this.recipients = recipients;
- this.prepareBackupFactory = prepareBackupFactory;
}
+ abstract ReplyProcessor21 createReplyProcessor();
+
+ abstract DistributionMessage createDistributionMessage(ReplyProcessor21 replyProcessor);
+
+ abstract void processLocally();
+
Map<DistributedMember, Set<PersistentID>> send() {
- PrepareBackupReplyProcessor replyProcessor =
- prepareBackupFactory.createReplyProcessor(this, dm, recipients);
- PrepareBackupRequest request =
- prepareBackupFactory.createRequest(member, recipients, replyProcessor.getProcessorId());
+ ReplyProcessor21 replyProcessor = createReplyProcessor();
- dm.putOutgoing(request);
+ dm.putOutgoing(createDistributionMessage(replyProcessor));
processLocally();
@@ -72,7 +65,7 @@ class PrepareBackupOperation implements PrepareBackupResultCollector {
logger.warn(e.getMessage(), e);
}
- return results;
+ return getResults();
}
@Override
@@ -82,16 +75,11 @@ class PrepareBackupOperation implements PrepareBackupResultCollector {
}
}
- private void processLocally() {
- try {
- addToResults(member, prepareBackupFactory.createPrepareBackup(member, cache).run());
- } catch (IOException e) {
- logger.fatal("Failed to PrepareBackup in " + member, e);
- }
- }
-
Map<DistributedMember, Set<PersistentID>> getResults() {
return this.results;
}
+ protected DM getDistributionManager() {
+ return this.dm;
+ }
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupReplyProcessor.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupReplyProcessor.java
similarity index 73%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupReplyProcessor.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupReplyProcessor.java
index 6f2a767..c42bfcc 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupReplyProcessor.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupReplyProcessor.java
@@ -21,11 +21,11 @@ import org.apache.geode.distributed.internal.DistributionMessage;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.admin.remote.AdminMultipleReplyProcessor;
-class PrepareBackupReplyProcessor extends AdminMultipleReplyProcessor {
+class BackupReplyProcessor extends AdminMultipleReplyProcessor {
- private final PrepareBackupResultCollector resultCollector;
+ private final BackupResultCollector resultCollector;
- PrepareBackupReplyProcessor(PrepareBackupResultCollector resultCollector, DM dm,
+ BackupReplyProcessor(BackupResultCollector resultCollector, DM dm,
Set<InternalDistributedMember> recipients) {
super(dm, recipients);
this.resultCollector = resultCollector;
@@ -37,9 +37,21 @@ class PrepareBackupReplyProcessor extends AdminMultipleReplyProcessor {
}
@Override
+ protected int getAckWaitThreshold() {
+ // Disable the 15 second warning if the backup is taking a long time
+ return 0;
+ }
+
+ @Override
+ public long getAckSevereAlertThresholdMS() {
+ // Don't log severe alerts for backups either
+ return Long.MAX_VALUE;
+ }
+
+ @Override
protected void process(DistributionMessage message, boolean warn) {
- if (message instanceof PrepareBackupResponse) {
- PrepareBackupResponse response = (PrepareBackupResponse) message;
+ if (message instanceof BackupResponse) {
+ BackupResponse response = (BackupResponse) message;
resultCollector.addToResults(response.getSender(), response.getPersistentIds());
}
super.process(message, warn);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupResponse.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupResponse.java
similarity index 86%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupResponse.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupResponse.java
index b547f11..9f9243e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupResponse.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupResponse.java
@@ -26,18 +26,17 @@ import org.apache.geode.distributed.internal.membership.InternalDistributedMembe
import org.apache.geode.internal.admin.remote.AdminResponse;
/**
- * The response to the {@link PrepareBackupRequest}
+ * The response to a {@link PrepareBackupRequest} or {@link FinishBackupRequest}.
*/
-public class PrepareBackupResponse extends AdminResponse {
+public class BackupResponse extends AdminResponse {
private HashSet<PersistentID> persistentIds;
- public PrepareBackupResponse() {
+ public BackupResponse() {
super();
}
- public PrepareBackupResponse(InternalDistributedMember sender,
- HashSet<PersistentID> persistentIds) {
+ public BackupResponse(InternalDistributedMember sender, HashSet<PersistentID> persistentIds) {
setRecipient(sender);
this.persistentIds = persistentIds;
}
@@ -60,7 +59,7 @@ public class PrepareBackupResponse extends AdminResponse {
@Override
public int getDSFID() {
- return PREPARE_BACKUP_RESPONSE;
+ return BACKUP_RESPONSE;
}
@Override
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupResultCollector.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupResultCollector.java
similarity index 96%
copy from geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupResultCollector.java
copy to geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupResultCollector.java
index df74780..d4ab322 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupResultCollector.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupResultCollector.java
@@ -19,6 +19,6 @@ import java.util.Set;
import org.apache.geode.cache.persistence.PersistentID;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-interface PrepareBackupResultCollector {
+interface BackupResultCollector {
void addToResults(InternalDistributedMember member, Set<PersistentID> persistentIds);
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupResultCollector.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackup.java
similarity index 52%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupResultCollector.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackup.java
index df74780..f9d5813 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupResultCollector.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackup.java
@@ -14,11 +14,34 @@
*/
package org.apache.geode.internal.cache.backup;
-import java.util.Set;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashSet;
import org.apache.geode.cache.persistence.PersistentID;
-import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
+import org.apache.geode.internal.cache.InternalCache;
-interface PrepareBackupResultCollector {
- void addToResults(InternalDistributedMember member, Set<PersistentID> persistentIds);
+class FinishBackup {
+
+ private final InternalCache cache;
+ private final File targetDir;
+ private final File baselineDir;
+ private final boolean abort;
+
+ FinishBackup(InternalCache cache, File targetDir, File baselineDir, boolean abort) {
+ this.cache = cache;
+ this.targetDir = targetDir;
+ this.baselineDir = baselineDir;
+ this.abort = abort;
+ }
+
+ HashSet<PersistentID> run() throws IOException {
+ HashSet<PersistentID> persistentIds;
+ if (cache == null || cache.getBackupManager() == null) {
+ persistentIds = new HashSet<>();
+ } else {
+ persistentIds = cache.getBackupManager().doBackup(targetDir, baselineDir, abort);
+ }
+ return persistentIds;
+ }
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupFactory.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupFactory.java
similarity index 60%
copy from geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupFactory.java
copy to geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupFactory.java
index 7b9c32e..b4b40d9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupFactory.java
@@ -14,6 +14,7 @@
*/
package org.apache.geode.internal.cache.backup;
+import java.io.File;
import java.util.HashSet;
import java.util.Set;
@@ -22,24 +23,27 @@ import org.apache.geode.distributed.internal.DM;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.cache.InternalCache;
-class PrepareBackupFactory {
+class FinishBackupFactory {
- PrepareBackupReplyProcessor createReplyProcessor(PrepareBackupResultCollector resultCollector,
- DM dm, Set<InternalDistributedMember> recipients) {
- return new PrepareBackupReplyProcessor(resultCollector, dm, recipients);
+ BackupReplyProcessor createReplyProcessor(BackupResultCollector resultCollector, DM dm,
+ Set<InternalDistributedMember> recipients) {
+ return new BackupReplyProcessor(resultCollector, dm, recipients);
}
- PrepareBackupRequest createRequest(InternalDistributedMember sender,
- Set<InternalDistributedMember> recipients, int processorId) {
- return new PrepareBackupRequest(sender, recipients, processorId, this);
+ FinishBackupRequest createRequest(InternalDistributedMember sender,
+ Set<InternalDistributedMember> recipients, int processorId, File targetDir, File baselineDir,
+ boolean abort) {
+ return new FinishBackupRequest(sender, recipients, processorId, targetDir, baselineDir, abort,
+ this);
}
- PrepareBackup createPrepareBackup(InternalDistributedMember member, InternalCache cache) {
- return new PrepareBackup(member, cache);
+ FinishBackup createFinishBackup(InternalCache cache, File targetDir, File baselineDir,
+ boolean abort) {
+ return new FinishBackup(cache, targetDir, baselineDir, abort);
}
- PrepareBackupResponse createPrepareBackupResponse(InternalDistributedMember sender,
+ BackupResponse createBackupResponse(InternalDistributedMember sender,
HashSet<PersistentID> persistentIds) {
- return new PrepareBackupResponse(sender, persistentIds);
+ return new BackupResponse(sender, persistentIds);
}
}
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/FinishBackupOperation.java
new file mode 100644
index 0000000..468dba8
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupOperation.java
@@ -0,0 +1,75 @@
+/*
+ * 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.io.File;
+import java.io.IOException;
+import java.util.Set;
+
+import org.apache.logging.log4j.Logger;
+
+import org.apache.geode.distributed.internal.DM;
+import org.apache.geode.distributed.internal.DistributionMessage;
+import org.apache.geode.distributed.internal.ReplyProcessor21;
+import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
+import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.logging.LogService;
+
+class FinishBackupOperation extends BackupOperation {
+ private static final Logger logger = LogService.getLogger();
+
+ private final InternalDistributedMember member;
+ private final InternalCache cache;
+ private final Set<InternalDistributedMember> recipients;
+ private final File targetDir;
+ private final File baselineDir;
+ private final boolean abort;
+ private final FinishBackupFactory finishBackupFactory;
+
+ FinishBackupOperation(DM dm, InternalDistributedMember member, InternalCache cache,
+ Set<InternalDistributedMember> recipients, File targetDir, File baselineDir, boolean abort,
+ FinishBackupFactory FinishBackupFactory) {
+ super(dm);
+ this.member = member;
+ this.cache = cache;
+ this.recipients = recipients;
+ this.targetDir = targetDir;
+ this.baselineDir = baselineDir;
+ this.abort = abort;
+ this.finishBackupFactory = FinishBackupFactory;
+ }
+
+ @Override
+ ReplyProcessor21 createReplyProcessor() {
+ return finishBackupFactory.createReplyProcessor(this, getDistributionManager(), recipients);
+ }
+
+ @Override
+ DistributionMessage createDistributionMessage(ReplyProcessor21 replyProcessor) {
+ return finishBackupFactory.createRequest(member, recipients, replyProcessor.getProcessorId(),
+ targetDir, baselineDir, abort);
+ }
+
+ @Override
+ void processLocally() {
+ try {
+ addToResults(member,
+ finishBackupFactory.createFinishBackup(cache, targetDir, baselineDir, abort).run());
+ } catch (IOException e) {
+ logger.fatal("Failed to FinishBackup in " + member, e);
+ }
+ }
+
+}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupReplyProcessor.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupReplyProcessor.java
deleted file mode 100644
index 72d621e..0000000
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupReplyProcessor.java
+++ /dev/null
@@ -1,70 +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.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.geode.cache.persistence.PersistentID;
-import org.apache.geode.distributed.DistributedMember;
-import org.apache.geode.distributed.internal.DM;
-import org.apache.geode.distributed.internal.DistributionMessage;
-import org.apache.geode.internal.admin.remote.AdminMultipleReplyProcessor;
-
-class FinishBackupReplyProcessor extends AdminMultipleReplyProcessor {
-
- private final Map<DistributedMember, Set<PersistentID>> results =
- Collections.synchronizedMap(new HashMap<DistributedMember, Set<PersistentID>>());
-
- FinishBackupReplyProcessor(DM dm, Collection initMembers) {
- super(dm, initMembers);
- }
-
- @Override
- protected boolean stopBecauseOfExceptions() {
- return false;
- }
-
- @Override
- protected int getAckWaitThreshold() {
- // Disable the 15 second warning if the backup is taking a long time
- return 0;
- }
-
- @Override
- public long getAckSevereAlertThresholdMS() {
- // Don't log severe alerts for backups either
- return Long.MAX_VALUE;
- }
-
- @Override
- protected void process(DistributionMessage message, boolean warn) {
- if (message instanceof FinishBackupResponse) {
- HashSet<PersistentID> persistentIds = ((FinishBackupResponse) message).getPersistentIds();
- if (persistentIds != null && !persistentIds.isEmpty()) {
- results.put(message.getSender(), persistentIds);
- }
- }
- super.process(message, warn);
- }
-
- Map<DistributedMember, Set<PersistentID>> getResults() {
- return results;
- }
-}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupRequest.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupRequest.java
index 1cec313..32cc12a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupRequest.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupRequest.java
@@ -19,22 +19,17 @@ import java.io.DataOutput;
import java.io.File;
import java.io.IOException;
import java.util.HashSet;
-import java.util.Map;
import java.util.Set;
import org.apache.logging.log4j.Logger;
-import org.apache.geode.CancelException;
import org.apache.geode.DataSerializer;
import org.apache.geode.cache.persistence.PersistentID;
-import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.distributed.internal.DM;
-import org.apache.geode.distributed.internal.ReplyException;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.admin.remote.AdminFailureResponse;
import org.apache.geode.internal.admin.remote.AdminResponse;
import org.apache.geode.internal.admin.remote.CliLegacyMessage;
-import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.i18n.LocalizedStrings;
import org.apache.geode.internal.logging.LogService;
import org.apache.geode.internal.logging.log4j.LocalizedMessage;
@@ -46,85 +41,39 @@ import org.apache.geode.internal.logging.log4j.LocalizedMessage;
public class FinishBackupRequest extends CliLegacyMessage {
private static final Logger logger = LogService.getLogger();
- private final DM dm;
- private final FinishBackupReplyProcessor replyProcessor;
+ private final transient FinishBackupFactory finishBackupFactory;
+
private File targetDir;
private File baselineDir;
private boolean abort;
public FinishBackupRequest() {
- super();
- this.dm = null;
- this.replyProcessor = null;
- }
-
- private FinishBackupRequest(DM dm, Set<InternalDistributedMember> recipients, File targetDir,
- File baselineDir, boolean abort) {
- this(dm, recipients, new FinishBackupReplyProcessor(dm, recipients), targetDir, baselineDir,
- abort);
+ this.finishBackupFactory = new FinishBackupFactory();
}
- FinishBackupRequest(DM dm, Set<InternalDistributedMember> recipients,
- FinishBackupReplyProcessor replyProcessor, File targetDir, File baselineDir, boolean abort) {
- this.dm = dm;
+ FinishBackupRequest(InternalDistributedMember sender, Set<InternalDistributedMember> recipients,
+ int processorId, File targetDir, File baselineDir, boolean abort,
+ FinishBackupFactory finishBackupFactory) {
+ setSender(sender);
+ setRecipients(recipients);
+ this.msgId = processorId;
+ this.finishBackupFactory = finishBackupFactory;
this.targetDir = targetDir;
this.baselineDir = baselineDir;
this.abort = abort;
- setRecipients(recipients);
- this.replyProcessor = replyProcessor;
- this.msgId = this.replyProcessor.getProcessorId();
- }
-
- public static Map<DistributedMember, Set<PersistentID>> send(DM dm, Set recipients,
- File targetDir, File baselineDir, boolean abort) {
- FinishBackupRequest request =
- new FinishBackupRequest(dm, recipients, targetDir, baselineDir, abort);
- return request.send();
- }
-
- Map<DistributedMember, Set<PersistentID>> send() {
- dm.putOutgoing(this);
-
- // invokes doBackup and releases BackupLock
- AdminResponse response = createResponse(dm);
-
- try {
- replyProcessor.waitForReplies();
- } catch (ReplyException e) {
- if (!(e.getCause() instanceof CancelException)) {
- throw e;
- }
- } catch (InterruptedException e) {
- logger.warn(e.getMessage(), e);
- }
-
- // adding local member to the results
- response.setSender(dm.getDistributionManagerId());
- replyProcessor.process(response, false);
- return replyProcessor.getResults();
}
@Override
protected AdminResponse createResponse(DM dm) {
HashSet<PersistentID> persistentIds;
try {
- persistentIds = doBackup(dm);
+ persistentIds = finishBackupFactory
+ .createFinishBackup(dm.getCache(), this.targetDir, this.baselineDir, this.abort).run();
} catch (IOException e) {
logger.error(LocalizedMessage.create(LocalizedStrings.CliLegacyMessage_ERROR, getClass()), e);
return AdminFailureResponse.create(getSender(), e);
}
- return new FinishBackupResponse(getSender(), persistentIds);
- }
-
- private HashSet<PersistentID> doBackup(DM dm) throws IOException {
- InternalCache cache = dm.getCache();
- HashSet<PersistentID> persistentIds;
- if (cache == null || cache.getBackupManager() == null) {
- persistentIds = new HashSet<>();
- } else {
- persistentIds = cache.getBackupManager().doBackup(targetDir, baselineDir, abort);
- }
- return persistentIds;
+ return finishBackupFactory.createBackupResponse(getSender(), persistentIds);
}
@Override
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupResponse.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupResponse.java
deleted file mode 100644
index 03fd471..0000000
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FinishBackupResponse.java
+++ /dev/null
@@ -1,74 +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.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.HashSet;
-
-import org.apache.geode.DataSerializer;
-import org.apache.geode.cache.persistence.PersistentID;
-import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.internal.admin.remote.AdminResponse;
-
-/**
- * The reply for a {@link FinishBackupRequest}. The reply contains the persistent ids of the disk
- * stores that were backed up on this member.
- */
-public class FinishBackupResponse extends AdminResponse {
-
- private HashSet<PersistentID> persistentIds;
-
- public FinishBackupResponse() {
- super();
- }
-
- public FinishBackupResponse(InternalDistributedMember sender,
- HashSet<PersistentID> persistentIds) {
- this.setRecipient(sender);
- this.persistentIds = persistentIds;
- }
-
- public HashSet<PersistentID> getPersistentIds() {
- return persistentIds;
- }
-
- @Override
- public void fromData(DataInput in) throws IOException, ClassNotFoundException {
- super.fromData(in);
- persistentIds = DataSerializer.readHashSet(in);
- }
-
- @Override
- public void toData(DataOutput out) throws IOException {
- super.toData(out);
- DataSerializer.writeHashSet(persistentIds, out);
- }
-
- @Override
- protected Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-
- public int getDSFID() {
- return FINISH_BACKUP_RESPONSE;
- }
-
- @Override
- public String toString() {
- return getClass().getName() + ": " + persistentIds;
- }
-}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupFactory.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupFactory.java
index 7b9c32e..eebc439 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupFactory.java
@@ -24,9 +24,9 @@ import org.apache.geode.internal.cache.InternalCache;
class PrepareBackupFactory {
- PrepareBackupReplyProcessor createReplyProcessor(PrepareBackupResultCollector resultCollector,
- DM dm, Set<InternalDistributedMember> recipients) {
- return new PrepareBackupReplyProcessor(resultCollector, dm, recipients);
+ BackupReplyProcessor createReplyProcessor(BackupResultCollector resultCollector, DM dm,
+ Set<InternalDistributedMember> recipients) {
+ return new BackupReplyProcessor(resultCollector, dm, recipients);
}
PrepareBackupRequest createRequest(InternalDistributedMember sender,
@@ -38,8 +38,8 @@ class PrepareBackupFactory {
return new PrepareBackup(member, cache);
}
- PrepareBackupResponse createPrepareBackupResponse(InternalDistributedMember sender,
+ BackupResponse createBackupResponse(InternalDistributedMember sender,
HashSet<PersistentID> persistentIds) {
- return new PrepareBackupResponse(sender, persistentIds);
+ return new BackupResponse(sender, persistentIds);
}
}
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/PrepareBackupOperation.java
index 9ebedb8..b9d377c 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/PrepareBackupOperation.java
@@ -15,83 +15,50 @@
package org.apache.geode.internal.cache.backup;
import java.io.IOException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
import java.util.Set;
import org.apache.logging.log4j.Logger;
-import org.apache.geode.CancelException;
-import org.apache.geode.cache.persistence.PersistentID;
-import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.distributed.internal.DM;
-import org.apache.geode.distributed.internal.ReplyException;
+import org.apache.geode.distributed.internal.DistributionMessage;
+import org.apache.geode.distributed.internal.ReplyProcessor21;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.logging.LogService;
-class PrepareBackupOperation implements PrepareBackupResultCollector {
+class PrepareBackupOperation extends BackupOperation {
private static final Logger logger = LogService.getLogger();
- private final DM dm;
private final InternalDistributedMember member;
private final InternalCache cache;
private final Set<InternalDistributedMember> recipients;
private final PrepareBackupFactory prepareBackupFactory;
- private final Map<DistributedMember, Set<PersistentID>> results =
- Collections.synchronizedMap(new HashMap<DistributedMember, Set<PersistentID>>());
-
PrepareBackupOperation(DM dm, InternalDistributedMember member, InternalCache cache,
Set<InternalDistributedMember> recipients, PrepareBackupFactory prepareBackupFactory) {
- this.dm = dm;
+ super(dm);
this.member = member;
this.cache = cache;
this.recipients = recipients;
this.prepareBackupFactory = prepareBackupFactory;
}
- Map<DistributedMember, Set<PersistentID>> send() {
- PrepareBackupReplyProcessor replyProcessor =
- prepareBackupFactory.createReplyProcessor(this, dm, recipients);
- PrepareBackupRequest request =
- prepareBackupFactory.createRequest(member, recipients, replyProcessor.getProcessorId());
-
- dm.putOutgoing(request);
-
- processLocally();
-
- try {
- replyProcessor.waitForReplies();
- } catch (ReplyException e) {
- if (!(e.getCause() instanceof CancelException)) {
- throw e;
- }
- } catch (InterruptedException e) {
- logger.warn(e.getMessage(), e);
- }
-
- return results;
+ @Override
+ ReplyProcessor21 createReplyProcessor() {
+ return prepareBackupFactory.createReplyProcessor(this, getDistributionManager(), recipients);
}
@Override
- public void addToResults(InternalDistributedMember member, Set<PersistentID> persistentIds) {
- if (persistentIds != null && !persistentIds.isEmpty()) {
- results.put(member, persistentIds);
- }
+ DistributionMessage createDistributionMessage(ReplyProcessor21 replyProcessor) {
+ return prepareBackupFactory.createRequest(member, recipients, replyProcessor.getProcessorId());
}
- private void processLocally() {
+ @Override
+ void processLocally() {
try {
addToResults(member, prepareBackupFactory.createPrepareBackup(member, cache).run());
} catch (IOException e) {
logger.fatal("Failed to PrepareBackup in " + member, e);
}
}
-
- Map<DistributedMember, Set<PersistentID>> getResults() {
- return this.results;
- }
-
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupRequest.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupRequest.java
index 23bcd6c..ccbf1d1 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupRequest.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/PrepareBackupRequest.java
@@ -62,7 +62,7 @@ public class PrepareBackupRequest extends CliLegacyMessage {
logger.error(LocalizedMessage.create(LocalizedStrings.CliLegacyMessage_ERROR, getClass()), e);
return AdminFailureResponse.create(getSender(), e);
}
- return prepareBackupFactory.createPrepareBackupResponse(getSender(), persistentIds);
+ return prepareBackupFactory.createBackupResponse(getSender(), persistentIds);
}
@Override
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 3469ea4..f48f7f3 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
@@ -143,7 +143,8 @@ public abstract class BackupPrepareAndFinishMsgDUnitTest extends CacheTestCase {
future = CompletableFuture.runAsync(function);
Awaitility.await().atMost(5, TimeUnit.SECONDS)
.until(() -> assertTrue(waitingForBackupLockCount == 1));
- FinishBackupRequest.send(dm, recipients, diskDirs[0], null, false);
+ new FinishBackupOperation(dm, dm.getId(), dm.getCache(), recipients, diskDirs[0], null, false,
+ new FinishBackupFactory()).send();
future.get(5, TimeUnit.SECONDS);
}
@@ -156,7 +157,8 @@ public abstract class BackupPrepareAndFinishMsgDUnitTest extends CacheTestCase {
List<CompletableFuture<?>> futureList = doReadActions();
CompletableFuture.allOf(futureList.toArray(new CompletableFuture<?>[futureList.size()]));
assertTrue(waitingForBackupLockCount == 0);
- FinishBackupRequest.send(dm, recipients, diskDirs[0], null, false);
+ new FinishBackupOperation(dm, dm.getId(), dm.getCache(), recipients, diskDirs[0], null, false,
+ new FinishBackupFactory()).send();
}
private void verifyKeyValuePair(Integer key, Integer expectedValue) {
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupReplyProcessorTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupReplyProcessorTest.java
similarity index 66%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupReplyProcessorTest.java
rename to geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupReplyProcessorTest.java
index 0f8f32b..e014852 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupReplyProcessorTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupReplyProcessorTest.java
@@ -33,11 +33,11 @@ import org.apache.geode.distributed.internal.membership.InternalDistributedMembe
import org.apache.geode.test.junit.categories.UnitTest;
@Category(UnitTest.class)
-public class PrepareBackupReplyProcessorTest {
+public class BackupReplyProcessorTest {
- private PrepareBackupReplyProcessor prepareBackupReplyProcessor;
+ private BackupReplyProcessor backupReplyProcessor;
- private PrepareBackupResultCollector resultCollector;
+ private BackupResultCollector resultCollector;
private DM dm;
private InternalDistributedSystem system;
private InternalDistributedMember sender;
@@ -45,16 +45,16 @@ public class PrepareBackupReplyProcessorTest {
private Set<InternalDistributedMember> recipients;
private Set<PersistentID> persistentIds;
- private PrepareBackupResponse prepareBackupResponse;
- private DistributionMessage nonPrepareBackupResponse;
+ private BackupResponse backupResponse;
+ private DistributionMessage nonBackupResponse;
@Before
public void setUp() throws Exception {
- resultCollector = mock(PrepareBackupResultCollector.class);
+ resultCollector = mock(BackupResultCollector.class);
dm = mock(DM.class);
system = mock(InternalDistributedSystem.class);
- prepareBackupResponse = mock(PrepareBackupResponse.class);
- nonPrepareBackupResponse = mock(DistributionMessage.class);
+ backupResponse = mock(BackupResponse.class);
+ nonBackupResponse = mock(DistributionMessage.class);
sender = mock(InternalDistributedMember.class);
recipients = new HashSet<>();
@@ -62,28 +62,28 @@ public class PrepareBackupReplyProcessorTest {
when(dm.getSystem()).thenReturn(system);
when(dm.getCancelCriterion()).thenReturn(mock(CancelCriterion.class));
- when(prepareBackupResponse.getSender()).thenReturn(sender);
- when(prepareBackupResponse.getPersistentIds()).thenReturn(persistentIds);
- when(nonPrepareBackupResponse.getSender()).thenReturn(sender);
+ when(backupResponse.getSender()).thenReturn(sender);
+ when(backupResponse.getPersistentIds()).thenReturn(persistentIds);
+ when(nonBackupResponse.getSender()).thenReturn(sender);
- prepareBackupReplyProcessor = new PrepareBackupReplyProcessor(resultCollector, dm, recipients);
+ backupReplyProcessor = new BackupReplyProcessor(resultCollector, dm, recipients);
}
@Test
public void stopBecauseOfExceptionsReturnsFalse() throws Exception {
- assertThat(prepareBackupReplyProcessor.stopBecauseOfExceptions()).isFalse();
+ assertThat(backupReplyProcessor.stopBecauseOfExceptions()).isFalse();
}
@Test
- public void processPrepareBackupResponseAddsSenderToResults() throws Exception {
- prepareBackupReplyProcessor.process(prepareBackupResponse, false);
+ public void processBackupResponseAddsSenderToResults() throws Exception {
+ backupReplyProcessor.process(backupResponse, false);
verify(resultCollector, times(1)).addToResults(eq(sender), eq(persistentIds));
}
@Test
- public void processNonPrepareBackupResponseDoesNotAddSenderToResults() throws Exception {
- prepareBackupReplyProcessor.process(nonPrepareBackupResponse, false);
+ public void processNonBackupResponseDoesNotAddSenderToResults() throws Exception {
+ backupReplyProcessor.process(nonBackupResponse, false);
verify(resultCollector, times(0)).addToResults(eq(sender), eq(persistentIds));
}
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/FinishBackupFactoryTest.java
similarity index 63%
copy from geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupFactoryTest.java
copy to geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupFactoryTest.java
index 8b4476d..ce2e7f4 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/FinishBackupFactoryTest.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache.backup;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
+import java.io.File;
import java.util.HashSet;
import java.util.Set;
@@ -25,6 +26,7 @@ import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.apache.geode.CancelCriterion;
+import org.apache.geode.cache.persistence.PersistentID;
import org.apache.geode.distributed.internal.DM;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -32,11 +34,11 @@ import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.test.junit.categories.UnitTest;
@Category(UnitTest.class)
-public class PrepareBackupFactoryTest {
+public class FinishBackupFactoryTest {
- private PrepareBackupFactory prepareBackupFactory;
+ private FinishBackupFactory finishBackupFactory;
- private PrepareBackupResultCollector resultCollector;
+ private BackupResultCollector resultCollector;
private DM dm;
private InternalDistributedMember sender;
private Set<InternalDistributedMember> recipients;
@@ -45,7 +47,7 @@ public class PrepareBackupFactoryTest {
@Before
public void setUp() throws Exception {
- resultCollector = mock(PrepareBackupResultCollector.class);
+ resultCollector = mock(BackupResultCollector.class);
dm = mock(DM.class);
sender = mock(InternalDistributedMember.class);
member = mock(InternalDistributedMember.class);
@@ -56,30 +58,30 @@ public class PrepareBackupFactoryTest {
when(dm.getSystem()).thenReturn(mock(InternalDistributedSystem.class));
when(dm.getCancelCriterion()).thenReturn(mock(CancelCriterion.class));
- prepareBackupFactory = new PrepareBackupFactory();
+ finishBackupFactory = new FinishBackupFactory();
}
@Test
- public void createReplyProcessorReturnsPrepareBackupReplyProcessor() throws Exception {
- assertThat(prepareBackupFactory.createReplyProcessor(resultCollector, dm, recipients))
- .isInstanceOf(PrepareBackupReplyProcessor.class);
+ public void createReplyProcessorReturnsBackupReplyProcessor() throws Exception {
+ assertThat(finishBackupFactory.createReplyProcessor(resultCollector, dm, recipients))
+ .isInstanceOf(BackupReplyProcessor.class);
}
@Test
- public void createRequestReturnsPrepareBackupRequest() throws Exception {
- assertThat(prepareBackupFactory.createRequest(sender, recipients, 1))
- .isInstanceOf(PrepareBackupRequest.class);
+ public void createRequestReturnsFinishBackupRequest() throws Exception {
+ assertThat(finishBackupFactory.createRequest(sender, recipients, 1, new File("targetDir"),
+ new File("baselineDir"), false)).isInstanceOf(FinishBackupRequest.class);
}
@Test
- public void createPrepareBackupReturnsPrepareBackup() throws Exception {
- assertThat(prepareBackupFactory.createPrepareBackup(member, cache))
- .isInstanceOf(PrepareBackup.class);
+ public void createFinishBackupReturnsFinishBackup() throws Exception {
+ assertThat(finishBackupFactory.createFinishBackup(cache, new File("targetDir"),
+ new File("baselineDir"), false)).isInstanceOf(FinishBackup.class);
}
@Test
- public void createPrepareBackupResponseReturnsPrepareBackupResponse() {
- assertThat(prepareBackupFactory.createPrepareBackupResponse(member, null))
- .isInstanceOf(PrepareBackupResponse.class);
+ public void createBackupResponseReturnsBackupResponse() {
+ assertThat(finishBackupFactory.createBackupResponse(member, null))
+ .isInstanceOf(BackupResponse.class);
}
}
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/FinishBackupOperationTest.java
similarity index 62%
copy from geode-core/src/test/java/org/apache/geode/internal/cache/backup/PrepareBackupOperationTest.java
copy to geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupOperationTest.java
index c0267cb..c0972e8 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/FinishBackupOperationTest.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache.backup;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
+import java.io.File;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
@@ -36,7 +37,7 @@ import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.test.junit.categories.UnitTest;
@Category(UnitTest.class)
-public class PrepareBackupOperationTest {
+public class FinishBackupOperationTest {
private DM dm;
private InternalCache cache;
@@ -46,46 +47,52 @@ public class PrepareBackupOperationTest {
private InternalDistributedMember member1;
private InternalDistributedMember member2;
- private PrepareBackupFactory prepareBackupFactory;
- private PrepareBackupReplyProcessor prepareBackupReplyProcessor;
- private PrepareBackupRequest prepareBackupRequest;
- private PrepareBackup prepareBackup;
+ private File targetDir = new File("targetDir");
+ private File baselineDir = new File("baselineDir");
+ private boolean abort = false;
- private PrepareBackupOperation prepareBackupOperation;
+ private FinishBackupFactory finishBackupFactory;
+ private BackupReplyProcessor finishBackupReplyProcessor;
+ private FinishBackupRequest finishBackupRequest;
+ private FinishBackup finishBackup;
+
+ private FinishBackupOperation finishBackupOperation;
@Before
public void setUp() throws Exception {
dm = mock(DM.class);
cache = mock(InternalCache.class);
- prepareBackupReplyProcessor = mock(PrepareBackupReplyProcessor.class);
- prepareBackupRequest = mock(PrepareBackupRequest.class);
- prepareBackup = mock(PrepareBackup.class);
+ finishBackupReplyProcessor = mock(BackupReplyProcessor.class);
+ finishBackupRequest = mock(FinishBackupRequest.class);
+ finishBackup = mock(FinishBackup.class);
- prepareBackupFactory = mock(PrepareBackupFactory.class);
+ finishBackupFactory = mock(FinishBackupFactory.class);
sender = mock(InternalDistributedMember.class, "sender");
member1 = mock(InternalDistributedMember.class, "member1");
member2 = mock(InternalDistributedMember.class, "member2");
recipients = new HashSet<>();
- prepareBackupOperation =
- new PrepareBackupOperation(dm, sender, cache, recipients, prepareBackupFactory);
+ finishBackupOperation = new FinishBackupOperation(dm, sender, cache, recipients, targetDir,
+ baselineDir, abort, finishBackupFactory);
- when(prepareBackupReplyProcessor.getProcessorId()).thenReturn(42);
+ when(finishBackupReplyProcessor.getProcessorId()).thenReturn(42);
- when(prepareBackupFactory.createReplyProcessor(eq(prepareBackupOperation), eq(dm),
- eq(recipients))).thenReturn(prepareBackupReplyProcessor);
- when(prepareBackupFactory.createRequest(eq(sender), eq(recipients), eq(42)))
- .thenReturn(prepareBackupRequest);
- when(prepareBackupFactory.createPrepareBackup(eq(sender), eq(cache))).thenReturn(prepareBackup);
+ when(
+ finishBackupFactory.createReplyProcessor(eq(finishBackupOperation), eq(dm), eq(recipients)))
+ .thenReturn(finishBackupReplyProcessor);
+ when(finishBackupFactory.createRequest(eq(sender), eq(recipients), eq(42), eq(targetDir),
+ eq(baselineDir), eq(abort))).thenReturn(finishBackupRequest);
+ when(finishBackupFactory.createFinishBackup(eq(cache), eq(targetDir), eq(baselineDir),
+ eq(abort))).thenReturn(finishBackup);
}
@Test
- public void sendShouldSendPrepareBackupMessage() throws Exception {
- prepareBackupOperation.send();
+ public void sendShouldSendfinishBackupMessage() throws Exception {
+ finishBackupOperation.send();
- verify(dm, times(1)).putOutgoing(prepareBackupRequest);
+ verify(dm, times(1)).putOutgoing(finishBackupRequest);
}
@Test
@@ -93,9 +100,9 @@ public class PrepareBackupOperationTest {
HashSet<PersistentID> persistentIdsForMember1 = new HashSet<>();
persistentIdsForMember1.add(mock(PersistentID.class));
doAnswer(invokeAddToResults(new MemberWithPersistentIds(member1, persistentIdsForMember1)))
- .when(prepareBackupReplyProcessor).waitForReplies();
+ .when(finishBackupReplyProcessor).waitForReplies();
- assertThat(prepareBackupOperation.send()).containsOnlyKeys(member1)
+ assertThat(finishBackupOperation.send()).containsOnlyKeys(member1)
.containsValues(persistentIdsForMember1);
}
@@ -103,9 +110,9 @@ public class PrepareBackupOperationTest {
public void sendReturnsResultsForLocalMember() throws Exception {
HashSet<PersistentID> persistentIdsForSender = new HashSet<>();
persistentIdsForSender.add(mock(PersistentID.class));
- when(prepareBackup.run()).thenReturn(persistentIdsForSender);
+ when(finishBackup.run()).thenReturn(persistentIdsForSender);
- assertThat(prepareBackupOperation.send()).containsOnlyKeys(sender)
+ assertThat(finishBackupOperation.send()).containsOnlyKeys(sender)
.containsValue(persistentIdsForSender);
}
@@ -121,100 +128,97 @@ public class PrepareBackupOperationTest {
new MemberWithPersistentIds(member1, persistentIdsForMember1),
new MemberWithPersistentIds(member2, persistentIdsForMember2)};
- doAnswer(invokeAddToResults(ids)).when(prepareBackupReplyProcessor).waitForReplies();
-
- // prepareBackupOperation.addToResults(ids[0].member, ids[0].persistentIds);
- // prepareBackupOperation.addToResults(ids[1].member, ids[1].persistentIds);
+ doAnswer(invokeAddToResults(ids)).when(finishBackupReplyProcessor).waitForReplies();
HashSet<PersistentID> persistentIdsForSender = new HashSet<>();
persistentIdsForSender.add(mock(PersistentID.class));
- when(prepareBackup.run()).thenReturn(persistentIdsForSender);
+ when(finishBackup.run()).thenReturn(persistentIdsForSender);
- assertThat(prepareBackupOperation.send()).containsOnlyKeys(member1, member2, sender)
+ assertThat(finishBackupOperation.send()).containsOnlyKeys(member1, member2, sender)
.containsValues(persistentIdsForSender, persistentIdsForMember1, persistentIdsForMember2);
}
@Test
public void getResultsShouldReturnEmptyMapByDefault() throws Exception {
- assertThat(prepareBackupOperation.getResults()).isEmpty();
+ assertThat(finishBackupOperation.getResults()).isEmpty();
}
@Test
public void addToResultsWithNullShouldBeNoop() throws Exception {
- prepareBackupOperation.addToResults(member1, null);
- assertThat(prepareBackupOperation.getResults()).isEmpty();
+ finishBackupOperation.addToResults(member1, null);
+ assertThat(finishBackupOperation.getResults()).isEmpty();
}
@Test
public void addToResultsWithEmptySetShouldBeNoop() throws Exception {
- prepareBackupOperation.addToResults(member1, new HashSet<>());
- assertThat(prepareBackupOperation.getResults()).isEmpty();
+ finishBackupOperation.addToResults(member1, new HashSet<>());
+ assertThat(finishBackupOperation.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)
+ finishBackupOperation.addToResults(member1, persistentIdsForMember1);
+ assertThat(finishBackupOperation.getResults()).containsOnlyKeys(member1)
.containsValue(persistentIdsForMember1);
}
@Test
public void sendShouldHandleIOExceptionThrownFromRun() throws Exception {
- when(prepareBackup.run()).thenThrow(new IOException("expected exception"));
- prepareBackupOperation.send();
+ when(finishBackup.run()).thenThrow(new IOException("expected exception"));
+ finishBackupOperation.send();
}
@Test(expected = RuntimeException.class)
public void sendShouldThrowNonIOExceptionThrownFromRun() throws Exception {
- when(prepareBackup.run()).thenThrow(new RuntimeException("expected exception"));
- prepareBackupOperation.send();
+ when(finishBackup.run()).thenThrow(new RuntimeException("expected exception"));
+ finishBackupOperation.send();
}
@Test
public void sendShouldHandleCancelExceptionFromWaitForReplies() throws Exception {
ReplyException replyException =
new ReplyException("expected exception", new CacheClosedException("expected exception"));
- doThrow(replyException).when(prepareBackupReplyProcessor).waitForReplies();
- prepareBackupOperation.send();
+ doThrow(replyException).when(finishBackupReplyProcessor).waitForReplies();
+ finishBackupOperation.send();
}
@Test
public void sendShouldHandleInterruptedExceptionFromWaitForReplies() throws Exception {
- doThrow(new InterruptedException("expected exception")).when(prepareBackupReplyProcessor)
+ doThrow(new InterruptedException("expected exception")).when(finishBackupReplyProcessor)
.waitForReplies();
- prepareBackupOperation.send();
+ finishBackupOperation.send();
}
@Test(expected = ReplyException.class)
public void sendShouldThrowReplyExceptionWithNoCauseFromWaitForReplies() throws Exception {
- doThrow(new ReplyException("expected exception")).when(prepareBackupReplyProcessor)
+ doThrow(new ReplyException("expected exception")).when(finishBackupReplyProcessor)
.waitForReplies();
- prepareBackupOperation.send();
+ finishBackupOperation.send();
}
@Test(expected = ReplyException.class)
public void sendShouldThrowReplyExceptionWithCauseThatIsNotACancelFromWaitForReplies()
throws Exception {
doThrow(new ReplyException("expected exception", new RuntimeException("expected")))
- .when(prepareBackupReplyProcessor).waitForReplies();
- prepareBackupOperation.send();
+ .when(finishBackupReplyProcessor).waitForReplies();
+ finishBackupOperation.send();
}
@Test
- public void sendShouldPrepareForBackupInLocalMemberBeforeWaitingForReplies() throws Exception {
- InOrder inOrder = inOrder(prepareBackup, prepareBackupReplyProcessor);
- prepareBackupOperation.send();
+ public void sendShouldfinishForBackupInLocalMemberBeforeWaitingForReplies() throws Exception {
+ InOrder inOrder = inOrder(finishBackup, finishBackupReplyProcessor);
+ finishBackupOperation.send();
- inOrder.verify(prepareBackup, times(1)).run();
- inOrder.verify(prepareBackupReplyProcessor, times(1)).waitForReplies();
+ inOrder.verify(finishBackup, times(1)).run();
+ inOrder.verify(finishBackupReplyProcessor, times(1)).waitForReplies();
}
private Answer<Object> invokeAddToResults(MemberWithPersistentIds... memberWithPersistentIds) {
return invocation -> {
for (MemberWithPersistentIds ids : memberWithPersistentIds) {
- prepareBackupOperation.addToResults(ids.member, ids.persistentIds);
+ finishBackupOperation.addToResults(ids.member, ids.persistentIds);
}
return null;
};
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupRequestTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupRequestTest.java
index 68cae0f..5e1a5a1 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupRequestTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/FinishBackupRequestTest.java
@@ -15,11 +15,7 @@
package org.apache.geode.internal.cache.backup;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -27,25 +23,17 @@ import static org.mockito.Mockito.when;
import java.io.File;
import java.io.IOException;
-import java.util.Collections;
-import java.util.HashMap;
import java.util.HashSet;
-import java.util.Map;
import java.util.Set;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.mockito.InOrder;
-import org.apache.geode.cache.CacheClosedException;
import org.apache.geode.cache.persistence.PersistentID;
-import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.distributed.internal.DM;
-import org.apache.geode.distributed.internal.ReplyException;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.admin.remote.AdminFailureResponse;
-import org.apache.geode.internal.admin.remote.AdminResponse;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.test.junit.categories.UnitTest;
@@ -54,158 +42,76 @@ public class FinishBackupRequestTest {
private FinishBackupRequest finishBackupRequest;
- private FinishBackupReplyProcessor replyProcessor;
private DM dm;
private InternalCache cache;
private BackupManager backupManager;
+ private int processorId = 79;
private File targetDir;
private File baselineDir;
-
- private InternalDistributedMember localMember;
- private InternalDistributedMember member1;
- private InternalDistributedMember member2;
-
+ private boolean abort;
+ private FinishBackupFactory finishBackupFactory;
+ private InternalDistributedMember sender;
private Set<InternalDistributedMember> recipients;
+ private HashSet<PersistentID> persistentIds;
+ private FinishBackup finishBackup;
@Before
public void setUp() throws Exception {
// mocks here
- replyProcessor = mock(FinishBackupReplyProcessor.class);
dm = mock(DM.class);
cache = mock(InternalCache.class);
backupManager = mock(BackupManager.class);
targetDir = mock(File.class);
baselineDir = mock(File.class);
+ abort = false;
when(dm.getCache()).thenReturn(cache);
- when(dm.getDistributionManagerId()).thenReturn(localMember);
+ when(dm.getDistributionManagerId()).thenReturn(sender);
when(cache.getBackupManager()).thenReturn(backupManager);
- when(replyProcessor.getResults()).thenReturn(Collections.emptyMap());
- localMember = mock(InternalDistributedMember.class);
- member1 = mock(InternalDistributedMember.class);
- member2 = mock(InternalDistributedMember.class);
+ sender = mock(InternalDistributedMember.class);
recipients = new HashSet<>();
- recipients.add(member1);
- recipients.add(member2);
+ persistentIds = new HashSet<>();
- finishBackupRequest =
- new FinishBackupRequest(dm, recipients, replyProcessor, targetDir, baselineDir, false);
- }
+ finishBackup = mock(FinishBackup.class);
+ when(finishBackup.run()).thenReturn(persistentIds);
- @Test
- public void getRecipientsReturnsRecipientMembers() throws Exception {
- assertThat(finishBackupRequest.getRecipients()).hasSize(2).contains(member1, member2);
- }
+ finishBackupFactory = mock(FinishBackupFactory.class);
+ when(finishBackupFactory.createFinishBackup(eq(cache), eq(targetDir), eq(baselineDir),
+ eq(abort))).thenReturn(finishBackup);
+ when(finishBackupFactory.createBackupResponse(eq(sender), eq(persistentIds)))
+ .thenReturn(mock(BackupResponse.class));
- @Test
- public void getRecipientsDoesNotIncludeNull() throws Exception {
- InternalDistributedMember nullMember = null;
- assertThat(finishBackupRequest.getRecipients()).doesNotContain(nullMember);
+ finishBackupRequest = new FinishBackupRequest(sender, recipients, processorId, targetDir,
+ baselineDir, false, finishBackupFactory);
}
@Test
- public void sendShouldUseDMToSendMessage() throws Exception {
- finishBackupRequest.send();
+ public void usesFactoryToCreateFinishBackup() throws Exception {
+ finishBackupRequest.createResponse(dm);
- verify(dm, times(1)).putOutgoing(finishBackupRequest);
+ verify(finishBackupFactory, times(1)).createFinishBackup(eq(cache), eq(targetDir),
+ eq(baselineDir), eq(abort));
}
@Test
- public void sendShouldWaitForRepliesFromRecipients() throws Exception {
- finishBackupRequest.send();
+ public void usesFactoryToCreateBackupResponse() throws Exception {
+ finishBackupRequest.createResponse(dm);
- verify(replyProcessor, times(1)).waitForReplies();
+ verify(finishBackupFactory, times(1)).createBackupResponse(eq(sender), eq(persistentIds));
}
@Test
- public void sendShouldReturnResultsContainingRecipientsAndLocalMember() throws Exception {
- Set<PersistentID> localMember_PersistentIdSet = new HashSet<>();
- localMember_PersistentIdSet.add(mock(PersistentID.class));
- Set<PersistentID> member1_PersistentIdSet = new HashSet<>();
- member1_PersistentIdSet.add(mock(PersistentID.class));
- Set<PersistentID> member2_PersistentIdSet = new HashSet<>();
- member2_PersistentIdSet.add(mock(PersistentID.class));
- member2_PersistentIdSet.add(mock(PersistentID.class));
- Map<DistributedMember, Set<PersistentID>> expectedResults = new HashMap<>();
- expectedResults.put(localMember, localMember_PersistentIdSet);
- expectedResults.put(member1, member1_PersistentIdSet);
- expectedResults.put(member2, member2_PersistentIdSet);
- when(replyProcessor.getResults()).thenReturn(expectedResults);
-
- Map<DistributedMember, Set<PersistentID>> results = finishBackupRequest.send();
-
- assertThat(results).isEqualTo(expectedResults);
- }
-
- @Test
- public void sendShouldInvokeProcessLocally() throws Exception {
- finishBackupRequest.send();
-
- verify(replyProcessor, times(1)).process(any(AdminResponse.class), eq(false));
- }
-
- @Test
- public void sendShouldInvokeDoBackupLocally() throws Exception {
- finishBackupRequest.send();
-
- verify(backupManager, times(1)).doBackup(targetDir, baselineDir, false);
- }
-
- /**
- * Confirms fix for GEODE-3940: Backup can hang while trying to get a lock
- */
- @Test
- public void sendShouldDoBackupInLocalMemberBeforeWaitingForReplies() throws Exception {
- InOrder inOrder = inOrder(backupManager, replyProcessor);
-
- finishBackupRequest.send();
-
- // assert that doBackup which releases BackupLock is invoked before invoking waitForReplies
- inOrder.verify(backupManager, times(1)).doBackup(targetDir, baselineDir, false);
- inOrder.verify(replyProcessor, times(1)).waitForReplies();
+ public void returnsBackupResponse() throws Exception {
+ assertThat(finishBackupRequest.createResponse(dm)).isInstanceOf(BackupResponse.class);
}
@Test
- public void repliesWithFinishBackupResponse() throws Exception {
- finishBackupRequest.send();
+ public void returnsAdminFailureResponseWhenFinishBackupThrowsIOException() throws Exception {
+ when(finishBackup.run()).thenThrow(new IOException());
- verify(replyProcessor, times(1)).process(any(FinishBackupResponse.class), eq(false));
+ assertThat(finishBackupRequest.createResponse(dm)).isInstanceOf(AdminFailureResponse.class);
}
-
- @Test
- public void repliesWithAdminFailureResponseWhenDoBackupThrowsIOException() throws Exception {
- when(backupManager.doBackup(targetDir, baselineDir, false)).thenThrow(new IOException());
-
- finishBackupRequest.send();
-
- verify(replyProcessor, times(1)).process(any(AdminFailureResponse.class), eq(false));
- }
-
- @Test
- public void sendShouldCompleteIfWaitForRepliesThrowsReplyExceptionCausedByCacheClosedException()
- throws Exception {
- doThrow(new ReplyException(new CacheClosedException())).when(replyProcessor).waitForReplies();
-
- finishBackupRequest.send();
- }
-
- @Test
- public void sendShouldThrowIfWaitForRepliesThrowsReplyExceptionNotCausedByCacheClosedException()
- throws Exception {
- doThrow(new ReplyException(new NullPointerException())).when(replyProcessor).waitForReplies();
-
- assertThatThrownBy(() -> finishBackupRequest.send()).isInstanceOf(ReplyException.class)
- .hasCauseInstanceOf(NullPointerException.class);
- }
-
- @Test
- public void sendCompletesWhenWaitForRepliesThrowsInterruptedException() throws Exception {
- doThrow(new InterruptedException()).when(replyProcessor).waitForReplies();
-
- finishBackupRequest.send();
- }
-
}
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 8b4476d..41431a3 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
@@ -36,7 +36,7 @@ public class PrepareBackupFactoryTest {
private PrepareBackupFactory prepareBackupFactory;
- private PrepareBackupResultCollector resultCollector;
+ private BackupResultCollector resultCollector;
private DM dm;
private InternalDistributedMember sender;
private Set<InternalDistributedMember> recipients;
@@ -45,7 +45,7 @@ public class PrepareBackupFactoryTest {
@Before
public void setUp() throws Exception {
- resultCollector = mock(PrepareBackupResultCollector.class);
+ resultCollector = mock(BackupResultCollector.class);
dm = mock(DM.class);
sender = mock(InternalDistributedMember.class);
member = mock(InternalDistributedMember.class);
@@ -60,9 +60,9 @@ public class PrepareBackupFactoryTest {
}
@Test
- public void createReplyProcessorReturnsPrepareBackupReplyProcessor() throws Exception {
+ public void createReplyProcessorReturnsBackupReplyProcessor() throws Exception {
assertThat(prepareBackupFactory.createReplyProcessor(resultCollector, dm, recipients))
- .isInstanceOf(PrepareBackupReplyProcessor.class);
+ .isInstanceOf(BackupReplyProcessor.class);
}
@Test
@@ -78,8 +78,8 @@ public class PrepareBackupFactoryTest {
}
@Test
- public void createPrepareBackupResponseReturnsPrepareBackupResponse() {
- assertThat(prepareBackupFactory.createPrepareBackupResponse(member, null))
- .isInstanceOf(PrepareBackupResponse.class);
+ public void createBackupResponseReturnsBackupResponse() {
+ assertThat(prepareBackupFactory.createBackupResponse(member, null))
+ .isInstanceOf(BackupResponse.class);
}
}
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/PrepareBackupOperationTest.java
index c0267cb..2e4246a 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/PrepareBackupOperationTest.java
@@ -47,7 +47,7 @@ public class PrepareBackupOperationTest {
private InternalDistributedMember member2;
private PrepareBackupFactory prepareBackupFactory;
- private PrepareBackupReplyProcessor prepareBackupReplyProcessor;
+ private BackupReplyProcessor prepareBackupReplyProcessor;
private PrepareBackupRequest prepareBackupRequest;
private PrepareBackup prepareBackup;
@@ -58,7 +58,7 @@ public class PrepareBackupOperationTest {
dm = mock(DM.class);
cache = mock(InternalCache.class);
- prepareBackupReplyProcessor = mock(PrepareBackupReplyProcessor.class);
+ prepareBackupReplyProcessor = mock(BackupReplyProcessor.class);
prepareBackupRequest = mock(PrepareBackupRequest.class);
prepareBackup = mock(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 ae120c8..706ef27 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
@@ -62,8 +62,8 @@ public class PrepareBackupRequestTest {
when(dm.getCache()).thenReturn(cache);
when(dm.getDistributionManagerId()).thenReturn(sender);
when(prepareBackupFactory.createPrepareBackup(eq(sender), eq(cache))).thenReturn(prepareBackup);
- when(prepareBackupFactory.createPrepareBackupResponse(eq(sender), eq(persistentIds)))
- .thenReturn(mock(PrepareBackupResponse.class));
+ when(prepareBackupFactory.createBackupResponse(eq(sender), eq(persistentIds)))
+ .thenReturn(mock(BackupResponse.class));
when(prepareBackup.run()).thenReturn(persistentIds);
prepareBackupRequest =
@@ -78,16 +78,15 @@ public class PrepareBackupRequestTest {
}
@Test
- public void usesFactoryToCreatePrepareBackupResponse() throws Exception {
+ public void usesFactoryToCreateBackupResponse() throws Exception {
prepareBackupRequest.createResponse(dm);
- verify(prepareBackupFactory, times(1)).createPrepareBackupResponse(eq(sender),
- eq(persistentIds));
+ verify(prepareBackupFactory, times(1)).createBackupResponse(eq(sender), eq(persistentIds));
}
@Test
- public void returnsPrepareBackupResponse() throws Exception {
- assertThat(prepareBackupRequest.createResponse(dm)).isInstanceOf(PrepareBackupResponse.class);
+ public void returnsBackupResponse() throws Exception {
+ assertThat(prepareBackupRequest.createResponse(dm)).isInstanceOf(BackupResponse.class);
}
@Test
--
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].