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

jjramos 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 b2e3884  GEODE-6519: Fix CreateGatewaySenderCommand Flags (#3298)
b2e3884 is described below

commit b2e388469085d0e9ada2cc988d41815cfbe8ec56
Author: Juan José Ramos <jujora...@users.noreply.github.com>
AuthorDate: Thu Mar 14 09:05:22 2019 +0000

    GEODE-6519: Fix CreateGatewaySenderCommand Flags (#3298)
    
    - Fixed minor warnings.
    - Parameter `manual-start` from `create gateway-sender` command is set
    as `false` by default when specified without a value.
    - Parameters `parallel`, `disk-synchronous`, `enable-persistence` and
    `enable-batch-conflation` from `create gateway-sender` command are set
    as `true` by default when specified without a value.
---
 .../cli/commands/CreateGatewaySenderCommand.java   |  38 ++++--
 .../management/internal/cli/i18n/CliStrings.java   |   2 +
 .../commands/CreateGatewaySenderCommandTest.java   | 100 ++++++++++++--
 ...CreateDestroyGatewaySenderCommandDUnitTest.java | 146 +++++++++++----------
 4 files changed, 197 insertions(+), 89 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewaySenderCommand.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewaySenderCommand.java
index 6f8921a..c09a313 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewaySenderCommand.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewaySenderCommand.java
@@ -51,25 +51,32 @@ public class CreateGatewaySenderCommand extends 
SingleGfshCommand {
       interceptor = 
"org.apache.geode.management.internal.cli.commands.CreateGatewaySenderCommand$Interceptor")
   @ResourceOperation(resource = ResourcePermission.Resource.CLUSTER,
       operation = ResourcePermission.Operation.MANAGE, target = 
ResourcePermission.Target.GATEWAY)
-  public ResultModel createGatewaySender(@CliOption(key = {CliStrings.GROUP, 
CliStrings.GROUPS},
-      optionContext = ConverterHint.MEMBERGROUP,
-      help = CliStrings.CREATE_GATEWAYSENDER__GROUP__HELP) String[] onGroups,
+  public ResultModel createGatewaySender(
+
+      @CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
+          optionContext = ConverterHint.MEMBERGROUP,
+          help = CliStrings.CREATE_GATEWAYSENDER__GROUP__HELP) String[] 
onGroups,
 
       @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
           optionContext = ConverterHint.MEMBERIDNAME,
           help = CliStrings.CREATE_GATEWAYSENDER__MEMBER__HELP) String[] 
onMember,
 
-      @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__ID, mandatory = true,
+      @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__ID,
+          mandatory = true,
           help = CliStrings.CREATE_GATEWAYSENDER__ID__HELP) String id,
 
-      @CliOption(key = 
CliStrings.CREATE_GATEWAYSENDER__REMOTEDISTRIBUTEDSYSTEMID, mandatory = true,
+      @CliOption(key = 
CliStrings.CREATE_GATEWAYSENDER__REMOTEDISTRIBUTEDSYSTEMID,
+          mandatory = true,
           help = 
CliStrings.CREATE_GATEWAYSENDER__REMOTEDISTRIBUTEDSYSTEMID__HELP) Integer 
remoteDistributedSystemId,
 
-      @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__PARALLEL, 
specifiedDefaultValue = "true",
+      @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__PARALLEL,
+          specifiedDefaultValue = "true",
           unspecifiedDefaultValue = "false",
           help = CliStrings.CREATE_GATEWAYSENDER__PARALLEL__HELP) boolean 
parallel,
 
-      @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__MANUALSTART,
+      // Users must avoid this feature, it might cause data loss and other 
issues during startup.
+      @Deprecated @CliOption(key = 
CliStrings.CREATE_GATEWAYSENDER__MANUALSTART,
+          unspecifiedDefaultValue = "false",
           help = CliStrings.CREATE_GATEWAYSENDER__MANUALSTART__HELP) Boolean 
manualStart,
 
       @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__SOCKETBUFFERSIZE,
@@ -79,6 +86,8 @@ public class CreateGatewaySenderCommand extends 
SingleGfshCommand {
           help = CliStrings.CREATE_GATEWAYSENDER__SOCKETREADTIMEOUT__HELP) 
Integer socketReadTimeout,
 
       @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__ENABLEBATCHCONFLATION,
+          specifiedDefaultValue = "true",
+          unspecifiedDefaultValue = "false",
           help = CliStrings.CREATE_GATEWAYSENDER__ENABLEBATCHCONFLATION__HELP) 
