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

prhomberg 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 b2a4da2  GEODE-5185: Correct backwards-compatibility violation in 
'create gateway-receiver'.  (#1920)
b2a4da2 is described below

commit b2a4da289d52a5298a95b038741c1d2d1e9b3594
Author: Patrick Rhomberg <[email protected]>
AuthorDate: Tue May 15 09:44:39 2018 -0700

    GEODE-5185: Correct backwards-compatibility violation in 'create 
gateway-receiver'.  (#1920)
    
    * This commit also refactors the 'create gateway-receiver' command and 
function in accordance with GEODE-4858 and GEODE-5011, concerning persistence 
service and ResultModel respectively.
---
 .../cli/commands/CreateGatewayReceiverCommand.java | 90 +++++++++++++---------
 .../functions/GatewayReceiverCreateFunction.java   | 22 +-----
 .../cli/functions/GatewayReceiverFunctionArgs.java | 30 +++++---
 .../commands/CreateGatewayReceiverCommandTest.java | 67 +++++++++++-----
 .../GatewayReceiverCreateFunctionTest.java         |  1 -
 .../CreateGatewayReceiverCommandDUnitTest.java     |  4 +-
 6 files changed, 124 insertions(+), 90 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommand.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommand.java
index 86d7b60..77c884c 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommand.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommand.java
@@ -15,32 +15,32 @@
 
 package org.apache.geode.management.internal.cli.commands;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.springframework.shell.core.annotation.CliCommand;
 import org.springframework.shell.core.annotation.CliOption;
 
+import org.apache.geode.cache.configuration.CacheConfig;
+import org.apache.geode.cache.configuration.DeclarableType;
 import org.apache.geode.cache.wan.GatewayReceiver;
 import org.apache.geode.distributed.DistributedMember;
-import 
org.apache.geode.distributed.internal.InternalConfigurationPersistenceService;
 import org.apache.geode.management.cli.CliMetaData;
 import org.apache.geode.management.cli.ConverterHint;
-import org.apache.geode.management.cli.Result;
-import org.apache.geode.management.cli.Result.Status;
+import org.apache.geode.management.cli.SingleGfshCommand;
 import org.apache.geode.management.internal.cli.AbstractCliAroundInterceptor;
 import org.apache.geode.management.internal.cli.GfshParseResult;
 import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
 import 
org.apache.geode.management.internal.cli.functions.GatewayReceiverCreateFunction;
 import 
org.apache.geode.management.internal.cli.functions.GatewayReceiverFunctionArgs;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.result.CommandResult;
-import org.apache.geode.management.internal.cli.result.ResultBuilder;
-import org.apache.geode.management.internal.configuration.domain.XmlEntity;
+import org.apache.geode.management.internal.cli.result.model.ResultModel;
 import org.apache.geode.management.internal.security.ResourceOperation;
 import org.apache.geode.security.ResourcePermission;
 
-public class CreateGatewayReceiverCommand extends InternalGfshCommand {
+public class CreateGatewayReceiverCommand extends SingleGfshCommand {
 
   @CliCommand(value = CliStrings.CREATE_GATEWAYRECEIVER,
       help = CliStrings.CREATE_GATEWAYRECEIVER__HELP)
@@ -48,7 +48,7 @@ public class CreateGatewayReceiverCommand extends 
InternalGfshCommand {
       interceptor = 
"org.apache.geode.management.internal.cli.commands.CreateGatewayReceiverCommand$Interceptor")
   @ResourceOperation(resource = ResourcePermission.Resource.CLUSTER,
       operation = ResourcePermission.Operation.MANAGE, target = 
ResourcePermission.Target.GATEWAY)
-  public Result createGatewayReceiver(@CliOption(key = {CliStrings.GROUP, 
CliStrings.GROUPS},
+  public ResultModel createGatewayReceiver(@CliOption(key = {CliStrings.GROUP, 
CliStrings.GROUPS},
       optionContext = ConverterHint.MEMBERGROUP,
       help = CliStrings.CREATE_GATEWAYRECEIVER__GROUP__HELP) String[] onGroups,
 
@@ -80,12 +80,15 @@ public class CreateGatewayReceiverCommand extends 
InternalGfshCommand {
       @CliOption(key = CliStrings.CREATE_GATEWAYRECEIVER__HOSTNAMEFORSENDERS,
           help = CliStrings.CREATE_GATEWAYRECEIVER__HOSTNAMEFORSENDERS__HELP) 
String hostnameForSenders,
 
-      @CliOption(key = {CliStrings.IFNOTEXISTS}, help = 
CliStrings.PUT__PUTIFNOTEXISTS__HELP,
+      @CliOption(key = CliStrings.IFNOTEXISTS, help = 
CliStrings.IFNOTEXISTS_HELP,
           specifiedDefaultValue = "true", unspecifiedDefaultValue = "false") 
Boolean ifNotExists) {
 
-    GatewayReceiverFunctionArgs gatewayReceiverFunctionArgs = new 
GatewayReceiverFunctionArgs(
-        manualStart, startPort, endPort, bindAddress, socketBufferSize, 
maximumTimeBetweenPings,
-        gatewayTransportFilters, hostnameForSenders, ifNotExists);
+    CacheConfig.GatewayReceiver configuration =
+        buildConfiguration(manualStart, startPort, endPort, bindAddress, 
maximumTimeBetweenPings,
+            socketBufferSize, gatewayTransportFilters, hostnameForSenders);
+
+    GatewayReceiverFunctionArgs gatewayReceiverFunctionArgs =
+        new GatewayReceiverFunctionArgs(configuration, ifNotExists);
 
     Set<DistributedMember> membersToCreateGatewayReceiverOn = 
getMembers(onGroups, onMember);
 
@@ -93,36 +96,51 @@ public class CreateGatewayReceiverCommand extends 
InternalGfshCommand {
         executeAndGetFunctionResult(GatewayReceiverCreateFunction.INSTANCE,
             gatewayReceiverFunctionArgs, membersToCreateGatewayReceiverOn);
 
-    CommandResult result = 
ResultBuilder.buildResult(gatewayReceiverCreateResults);
+    ResultModel result = 
ResultModel.createMemberStatusResult(gatewayReceiverCreateResults);
+    result.setConfigObject(configuration);
+    return result;
+  }
 
-    XmlEntity xmlEntity = findXmlEntity(gatewayReceiverCreateResults);
-    // no xml needs to be updated, simply return
-    if (xmlEntity == null) {
-      return result;
-    }
+  @Override
+  public void updateClusterConfig(String group, CacheConfig config, Object 
configObject) {
+    config.setGatewayReceiver((CacheConfig.GatewayReceiver) configObject);
+  }
 
-    boolean allSuccessful = gatewayReceiverCreateResults.stream()
-        .map(CliFunctionResult::isSuccessful).reduce(true, (x, y) -> x && y);
-    if (!allSuccessful) {
-      result.setStatus(Status.ERROR);
-      return result;
+  private CacheConfig.GatewayReceiver buildConfiguration(Boolean manualStart, 
Integer startPort,
+      Integer endPort, String bindAddress, Integer maximumTimeBetweenPings,
+      Integer socketBufferSize, String[] gatewayTransportFilters, String 
hostnameForSenders) {
+    CacheConfig.GatewayReceiver configuration = new 
CacheConfig.GatewayReceiver();
+
+    if (gatewayTransportFilters != null) {
+      List<DeclarableType> filters =
+          Arrays.stream(gatewayTransportFilters).map(fullyQualifiedClassName 
-> {
+            DeclarableType thisFilter = new DeclarableType();
+            thisFilter.setClassName(fullyQualifiedClassName);
+            return thisFilter;
+          }).collect(Collectors.toList());
+      configuration.getGatewayTransportFilter().addAll(filters);
     }
-
-    // has xml but unable to persist to cluster config, need to print warning 
message and return
-    if (onMember != null || getConfigurationPersistenceService() == null) {
-      result.setCommandPersisted(false);
-      return result;
+    if (startPort != null) {
+      configuration.setStartPort(String.valueOf(startPort));
     }
-
-    // update cluster config
-    ((InternalConfigurationPersistenceService) 
getConfigurationPersistenceService())
-        .addXmlEntity(xmlEntity, onGroups);
-    return result;
+    if (endPort != null) {
+      configuration.setEndPort(String.valueOf(endPort));
+    }
+    configuration.setBindAddress(bindAddress);
+    if (maximumTimeBetweenPings != null) {
+      
configuration.setMaximumTimeBetweenPings(String.valueOf(maximumTimeBetweenPings));
+    }
+    if (socketBufferSize != null) {
+      configuration.setSocketBufferSize(String.valueOf(socketBufferSize));
+    }
+    configuration.setHostnameForSenders(hostnameForSenders);
+    configuration.setManualStart(manualStart);
+    return configuration;
   }
 
   public static class Interceptor extends AbstractCliAroundInterceptor {
     @Override
-    public Result preExecution(GfshParseResult parseResult) {
+    public ResultModel preExecution(GfshParseResult parseResult) {
       Integer startPort = (Integer) parseResult.getParamValue("start-port");
       Integer endPort = (Integer) parseResult.getParamValue("end-port");
 
@@ -135,10 +153,10 @@ public class CreateGatewayReceiverCommand extends 
InternalGfshCommand {
       }
 
       if (startPort > endPort) {
-        return ResultBuilder.createUserErrorResult("start-port must be smaller 
than end-port.");
+        return ResultModel.createError("start-port must be smaller than 
end-port.");
       }
 
-      return ResultBuilder.createInfoResult("");
+      return ResultModel.createInfo("");
     }
   }
 }
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
index 286b5a5..0a0a2e9 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
@@ -14,8 +14,6 @@
  */
 package org.apache.geode.management.internal.cli.functions;
 
-import java.util.HashMap;
-import java.util.Map;
 
 import joptsimple.internal.Strings;
 import org.apache.logging.log4j.Logger;
@@ -28,10 +26,8 @@ import org.apache.geode.cache.wan.GatewayReceiverFactory;
 import org.apache.geode.cache.wan.GatewayTransportFilter;
 import org.apache.geode.internal.ClassPathLoader;
 import org.apache.geode.internal.cache.execute.InternalFunction;
-import org.apache.geode.internal.cache.xmlcache.CacheXml;
 import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.configuration.domain.XmlEntity;
 
 /**
  * The function to a create GatewayReceiver using given configuration 
parameters.
@@ -80,8 +76,7 @@ public class GatewayReceiverCreateFunction implements 
InternalFunction {
       GatewayReceiver createdGatewayReceiver =
           createGatewayReceiver(cache, gatewayReceiverCreateArgs);
 
-      XmlEntity xmlEntity = getXmlEntity(gatewayReceiverCreateArgs);
-      resultSender.lastResult(new CliFunctionResult(memberNameOrId, xmlEntity,
+      resultSender.lastResult(new CliFunctionResult(memberNameOrId, true,
           CliStrings.format(
               
CliStrings.CREATE_GATEWAYRECEIVER__MSG__GATEWAYRECEIVER_CREATED_ON_0_ONPORT_1,
               memberNameOrId, 
Integer.toString(createdGatewayReceiver.getPort()))));
@@ -95,21 +90,6 @@ public class GatewayReceiverCreateFunction implements 
InternalFunction {
 
   }
 
-  XmlEntity getXmlEntity(GatewayReceiverFunctionArgs 
gatewayReceiverCreateArgs) {
-    Map<String, String> attributes = new HashMap<>();
-    if (gatewayReceiverCreateArgs.getStartPort() != null) {
-      attributes.put("start-port", 
gatewayReceiverCreateArgs.getStartPort().toString());
-    }
-    if (gatewayReceiverCreateArgs.getEndPort() != null) {
-      attributes.put("end-port", 
gatewayReceiverCreateArgs.getEndPort().toString());
-    }
-    if (gatewayReceiverCreateArgs.getBindAddress() != null) {
-      attributes.put("bind-address", 
gatewayReceiverCreateArgs.getBindAddress());
-    }
-    return 
XmlEntity.builder().withType(CacheXml.GATEWAY_RECEIVER).withAttributes(attributes)
-        .build();
-  }
-
   /** GatewayReceiver creation happens here. */
   GatewayReceiver createGatewayReceiver(Cache cache,
       GatewayReceiverFunctionArgs gatewayReceiverCreateArgs)
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
index e3e6bf7..67bdd94 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
@@ -16,6 +16,9 @@ package org.apache.geode.management.internal.cli.functions;
 
 import java.io.Serializable;
 
+import org.apache.geode.cache.configuration.CacheConfig.GatewayReceiver;
+import org.apache.geode.cache.configuration.DeclarableType;
+
 /**
  * This class stores the arguments provided in the create gateway-receiver 
command.
  */
@@ -40,17 +43,22 @@ public class GatewayReceiverFunctionArgs implements 
Serializable {
 
   private final Boolean ifNotExists;
 
-  public GatewayReceiverFunctionArgs(Boolean manualStart, Integer startPort, 
Integer endPort,
-      String bindAddress, Integer socketBufferSize, Integer 
maximumTimeBetweenPings,
-      String[] gatewayTransportFilters, String hostnameForSenders, Boolean 
ifNotExists) {
-    this.manualStart = manualStart;
-    this.startPort = startPort;
-    this.endPort = endPort;
-    this.bindAddress = bindAddress;
-    this.socketBufferSize = socketBufferSize;
-    this.maximumTimeBetweenPings = maximumTimeBetweenPings;
-    this.gatewayTransportFilters = gatewayTransportFilters;
-    this.hostnameForSenders = hostnameForSenders;
+  public GatewayReceiverFunctionArgs(GatewayReceiver configuration, Boolean 
ifNotExists) {
+    this.manualStart = configuration.isManualStart();
+    this.startPort =
+        configuration.getStartPort() != null ? 
Integer.valueOf(configuration.getStartPort()) : null;
+    this.endPort =
+        configuration.getEndPort() != null ? 
Integer.valueOf(configuration.getEndPort()) : null;
+    this.bindAddress = configuration.getBindAddress();
+    this.socketBufferSize = configuration.getSocketBufferSize() != null
+        ? Integer.valueOf(configuration.getSocketBufferSize()) : null;
+    this.maximumTimeBetweenPings = configuration.getMaximumTimeBetweenPings() 
!= null
+        ? Integer.valueOf(configuration.getMaximumTimeBetweenPings()) : null;
+    this.gatewayTransportFilters = configuration.getGatewayTransportFilter() 
!= null
+        ? 
configuration.getGatewayTransportFilter().stream().map(DeclarableType::getClassName)
+            .toArray(String[]::new)
+        : null;
+    this.hostnameForSenders = configuration.getHostnameForSenders();
     this.ifNotExists = ifNotExists;
   }
 
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommandTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommandTest.java
index 48a109c..d923ece 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommandTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommandTest.java
@@ -21,6 +21,7 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
 import java.util.ArrayList;
@@ -36,7 +37,7 @@ import 
org.apache.geode.distributed.internal.InternalConfigurationPersistenceSer
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.management.internal.cli.GfshParseResult;
 import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
-import org.apache.geode.management.internal.configuration.domain.XmlEntity;
+import org.apache.geode.management.internal.cli.i18n.CliStrings;
 import org.apache.geode.test.junit.categories.UnitTest;
 import org.apache.geode.test.junit.rules.GfshParserRule;
 
@@ -46,19 +47,21 @@ public class CreateGatewayReceiverCommandTest {
 
   @ClassRule
   public static GfshParserRule gfsh = new GfshParserRule();
+  private final String NOT_PERSISTED_ON_MEMBER =
+      "Configuration change is not persisted because the command is executed 
on specific member";
+  private final String NOT_PERSISTED_CC_NOT_RUNNING =
+      "Cluster configuration service is not running. Configuration change is 
not persisted";
 
   private CreateGatewayReceiverCommand command;
   private InternalCache cache;
   private List<CliFunctionResult> functionResults;
   private InternalConfigurationPersistenceService ccService;
   private CliFunctionResult result1;
-  private XmlEntity xmlEntity;
 
   @Before
   public void before() {
     command = spy(CreateGatewayReceiverCommand.class);
     ccService = mock(InternalConfigurationPersistenceService.class);
-    xmlEntity = mock(XmlEntity.class);
     cache = mock(InternalCache.class);
     doReturn(cache).when(command).getCache();
     doReturn(ccService).when(command).getConfigurationPersistenceService();
@@ -71,14 +74,26 @@ public class CreateGatewayReceiverCommandTest {
   public void testDefaultValues() {
     GfshParseResult parseResult = gfsh.parse("create gateway-receiver");
 
-    assertThat(parseResult.getParamValue("start-port")).isNull();
-    assertThat(parseResult.getParamValue("end-port")).isNull();
-    assertThat(parseResult.getParamValue("socket-buffer-size")).isNull();
+    assertThat(parseResult.getParamValue(CliStrings.MEMBER)).isNull();
+    assertThat(parseResult.getParamValue(CliStrings.GROUP)).isNull();
+    
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__MANUALSTART)).isNull();
+    
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__STARTPORT)).isNull();
+    
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__ENDPORT)).isNull();
+    
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__BINDADDRESS)).isNull();
+    
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__MAXTIMEBETWEENPINGS))
+        .isNull();
+    
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__SOCKETBUFFERSIZE))
+        .isNull();
+    
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__GATEWAYTRANSPORTFILTER))
+        .isNull();
+    
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__HOSTNAMEFORSENDERS))
+        .isNull();
+    
assertThat(parseResult.getParamValue(CliStrings.IFNOTEXISTS)).isEqualTo(false);
   }
 
 
   @Test
-  public void endMustBeLargerThanStart() {
+  public void endPortMustBeLargerThanStartPort() {
     gfsh.executeAndAssertThat(command, "create gateway-receiver 
--end-port=1").statusIsError()
         .containsOutput("start-port must be smaller than end-port");
 
@@ -90,38 +105,52 @@ public class CreateGatewayReceiverCommandTest {
   }
 
   @Test
-  public void whenNoCCService() {
+  public void 
gatewayReceiverCanBeCreatedButIsNotPersistedWithoutConfigurationService() {
     doReturn(mock(Set.class)).when(command).getMembers(any(), any());
     doReturn(null).when(command).getConfigurationPersistenceService();
-    result1 = new CliFunctionResult("member", xmlEntity, "result1");
+    result1 = new CliFunctionResult("member", true, "result1");
     functionResults.add(result1);
     gfsh.executeAndAssertThat(command, "create 
gateway-receiver").statusIsSuccess()
-        .hasFailToPersistError();
-    verify(ccService, never()).deleteXmlEntity(any(), any());
+        .containsOutput(NOT_PERSISTED_CC_NOT_RUNNING);
+    verify(ccService, never()).addXmlEntity(any(), any());
+    verify(ccService, never()).updateCacheConfig(any(), any());
   }
 
   @Test
-  public void whenCommandOnMember() {
+  public void gatewayReceiverIsCreatedButNotPersistedWithMemberOption() {
     doReturn(mock(Set.class)).when(command).getMembers(any(), any());
     doReturn(ccService).when(command).getConfigurationPersistenceService();
-    result1 = new CliFunctionResult("member", xmlEntity, "result1");
+    result1 = new CliFunctionResult("member", true, "result1");
     functionResults.add(result1);
     gfsh.executeAndAssertThat(command, "create gateway-receiver 
--member=xyz").statusIsSuccess()
-        .hasFailToPersistError();
-    verify(ccService, never()).deleteXmlEntity(any(), any());
+        .containsOutput(NOT_PERSISTED_ON_MEMBER);
+    verify(ccService, never()).addXmlEntity(any(), any());
+    verify(ccService, never()).updateCacheConfig(any(), any());
   }
 
   @Test
-  public void whenNoXml() {
+  public void configurationIsNotPersistedWhenCreationOnOnlyMemberFails() {
     doReturn(mock(Set.class)).when(command).getMembers(any(), any());
     doReturn(ccService).when(command).getConfigurationPersistenceService();
     result1 = new CliFunctionResult("member", false, "result1");
     functionResults.add(result1);
 
     // does not delete because command failed, so hasNoFailToPersistError 
should still be true
-    gfsh.executeAndAssertThat(command, "create 
gateway-receiver").statusIsError()
-        .hasNoFailToPersistError();
-    verify(ccService, never()).deleteXmlEntity(any(), any());
+    gfsh.executeAndAssertThat(command, "create 
gateway-receiver").statusIsError();
+    verify(ccService, never()).updateCacheConfig(any(), any());
   }
 
+  @Test
+  public void configurationIsPersistedWhenCreationOnAnyMemberFails() {
+    doReturn(mock(Set.class)).when(command).getMembers(any(), any());
+    doReturn(ccService).when(command).getConfigurationPersistenceService();
+    result1 = new CliFunctionResult("member", false, "result1");
+    functionResults.add(result1);
+    CliFunctionResult result2 = new CliFunctionResult("member", true, 
"result2");
+    functionResults.add(result2);
+
+    // does not delete because command failed, so hasNoFailToPersistError 
should still be true
+    gfsh.executeAndAssertThat(command, "create 
gateway-receiver").statusIsSuccess();
+    verify(ccService, times(1)).updateCacheConfig(any(), any());
+  }
 }
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunctionTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunctionTest.java
index 99bfdeb..f134b7b 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunctionTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunctionTest.java
@@ -55,7 +55,6 @@ public class GatewayReceiverCreateFunctionTest {
     doCallRealMethod().when(function).execute(context);
     doReturn(false).when(function).gatewayReceiverExists(any());
     doReturn(receiver).when(function).createGatewayReceiver(cache, args);
-    doReturn(null).when(function).getXmlEntity(args);
 
     doReturn(5555).when(receiver).getPort();
   }
diff --git 
a/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/wancommand/CreateGatewayReceiverCommandDUnitTest.java
 
b/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/wancommand/CreateGatewayReceiverCommandDUnitTest.java
index 4b1ac2f..33847b8 100644
--- 
a/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/wancommand/CreateGatewayReceiverCommandDUnitTest.java
+++ 
b/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/wancommand/CreateGatewayReceiverCommandDUnitTest.java
@@ -96,7 +96,7 @@ public class CreateGatewayReceiverCommandDUnitTest {
   }
 
   @Test
-  public void commandFailsIfAnyReceiverFailsToCreateWithoutSkipOption() {
+  public void commandSucceedsIfAnyReceiverFailsToCreateEvenWithoutSkipOption() 
{
     // Create a receiver on one server (but not all) so that the command to 
create receivers on all
     // will fail on one (but not all). Such a failure should be reported as a 
failure to GFSH,
     // unless --skip-if-exists is present.
@@ -109,7 +109,7 @@ public class CreateGatewayReceiverCommandDUnitTest {
         .tableHasColumnWithExactValuesInAnyOrder("Member", SERVER_1)
         .tableHasColumnWithValuesContaining("Status",
             "GatewayReceiver created on member \"" + SERVER_1 + "\"");
-    gfsh.executeAndAssertThat(createOnBoth).statusIsError()
+    gfsh.executeAndAssertThat(createOnBoth).statusIsSuccess()
         .tableHasColumnWithExactValuesInAnyOrder("Member", SERVER_1, SERVER_2)
         .tableHasColumnWithValuesContaining("Status",
             "ERROR: java.lang.IllegalStateException: "

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to