Boolean enableBatchConflation,
 
       @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__BATCHSIZE,
@@ -88,12 +97,16 @@ public class CreateGatewaySenderCommand extends 
SingleGfshCommand {
           help = CliStrings.CREATE_GATEWAYSENDER__BATCHTIMEINTERVAL__HELP) 
Integer batchTimeInterval,
 
       @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__ENABLEPERSISTENCE,
+          specifiedDefaultValue = "true",
+          unspecifiedDefaultValue = "false",
           help = CliStrings.CREATE_GATEWAYSENDER__ENABLEPERSISTENCE__HELP) 
Boolean enablePersistence,
 
       @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__DISKSTORENAME,
           help = CliStrings.CREATE_GATEWAYSENDER__DISKSTORENAME__HELP) String 
diskStoreName,
 
       @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__DISKSYNCHRONOUS,
+          specifiedDefaultValue = "true",
+          unspecifiedDefaultValue = "true",
           help = CliStrings.CREATE_GATEWAYSENDER__DISKSYNCHRONOUS__HELP) 
Boolean diskSynchronous,
 
       @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__MAXQUEUEMEMORY,
@@ -205,18 +218,19 @@ public class CreateGatewaySenderCommand extends 
SingleGfshCommand {
   }
 
   private String int2string(Integer i) {
-    return Optional.ofNullable(i).map(in -> in.toString()).orElse(null);
+    return Optional.ofNullable(i).map(String::valueOf).orElse(null);
   }
 
   public static class Interceptor extends AbstractCliAroundInterceptor {
     @Override
     public Result preExecution(GfshParseResult parseResult) {
-      Integer dispatcherThreads =
-          (Integer) 
parseResult.getParamValue(CliStrings.CREATE_GATEWAYSENDER__DISPATCHERTHREADS);
-      OrderPolicy orderPolicy =
-          (OrderPolicy) 
parseResult.getParamValue(CliStrings.CREATE_GATEWAYSENDER__ORDERPOLICY);
       Boolean parallel =
           (Boolean) 
parseResult.getParamValue(CliStrings.CREATE_GATEWAYSENDER__PARALLEL);
+      OrderPolicy orderPolicy =
+          (OrderPolicy) 
parseResult.getParamValue(CliStrings.CREATE_GATEWAYSENDER__ORDERPOLICY);
+      Integer dispatcherThreads =
+          (Integer) 
parseResult.getParamValue(CliStrings.CREATE_GATEWAYSENDER__DISPATCHERTHREADS);
+
       if (dispatcherThreads != null && dispatcherThreads > 1 && orderPolicy == 
null) {
         return ResultBuilder.createUserErrorResult(
             "Must specify --order-policy when --dispatcher-threads is larger 
than 1.");
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
index c0c5d05..f6b5d1d 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
@@ -2163,7 +2163,9 @@ public class CliStrings {
   public static final String CREATE_GATEWAYSENDER__PARALLEL = "parallel";
   public static final String CREATE_GATEWAYSENDER__PARALLEL__HELP =
       "Whether this is Parallel GatewaySender.";
+  @Deprecated
   public static final String CREATE_GATEWAYSENDER__MANUALSTART = 
"manual-start";
+  @Deprecated
   public static final String CREATE_GATEWAYSENDER__MANUALSTART__HELP =
       "Whether manual start is to be enabled or the sender will start 
automatically after creation.\n"
           + "Deprecated: Since Geode 1.4. Manual start of senders is 
deprecated and will be removed in a later release.";
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewaySenderCommandTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewaySenderCommandTest.java
index f708efe..706215b 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewaySenderCommandTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewaySenderCommandTest.java
@@ -21,6 +21,7 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -51,20 +52,18 @@ public class CreateGatewaySenderCommandTest {
   public static GfshParserRule gfsh = new GfshParserRule();
 
   private CreateGatewaySenderCommand command;
-  private InternalCache cache;
   private List<CliFunctionResult> functionResults;
   private CliFunctionResult cliFunctionResult;
-  ArgumentCaptor<GatewaySenderFunctionArgs> argsArgumentCaptor =
+  private ArgumentCaptor<GatewaySenderFunctionArgs> argsArgumentCaptor =
       ArgumentCaptor.forClass(GatewaySenderFunctionArgs.class);
 
   @Before
   public void before() {
     command = spy(CreateGatewaySenderCommand.class);
-    cache = mock(InternalCache.class);
+    InternalCache cache = mock(InternalCache.class);
     doReturn(cache).when(command).getCache();
     functionResults = new ArrayList<>();
-    doReturn(functionResults).when(command).executeAndGetFunctionResult(any(),
-        any(), any(Set.class));
+    doReturn(functionResults).when(command).executeAndGetFunctionResult(any(), 
any(), any());
   }
 
   @Test
@@ -95,7 +94,7 @@ public class CreateGatewaySenderCommandTest {
   }
 
   @Test
-  public void paralleAndThreadOrderPolicy() {
+  public void parallelAndThreadOrderPolicy() {
     gfsh.executeAndAssertThat(command,
         "create gateway-sender --id=ln --remote-distributed-system-id=1 "
             + "--parallel --order-policy=THREAD")
@@ -135,7 +134,7 @@ public class CreateGatewaySenderCommandTest {
             + "--gateway-event-filter=test1,test2 
--gateway-transport-filter=test1,test2")
         .statusIsSuccess();
     verify(command).executeAndGetFunctionResult(any(), 
argsArgumentCaptor.capture(),
-        any(Set.class));
+        any());
     assertThat(argsArgumentCaptor.getValue().getOrderPolicy()).isEqualTo(
         GatewaySender.OrderPolicy.THREAD.toString());
     
assertThat(argsArgumentCaptor.getValue().getRemoteDistributedSystemId()).isEqualTo(1);
@@ -170,9 +169,9 @@ public class CreateGatewaySenderCommandTest {
     // Create a set of mixed version members
     Set<DistributedMember> members = new HashSet<>();
     InternalDistributedMember currentVersionMember = 
mock(InternalDistributedMember.class);
-    doReturn(Version.CURRENT).when(currentVersionMember).getVersionObject();
+    when(currentVersionMember.getVersionObject()).thenReturn(Version.CURRENT);
     InternalDistributedMember oldVersionMember = 
mock(InternalDistributedMember.class);
-    doReturn(Version.GEODE_1_4_0).when(oldVersionMember).getVersionObject();
+    when(oldVersionMember.getVersionObject()).thenReturn(Version.GEODE_1_4_0);
     members.add(currentVersionMember);
     members.add(oldVersionMember);
     doReturn(members).when(command).getMembers(any(), any());
@@ -182,4 +181,87 @@ public class CreateGatewaySenderCommandTest {
         "create gateway-sender --id=1 
--remote-distributed-system-id=1").statusIsError()
         
.containsOutput(CliStrings.CREATE_GATEWAYSENDER__MSG__CAN_NOT_CREATE_DIFFERENT_VERSIONS);
   }
+
+  @Test
+  public void testDefaultArguments() {
+    doReturn(mock(Set.class)).when(command).getMembers(any(), any());
+    cliFunctionResult =
+        new CliFunctionResult("member", CliFunctionResult.StatusState.OK, 
"cliFunctionResult");
+    functionResults.add(cliFunctionResult);
+    gfsh.executeAndAssertThat(command,
+        "create gateway-sender --id=testGateway 
--remote-distributed-system-id=1")
+        .statusIsSuccess();
+    verify(command).executeAndGetFunctionResult(any(), 
argsArgumentCaptor.capture(), any());
+
+    assertThat(argsArgumentCaptor.getValue().getId()).isEqualTo("testGateway");
+    
assertThat(argsArgumentCaptor.getValue().getRemoteDistributedSystemId()).isEqualTo(1);
+    assertThat(argsArgumentCaptor.getValue().isParallel()).isFalse();
+    assertThat(argsArgumentCaptor.getValue().isManualStart()).isFalse();
+    assertThat(argsArgumentCaptor.getValue().getSocketBufferSize()).isNull();
+    assertThat(argsArgumentCaptor.getValue().getSocketReadTimeout()).isNull();
+    
assertThat(argsArgumentCaptor.getValue().isBatchConflationEnabled()).isFalse();
+    assertThat(argsArgumentCaptor.getValue().getBatchSize()).isNull();
+    assertThat(argsArgumentCaptor.getValue().getBatchTimeInterval()).isNull();
+    assertThat(argsArgumentCaptor.getValue().getBatchSize()).isNull();
+    assertThat(argsArgumentCaptor.getValue().getBatchSize()).isNull();
+    assertThat(argsArgumentCaptor.getValue().isPersistenceEnabled()).isFalse();
+    assertThat(argsArgumentCaptor.getValue().getDiskStoreName()).isNull();
+    assertThat(argsArgumentCaptor.getValue().isDiskSynchronous()).isTrue();
+    assertThat(argsArgumentCaptor.getValue().getMaxQueueMemory()).isNull();
+    assertThat(argsArgumentCaptor.getValue().getAlertThreshold()).isNull();
+    assertThat(argsArgumentCaptor.getValue().getDispatcherThreads()).isNull();
+    assertThat(argsArgumentCaptor.getValue().getOrderPolicy()).isNull();
+    
assertThat(argsArgumentCaptor.getValue().getGatewayEventFilter()).isNotNull().isEmpty();
+    
assertThat(argsArgumentCaptor.getValue().getGatewayTransportFilter()).isNotNull().isEmpty();
+  }
+
+  @Test
+  public void booleanArgumentsShouldBeSetAsTrueWhenSpecifiedWithoutValue() {
+    doReturn(mock(Set.class)).when(command).getMembers(any(), any());
+    cliFunctionResult =
+        new CliFunctionResult("member", CliFunctionResult.StatusState.OK, 
"cliFunctionResult");
+    functionResults.add(cliFunctionResult);
+    gfsh.executeAndAssertThat(command,
+        "create gateway-sender --member=xyz --id=testGateway 
--remote-distributed-system-id=1"
+            + " --parallel"
+            + " --manual-start"
+            + " --disk-synchronous"
+            + " --enable-persistence"
+            + " --enable-batch-conflation")
+        .statusIsSuccess();
+    verify(command).executeAndGetFunctionResult(any(), 
argsArgumentCaptor.capture(), any());
+
+    assertThat(argsArgumentCaptor.getValue().getId()).isEqualTo("testGateway");
+    
assertThat(argsArgumentCaptor.getValue().getRemoteDistributedSystemId()).isEqualTo(1);
+    assertThat(argsArgumentCaptor.getValue().isParallel()).isTrue();
+    assertThat(argsArgumentCaptor.getValue().isManualStart()).isNull();
+    assertThat(argsArgumentCaptor.getValue().isDiskSynchronous()).isTrue();
+    assertThat(argsArgumentCaptor.getValue().isPersistenceEnabled()).isTrue();
+    
assertThat(argsArgumentCaptor.getValue().isBatchConflationEnabled()).isTrue();
+  }
+
+  @Test
+  public void booleanArgumentsShouldUseTheCustomParameterValueWhenSpecified() {
+    doReturn(mock(Set.class)).when(command).getMembers(any(), any());
+    cliFunctionResult =
+        new CliFunctionResult("member", CliFunctionResult.StatusState.OK, 
"cliFunctionResult");
+    functionResults.add(cliFunctionResult);
+    gfsh.executeAndAssertThat(command,
+        "create gateway-sender --member=xyz --id=testGateway 
--remote-distributed-system-id=1"
+            + " --parallel=false"
+            + " --manual-start=false"
+            + " --disk-synchronous=false"
+            + " --enable-persistence=false"
+            + " --enable-batch-conflation=false")
+        .statusIsSuccess();
+    verify(command).executeAndGetFunctionResult(any(), 
argsArgumentCaptor.capture(), any());
+
+    assertThat(argsArgumentCaptor.getValue().getId()).isEqualTo("testGateway");
+    
assertThat(argsArgumentCaptor.getValue().getRemoteDistributedSystemId()).isEqualTo(1);
+    assertThat(argsArgumentCaptor.getValue().isParallel()).isFalse();
+    assertThat(argsArgumentCaptor.getValue().isManualStart()).isFalse();
+    assertThat(argsArgumentCaptor.getValue().isDiskSynchronous()).isFalse();
+    assertThat(argsArgumentCaptor.getValue().isPersistenceEnabled()).isFalse();
+    
assertThat(argsArgumentCaptor.getValue().isBatchConflationEnabled()).isFalse();
+  }
 }
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/CreateDestroyGatewaySenderCommandDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/CreateDestroyGatewaySenderCommandDUnitTest.java
index f5000d2..988dddf 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/CreateDestroyGatewaySenderCommandDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/CreateDestroyGatewaySenderCommandDUnitTest.java
@@ -35,6 +35,7 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import org.apache.geode.cache.wan.GatewaySender;
+import org.apache.geode.distributed.internal.InternalLocator;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 import org.apache.geode.test.dunit.rules.ClusterStartupRule;
 import org.apache.geode.test.dunit.rules.MemberVM;
@@ -42,7 +43,7 @@ import org.apache.geode.test.junit.categories.WanTest;
 import org.apache.geode.test.junit.rules.GfshCommandRule;
 import org.apache.geode.test.junit.rules.VMProvider;
 
-@Category({WanTest.class})
+@Category(WanTest.class)
 @SuppressWarnings("serial")
 public class CreateDestroyGatewaySenderCommandDUnitTest implements 
Serializable {
 
@@ -66,7 +67,7 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
   private static MemberVM server3;
 
   @BeforeClass
-  public static void beforeClass() throws Exception {
+  public static void beforeClass() {
     Properties props = new Properties();
     props.setProperty(DISTRIBUTED_SYSTEM_ID, "" + 1);
     locatorSite1 = clusterStartupRule.startLocatorVM(1, props);
@@ -94,34 +95,40 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
    * GatewaySender with all default attributes
    */
   @Test
-  public void testCreateDestroyGatewaySenderWithDefault() throws Exception {
-    
gfsh.executeAndAssertThat(CREATE).statusIsSuccess().tableHasColumnWithExactValuesInAnyOrder(
-        "Message", "GatewaySender \"ln\" created on \"" + SERVER_3 + "\"",
-        "GatewaySender \"ln\" created on \"" + SERVER_4 + "\"",
-        "GatewaySender \"ln\" created on \"" + SERVER_5 + "\"");
+  public void testCreateDestroyGatewaySenderWithDefault() {
+    gfsh.executeAndAssertThat(CREATE).statusIsSuccess()
+        .hasTableSection().hasRowSize(3).hasColumn("Message").containsOnly(
+            "GatewaySender \"ln\" created on \"" + SERVER_3 + "\"",
+            "GatewaySender \"ln\" created on \"" + SERVER_4 + "\"",
+            "GatewaySender \"ln\" created on \"" + SERVER_5 + "\"");
 
     VMProvider.invokeInEveryMember(() -> verifySenderState("ln", true, false), 
server1, server2,
         server3);
 
     locatorSite1.invoke(() -> {
-      String xml = 
ClusterStartupRule.getLocator().getConfigurationPersistenceService()
-          .getConfiguration("cluster").getCacheXmlContent();
-      assertThat(xml).contains("<gateway-sender id=\"ln\" 
remote-distributed-system-id=\"2\""
-          + " parallel=\"false\"/>");
+      InternalLocator locator = ClusterStartupRule.getLocator();
+      assertThat(locator).isNotNull();
+      String xml = 
locator.getConfigurationPersistenceService().getConfiguration("cluster")
+          .getCacheXmlContent();
+      assertThat(xml).contains(
+          "<gateway-sender id=\"ln\" remote-distributed-system-id=\"2\" 
parallel=\"false\" manual-start=\"false\" enable-batch-conflation=\"false\" 
enable-persistence=\"false\" disk-synchronous=\"true\"/>");
     });
 
     // destroy gateway sender and verify AEQs cleaned up
-    
gfsh.executeAndAssertThat(DESTROY).statusIsSuccess().tableHasColumnWithExactValuesInAnyOrder(
-        "Message", "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"",
-        "GatewaySender \"ln\" destroyed on \"" + SERVER_4 + "\"",
-        "GatewaySender \"ln\" destroyed on \"" + SERVER_5 + "\"");
+    gfsh.executeAndAssertThat(DESTROY).statusIsSuccess()
+        .hasTableSection().hasRowSize(3).hasColumn("Message").containsOnly(
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"",
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_4 + "\"",
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_5 + "\"");
 
     VMProvider.invokeInEveryMember(() -> verifySenderDoesNotExist("ln", 
false), server1, server2,
         server3);
 
     locatorSite1.invoke(() -> {
-      String xml = 
ClusterStartupRule.getLocator().getConfigurationPersistenceService()
-          .getConfiguration("cluster").getCacheXmlContent();
+      InternalLocator locator = ClusterStartupRule.getLocator();
+      assertThat(locator).isNotNull();
+      String xml = 
locator.getConfigurationPersistenceService().getConfiguration("cluster")
+          .getCacheXmlContent();
       assertThat(xml).doesNotContain("gateway-sender id=\"ln\"");
     });
   }
@@ -130,7 +137,7 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
    * GatewaySender with given attribute values +
    */
   @Test
-  public void testCreateDestroyGatewaySender() throws Exception {
+  public void testCreateDestroyGatewaySender() {
     int socketReadTimeout = GatewaySender.MINIMUM_SOCKET_READ_TIMEOUT + 1000;
     String command = CliStrings.CREATE_GATEWAYSENDER + " --" + 
CliStrings.CREATE_GATEWAYSENDER__ID
         + "=ln" + " --" + 
CliStrings.CREATE_GATEWAYSENDER__REMOTEDISTRIBUTEDSYSTEMID + "=2" + " --"
@@ -147,10 +154,12 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
         + CliStrings.CREATE_GATEWAYSENDER__ALERTTHRESHOLD + "=100" + " --"
         + CliStrings.CREATE_GATEWAYSENDER__DISPATCHERTHREADS + "=2" + " --"
         + CliStrings.CREATE_GATEWAYSENDER__ORDERPOLICY + "=THREAD";
-    
gfsh.executeAndAssertThat(command).statusIsSuccess().tableHasColumnWithExactValuesInAnyOrder(
-        "Message", "GatewaySender \"ln\" created on \"" + SERVER_3 + "\"",
-        "GatewaySender \"ln\" created on \"" + SERVER_4 + "\"",
-        "GatewaySender \"ln\" created on \"" + SERVER_5 + "\"");
+
+    gfsh.executeAndAssertThat(command).statusIsSuccess()
+        .hasTableSection().hasRowSize(3).hasColumn("Message").containsOnly(
+            "GatewaySender \"ln\" created on \"" + SERVER_3 + "\"",
+            "GatewaySender \"ln\" created on \"" + SERVER_4 + "\"",
+            "GatewaySender \"ln\" created on \"" + SERVER_5 + "\"");
 
     VMProvider.invokeInEveryMember(() -> {
       verifySenderState("ln", false, false);
@@ -159,10 +168,11 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
     }, server1, server2, server3);
 
     // destroy gateway sender and verify AEQs cleaned up
-    
gfsh.executeAndAssertThat(DESTROY).statusIsSuccess().tableHasColumnWithExactValuesInAnyOrder(
-        "Message", "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"",
-        "GatewaySender \"ln\" destroyed on \"" + SERVER_4 + "\"",
-        "GatewaySender \"ln\" destroyed on \"" + SERVER_5 + "\"");
+    gfsh.executeAndAssertThat(DESTROY).statusIsSuccess()
+        .hasTableSection().hasRowSize(3).hasColumn("Message").containsOnly(
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"",
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_4 + "\"",
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_5 + "\"");
 
     VMProvider.invokeInEveryMember(() -> verifySenderDoesNotExist("ln", 
false), server1, server2,
         server3);
@@ -172,7 +182,7 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
    * GatewaySender with given attribute values and event filters.
    */
   @Test
-  public void testCreateDestroyGatewaySenderWithGatewayEventFilters() throws 
Exception {
+  public void testCreateDestroyGatewaySenderWithGatewayEventFilters() {
     int socketReadTimeout = GatewaySender.MINIMUM_SOCKET_READ_TIMEOUT + 1000;
     String command = CliStrings.CREATE_GATEWAYSENDER + " --" + 
CliStrings.CREATE_GATEWAYSENDER__ID
         + "=ln" + " --" + 
CliStrings.CREATE_GATEWAYSENDER__REMOTEDISTRIBUTEDSYSTEMID + "=2" + " --"
@@ -192,10 +202,11 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
         + CliStrings.CREATE_GATEWAYSENDER__GATEWAYEVENTFILTER
         + 
"=org.apache.geode.cache30.MyGatewayEventFilter1,org.apache.geode.cache30.MyGatewayEventFilter2";
 
-    
gfsh.executeAndAssertThat(command).statusIsSuccess().tableHasColumnWithExactValuesInAnyOrder(
-        "Message", "GatewaySender \"ln\" created on \"" + SERVER_3 + "\"",
-        "GatewaySender \"ln\" created on \"" + SERVER_4 + "\"",
-        "GatewaySender \"ln\" created on \"" + SERVER_5 + "\"");
+    gfsh.executeAndAssertThat(command).statusIsSuccess()
+        .hasTableSection().hasRowSize(3).hasColumn("Message").containsOnly(
+            "GatewaySender \"ln\" created on \"" + SERVER_3 + "\"",
+            "GatewaySender \"ln\" created on \"" + SERVER_4 + "\"",
+            "GatewaySender \"ln\" created on \"" + SERVER_5 + "\"");
 
     List<String> eventFilters = new ArrayList<>();
     eventFilters.add("org.apache.geode.cache30.MyGatewayEventFilter1");
@@ -208,10 +219,11 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
     }, server1, server2, server3);
 
     // destroy gateway sender and verify AEQs cleaned up
-    
gfsh.executeAndAssertThat(DESTROY).statusIsSuccess().tableHasColumnWithExactValuesInAnyOrder(
-        "Message", "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"",
-        "GatewaySender \"ln\" destroyed on \"" + SERVER_4 + "\"",
-        "GatewaySender \"ln\" destroyed on \"" + SERVER_5 + "\"");
+    gfsh.executeAndAssertThat(DESTROY).statusIsSuccess()
+        .hasTableSection().hasRowSize(3).hasColumn("Message").containsOnly(
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"",
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_4 + "\"",
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_5 + "\"");
 
     VMProvider.invokeInEveryMember(() -> verifySenderDoesNotExist("ln", 
false), server1, server2,
         server3);
@@ -221,7 +233,7 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
    * GatewaySender with given attribute values and transport filters.
    */
   @Test
-  public void testCreateDestroyGatewaySenderWithGatewayTransportFilters() 
throws Exception {
+  public void testCreateDestroyGatewaySenderWithGatewayTransportFilters() {
     int socketReadTimeout = GatewaySender.MINIMUM_SOCKET_READ_TIMEOUT + 1000;
     String command = CliStrings.CREATE_GATEWAYSENDER + " --" + 
CliStrings.CREATE_GATEWAYSENDER__ID
         + "=ln" + " --" + 
CliStrings.CREATE_GATEWAYSENDER__REMOTEDISTRIBUTEDSYSTEMID + "=2" + " --"
@@ -240,10 +252,12 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
         + CliStrings.CREATE_GATEWAYSENDER__ORDERPOLICY + "=THREAD" + " --"
         + CliStrings.CREATE_GATEWAYSENDER__GATEWAYTRANSPORTFILTER
         + "=org.apache.geode.cache30.MyGatewayTransportFilter1";
-    
gfsh.executeAndAssertThat(command).statusIsSuccess().tableHasColumnWithExactValuesInAnyOrder(
-        "Message", "GatewaySender \"ln\" created on \"" + SERVER_3 + "\"",
-        "GatewaySender \"ln\" created on \"" + SERVER_4 + "\"",
-        "GatewaySender \"ln\" created on \"" + SERVER_5 + "\"");
+
+    gfsh.executeAndAssertThat(command).statusIsSuccess()
+        .hasTableSection().hasRowSize(3).hasColumn("Message").containsOnly(
+            "GatewaySender \"ln\" created on \"" + SERVER_3 + "\"",
+            "GatewaySender \"ln\" created on \"" + SERVER_4 + "\"",
+            "GatewaySender \"ln\" created on \"" + SERVER_5 + "\"");
 
     List<String> transportFilters = new ArrayList<>();
     transportFilters.add("org.apache.geode.cache30.MyGatewayTransportFilter1");
@@ -255,10 +269,11 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
     }, server1, server2, server3);
 
     // destroy gateway sender and verify AEQs cleaned up
-    
gfsh.executeAndAssertThat(DESTROY).statusIsSuccess().tableHasColumnWithExactValuesInAnyOrder(
-        "Message", "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"",
-        "GatewaySender \"ln\" destroyed on \"" + SERVER_4 + "\"",
-        "GatewaySender \"ln\" destroyed on \"" + SERVER_5 + "\"");
+    gfsh.executeAndAssertThat(DESTROY).statusIsSuccess()
+        .hasTableSection().hasRowSize(3).hasColumn("Message").containsOnly(
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"",
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_4 + "\"",
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_5 + "\"");
 
     VMProvider.invokeInEveryMember(() -> verifySenderDoesNotExist("ln", 
false), server1, server2,
         server3);
@@ -268,20 +283,17 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
    * GatewaySender with given attribute values on given member.
    */
   @Test
-  public void testCreateDestroyGatewaySender_OnMember() throws Exception {
+  public void testCreateDestroyGatewaySender_OnMember() {
     gfsh.executeAndAssertThat(CREATE + " --member=" + 
server1.getName()).statusIsSuccess()
-        .tableHasColumnWithExactValuesInAnyOrder("Message",
-            "GatewaySender \"ln\" created on \"" + SERVER_3 + "\"");
-
-    server1.invoke(() -> {
-      verifySenderState("ln", true, false);
-    });
+        .hasTableSection().hasRowSize(1).hasColumn("Message")
+        .containsOnly("GatewaySender \"ln\" created on \"" + SERVER_3 + "\"");
 
+    server1.invoke(() -> verifySenderState("ln", true, false));
     VMProvider.invokeInEveryMember(() -> verifySenderDoesNotExist("ln", 
false), server2, server3);
 
     gfsh.executeAndAssertThat(DESTROY + " --member=" + 
server1.getName()).statusIsSuccess()
-        .tableHasColumnWithExactValuesInAnyOrder("Message",
-            "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"");
+        .hasTableSection().hasRowSize(1).hasColumn("Message")
+        .containsOnly("GatewaySender \"ln\" destroyed on \"" + SERVER_3 + 
"\"");
 
     VMProvider.invokeInEveryMember(() -> verifySenderDoesNotExist("ln", 
false), server1);
   }
@@ -290,20 +302,17 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
    * GatewaySender with given attribute values on given group
    */
   @Test
-  public void testCreateDestroyGatewaySender_Group() throws Exception {
+  public void testCreateDestroyGatewaySender_Group() {
     gfsh.executeAndAssertThat(CREATE + " 
--group=senderGroup1").statusIsSuccess()
-        .tableHasColumnWithExactValuesInAnyOrder("Message",
-            "GatewaySender \"ln\" created on \"" + SERVER_3 + "\"");
-
-    server1.invoke(() -> {
-      verifySenderState("ln", true, false);
-    });
+        .hasTableSection().hasRowSize(1).hasColumn("Message")
+        .containsOnly("GatewaySender \"ln\" created on \"" + SERVER_3 + "\"");
 
+    server1.invoke(() -> verifySenderState("ln", true, false));
     VMProvider.invokeInEveryMember(() -> verifySenderDoesNotExist("ln", 
false), server2, server3);
 
     gfsh.executeAndAssertThat(DESTROY + " 
--group=senderGroup1").statusIsSuccess()
-        .tableHasColumnWithExactValuesInAnyOrder("Message",
-            "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"");
+        .hasTableSection().hasRowSize(1).hasColumn("Message")
+        .containsOnly("GatewaySender \"ln\" destroyed on \"" + SERVER_3 + 
"\"");
 
     VMProvider.invokeInEveryMember(() -> verifySenderDoesNotExist("ln", 
false), server1);
   }
@@ -312,18 +321,19 @@ public class CreateDestroyGatewaySenderCommandDUnitTest 
implements Serializable
    * Parallel GatewaySender with given attribute values +
    */
   @Test
-  public void testCreateDestroyParallelGatewaySender() throws Exception {
+  public void testCreateDestroyParallelGatewaySender() {
     gfsh.executeAndAssertThat(CREATE + " --parallel").statusIsSuccess()
-        .tableHasColumnWithExactValuesInAnyOrder("Message",
+        .hasTableSection().hasRowSize(3).hasColumn("Message").containsOnly(
             "GatewaySender \"ln\" created on \"" + SERVER_3 + "\"",
             "GatewaySender \"ln\" created on \"" + SERVER_4 + "\"",
             "GatewaySender \"ln\" created on \"" + SERVER_5 + "\"");
 
     // destroy gateway sender and verify AEQs cleaned up
-    
gfsh.executeAndAssertThat(DESTROY).statusIsSuccess().tableHasColumnWithExactValuesInAnyOrder(
-        "Message", "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"",
-        "GatewaySender \"ln\" destroyed on \"" + SERVER_4 + "\"",
-        "GatewaySender \"ln\" destroyed on \"" + SERVER_5 + "\"");
+    gfsh.executeAndAssertThat(DESTROY).statusIsSuccess()
+        .hasTableSection().hasRowSize(3).hasColumn("Message").containsOnly(
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_3 + "\"",
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_4 + "\"",
+            "GatewaySender \"ln\" destroyed on \"" + SERVER_5 + "\"");
 
     VMProvider.invokeInEveryMember(() -> verifySenderDoesNotExist("ln", 
false), server1, server2,
         server3);

Reply via email to