You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ji...@apache.org on 2017/02/08 01:50:45 UTC
[2/2] geode git commit: Refactor test rules
Refactor test rules
* Refactor GfshShellConnectorRule so that it's easier to use it either as a rule or classRule
* Refactor LocatorServerStartupRule so that tests using it do not need to extend from Junit4DUnitTest and can be used as a class rule.
* add NetstatDUnitTest
Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/da6f8d1e
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/da6f8d1e
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/da6f8d1e
Branch: refs/heads/develop
Commit: da6f8d1ece15ccd2fc026474879a1bc2cb882f7d
Parents: 72ad9f4
Author: Jinmei Liao <ji...@pivotal.io>
Authored: Wed Feb 8 16:04:42 2017 -0800
Committer: Jinmei Liao <ji...@pivotal.io>
Committed: Tue Feb 7 17:49:42 2017 -0800
----------------------------------------------------------------------
.../geode/tools/pulse/PulseDataExportTest.java | 12 +-
.../ConnectToLocatorSSLDUnitTest.java | 16 +--
.../internal/cli/NetstatDUnitTest.java | 94 ++++++++++++
.../configuration/ClusterConfigBaseTest.java | 4 +-
.../ClusterConfigDeployJarDUnitTest.java | 58 ++------
.../ClusterConfigDistributionDUnitTest.java | 23 ++-
.../ClusterConfigImportDUnitTest.java | 42 ++----
.../ClusterConfigWithSecurityDUnitTest.java | 11 +-
.../security/GfshCommandsPostProcessorTest.java | 29 ++--
.../security/GfshCommandsSecurityTest.java | 24 +---
.../ClusterConfigWithoutSecurityDUnitTest.java | 33 +++--
.../security/PeerAuthenticatorDUnitTest.java | 17 +--
...eerSecurityWithEmbeddedLocatorDUnitTest.java | 20 ++-
.../SecurityClusterConfigDUnitTest.java | 23 +--
.../SecurityWithoutClusterConfigDUnitTest.java | 26 ++--
.../security/StartServerAuthorizationTest.java | 52 +++----
.../dunit/rules/GfshShellConnectionRule.java | 96 ++++++++-----
.../apache/geode/test/dunit/rules/Locator.java | 4 +-
.../dunit/rules/LocatorServerStartupRule.java | 25 ++--
.../apache/geode/test/dunit/rules/Member.java | 8 +-
.../apache/geode/test/dunit/rules/Server.java | 4 +-
.../test/dunit/rules/ServerStarterRule.java | 2 +-
.../LuceneClusterConfigurationDUnitTest.java | 142 ++++++++-----------
23 files changed, 403 insertions(+), 362 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseDataExportTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseDataExportTest.java b/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseDataExportTest.java
index 28d50da..b547290 100644
--- a/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseDataExportTest.java
+++ b/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseDataExportTest.java
@@ -16,13 +16,12 @@
package org.apache.geode.tools.pulse;
-import static org.awaitility.Awaitility.await;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.awaitility.Awaitility.await;
import org.apache.geode.cache.client.ClientCacheFactory;
import org.apache.geode.cache.client.ClientRegionShortcut;
import org.apache.geode.test.dunit.IgnoredException;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
@@ -47,7 +46,6 @@ import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -61,14 +59,15 @@ import java.util.Properties;
import java.util.concurrent.TimeUnit;
@Category(DistributedTest.class)
-public class PulseDataExportTest extends JUnit4DistributedTestCase {
+public class PulseDataExportTest {
@Rule
public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
private Locator locator;
private org.apache.geode.test.dunit.rules.Server server;
- private GfshShellConnectionRule gfshConnector;
+ @Rule
+ public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
private HttpClient httpClient;
private CookieStore cookieStore;
@@ -80,8 +79,7 @@ public class PulseDataExportTest extends JUnit4DistributedTestCase {
locator = lsRule.startLocatorVMWithPulse(0, new Properties());
- gfshConnector = new GfshShellConnectionRule(locator);
- gfshConnector.connect();
+ gfshConnector.connect(locator);
assertThat(gfshConnector.isConnected()).isTrue();
server = lsRule.startServerVM(1, locator.getPort());
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
index 9d678e1..83a367e 100644
--- a/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
@@ -38,11 +38,10 @@ import static org.apache.geode.util.test.TestUtil.getResourcePath;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.security.SecurableCommunicationChannels;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
+import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.FlakyTest;
import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
import org.junit.After;
import org.junit.Before;
@@ -57,13 +56,16 @@ import java.io.OutputStream;
import java.util.Properties;
@Category(DistributedTest.class)
-public class ConnectToLocatorSSLDUnitTest extends JUnit4DistributedTestCase {
+public class ConnectToLocatorSSLDUnitTest {
@Rule
public TemporaryFolder folder = new SerializableTemporaryFolder();
@Rule
public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
+ @Rule
+ public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
+
private File jks = null;
private File securityPropsFile = null;
private Properties securityProps;
@@ -81,20 +83,16 @@ public class ConnectToLocatorSSLDUnitTest extends JUnit4DistributedTestCase {
}
private void setUpLocatorAndConnect(Properties securityProps) throws Exception {
- lsRule.startLocatorVM(0, securityProps);
+ Locator locator = lsRule.startLocatorVM(0, securityProps);
// saving the securityProps to a file
OutputStream out = new FileOutputStream(securityPropsFile);
securityProps.store(out, null);
- GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule(
- lsRule.getMember(0).getPort(), GfshShellConnectionRule.PortType.locator);
-
- gfshConnector.connect(CliStrings.CONNECT__SECURITY_PROPERTIES,
+ gfshConnector.connect(locator, CliStrings.CONNECT__SECURITY_PROPERTIES,
securityPropsFile.getCanonicalPath());
assertTrue(gfshConnector.isConnected());
- gfshConnector.close();
}
@Test
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/management/internal/cli/NetstatDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/NetstatDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/NetstatDUnitTest.java
new file mode 100644
index 0000000..3ee0c46
--- /dev/null
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/NetstatDUnitTest.java
@@ -0,0 +1,94 @@
+/*
+ * 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.management.internal.cli;
+
+import org.apache.geode.internal.AvailablePortHelper;
+import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
+import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
+import org.apache.geode.test.dunit.rules.Server;
+import org.apache.geode.test.junit.categories.DistributedTest;
+import org.junit.After;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.util.Properties;
+
+@Category(DistributedTest.class)
+public class NetstatDUnitTest {
+ @ClassRule
+ public static LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
+
+ @ClassRule
+ public static GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
+
+ private static int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(3);
+
+ private static String netStatCommand = null;
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ Properties properties = new Properties();
+ // common properties
+ properties.setProperty("locators", "localhost[" + ports[0] + "]");
+ properties.setProperty("http-service-port", "0");
+
+ // start peer locator
+ properties.setProperty("start-locator", "localhost[" + ports[0] + "],peer=true,server=true");
+ properties.setProperty("jmx-manager-port", ports[1] + "");
+ lsRule.startServerVM(0, properties);
+
+ // start server with jmx Manager as well
+ properties.remove("start-locator");
+ properties.setProperty("jmx-manager-port", ports[2] + "");
+ Server server = lsRule.startServerVM(1, properties);
+
+ // start server with no jmx Manager
+ properties.setProperty("jmx-manager", "false");
+ properties.setProperty("jmx-manager-port", "0");
+ properties.setProperty("jmx-manager-start", "false");
+ lsRule.startServerVM(2, properties);
+
+ // start another server
+ lsRule.startServerVM(3, properties);
+
+ netStatCommand = "netstat --with-lsof=true --member=" + server.getName();
+ }
+
+ @Test
+ public void testConnectToLocator() throws Exception {
+ gfshConnector.connect(ports[0], GfshShellConnectionRule.PortType.locator);
+ gfshConnector.executeAndVerifyCommand(netStatCommand);
+ }
+
+ @Test
+ public void testConnectToJmxManagerOne() throws Exception {
+ gfshConnector.connect(ports[1], GfshShellConnectionRule.PortType.jmxManger);
+ gfshConnector.executeAndVerifyCommand(netStatCommand);
+ }
+
+ @Test
+ public void testConnectToJmxManagerTwo() throws Exception {
+ gfshConnector.connect(ports[2], GfshShellConnectionRule.PortType.jmxManger);
+ gfshConnector.executeAndVerifyCommand(netStatCommand);
+ }
+
+ @After
+ public void after() throws Exception {
+ gfshConnector.disconnect();
+ }
+}
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigBaseTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigBaseTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigBaseTest.java
index cc0fff2..cecc8cf 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigBaseTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigBaseTest.java
@@ -18,12 +18,10 @@ package org.apache.geode.management.internal.configuration;
import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
import static org.apache.geode.distributed.ConfigurationProperties.USE_CLUSTER_CONFIGURATION;
-import static org.assertj.core.api.Assertions.assertThat;
import org.apache.commons.io.FileUtils;
import org.apache.geode.internal.ClassBuilder;
import org.apache.geode.management.internal.configuration.utils.ZipUtils;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
import org.junit.Before;
import org.junit.Rule;
@@ -32,7 +30,7 @@ import java.io.File;
import java.io.IOException;
import java.util.Properties;
-public class ClusterConfigBaseTest extends JUnit4DistributedTestCase {
+public class ClusterConfigBaseTest {
public String clusterConfigZipPath;
public static final ConfigGroup CLUSTER = new ConfigGroup("cluster").regions("regionForCluster")
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDeployJarDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDeployJarDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDeployJarDUnitTest.java
index 79f0128..15e6ea6 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDeployJarDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDeployJarDUnitTest.java
@@ -19,51 +19,37 @@ import static org.apache.geode.distributed.ConfigurationProperties.GROUPS;
import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
import static org.assertj.core.api.Assertions.assertThat;
-import org.apache.geode.internal.ClassBuilder;
-import org.apache.geode.management.cli.Result;
-import org.apache.geode.management.internal.cli.result.CommandResult;
import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.Server;
import org.apache.geode.test.junit.categories.DistributedTest;
-import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import java.io.File;
-import java.io.IOException;
-
@Category(DistributedTest.class)
public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
- private GfshShellConnectionRule gfshConnector;
+ @Rule
+ public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
private String clusterJar, group1Jar, group2Jar;
@Before
public void before() throws Exception {
super.before();
-
clusterJar = createJarFileWithClass("Cluster", "cluster.jar", lsRule.getTempFolder().getRoot());
group1Jar = createJarFileWithClass("Group1", "group1.jar", lsRule.getTempFolder().getRoot());
group2Jar = createJarFileWithClass("Group2", "group2.jar", lsRule.getTempFolder().getRoot());
}
- @After
- public void after() throws Exception {
- if (gfshConnector != null) {
- gfshConnector.close();
- }
- }
-
@Test
public void testDeployToNoServer() throws Exception {
String clusterJarPath = clusterJar;
// set up the locator/servers
Locator locator = lsRule.startLocatorVM(0, locatorProps);
- gfshConnector = new GfshShellConnectionRule(locator);
- gfshConnector.connect();
+ gfshConnector.connect(locator);
assertThat(gfshConnector.isConnected()).isTrue();
gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJarPath);
@@ -89,13 +75,10 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
// has to start a server in order to run deploy command
lsRule.startServerVM(3, serverProps, locator.getPort());
- gfshConnector =
- new GfshShellConnectionRule(locator.getPort(), GfshShellConnectionRule.PortType.locator);
- gfshConnector.connect();
+ gfshConnector.connect(locator);
assertThat(gfshConnector.isConnected()).isTrue();
- CommandResult result = gfshConnector.executeCommand("deploy --jar=" + clusterJar);
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+ gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJar);
ConfigGroup cluster = new ConfigGroup("cluster").jars("cluster.jar");
ClusterConfig expectedClusterConfig = new ClusterConfig(cluster);
@@ -119,13 +102,10 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
serverProps.setProperty(GROUPS, "group1,group2");
Server server3 = lsRule.startServerVM(3, serverProps, locator.getPort());
- gfshConnector =
- new GfshShellConnectionRule(locator.getPort(), GfshShellConnectionRule.PortType.locator);
- gfshConnector.connect();
+ gfshConnector.connect(locator);
assertThat(gfshConnector.isConnected()).isTrue();
- CommandResult result = gfshConnector.executeCommand("deploy --jar=" + clusterJar);
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+ gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJar);
ConfigGroup cluster = new ConfigGroup("cluster").jars("cluster.jar");
ClusterConfig expectedClusterConfig = new ClusterConfig(cluster);
@@ -134,8 +114,7 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
expectedClusterConfig.verify(server2);
expectedClusterConfig.verify(server3);
- result = gfshConnector.executeCommand("deploy --jar=" + group1Jar + " --group=group1");
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+ gfshConnector.executeAndVerifyCommand("deploy --jar=" + group1Jar + " --group=group1");
ConfigGroup group1 = new ConfigGroup("group1").jars("group1.jar");
ClusterConfig expectedGroup1Config = new ClusterConfig(cluster, group1);
@@ -144,8 +123,7 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
expectedGroup1Config.verify(server2);
expectedGroup1Config.verify(server3);
- result = gfshConnector.executeCommand("deploy --jar=" + group2Jar + " --group=group2");
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+ gfshConnector.executeAndVerifyCommand("deploy --jar=" + group2Jar + " --group=group2");
ConfigGroup group2 = new ConfigGroup("group2").jars("group2.jar");
ClusterConfig expectedGroup1and2Config = new ClusterConfig(cluster, group1, group2);
@@ -176,13 +154,10 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
ClusterConfig server2Config = new ClusterConfig(cluster, group2);
ClusterConfig server3Config = new ClusterConfig(cluster, group1, group2);
- gfshConnector =
- new GfshShellConnectionRule(locator.getPort(), GfshShellConnectionRule.PortType.locator);
- gfshConnector.connect();
+ gfshConnector.connect(locator);
assertThat(gfshConnector.isConnected()).isTrue();
- CommandResult result = gfshConnector.executeCommand("deploy --jar=" + clusterJar);
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+ gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJar);
// deploy cluster.jar to the cluster
cluster.addJar("cluster.jar");
@@ -192,8 +167,7 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
expectedClusterConfig.verify(server3);
// deploy group1.jar to both group1 and group2
- result = gfshConnector.executeCommand("deploy --jar=" + group1Jar + " --group=group1,group2");
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+ gfshConnector.executeAndVerifyCommand("deploy --jar=" + group1Jar + " --group=group1,group2");
group1.addJar("group1.jar");
group2.addJar("group1.jar");
@@ -203,8 +177,7 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
server3Config.verify(server3);
// test undeploy cluster
- result = gfshConnector.executeCommand("undeploy --jar=cluster.jar");
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+ gfshConnector.executeAndVerifyCommand("undeploy --jar=cluster.jar");
cluster = cluster.removeJar("cluster.jar");
server3Config.verify(locator);
@@ -212,8 +185,7 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
server2Config.verify(server2);
server3Config.verify(server3);
- result = gfshConnector.executeCommand("undeploy --jar=group1.jar --group=group1");
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+ gfshConnector.executeAndVerifyCommand("undeploy --jar=group1.jar --group=group1");
group1 = group1.removeJar("group1.jar");
/*
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDistributionDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDistributionDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDistributionDUnitTest.java
index f362d4c..e134c42 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDistributionDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDistributionDUnitTest.java
@@ -17,7 +17,6 @@ package org.apache.geode.management.internal.configuration;
import static org.apache.commons.io.FileUtils.writeByteArrayToFile;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
@@ -29,9 +28,7 @@ import org.apache.geode.cache.asyncqueue.AsyncEventQueue;
import org.apache.geode.cache.query.Index;
import org.apache.geode.internal.ClassBuilder;
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.util.CommandStringBuilder;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
@@ -47,7 +44,7 @@ import java.io.IOException;
import java.util.Properties;
@Category(DistributedTest.class)
-public class ClusterConfigDistributionDUnitTest extends JUnit4DistributedTestCase {
+public class ClusterConfigDistributionDUnitTest {
private static final String REPLICATE_REGION = "ReplicateRegion1";
private static final String PARTITION_REGION = "PartitionRegion1";
private static final String INDEX1 = "ID1";
@@ -55,22 +52,22 @@ public class ClusterConfigDistributionDUnitTest extends JUnit4DistributedTestCas
private static final String AsyncEventQueue1 = "Q1";
private Locator locator;
- private GfshShellConnectionRule gfshConnector;
+
+ @Rule
+ public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
+ @Rule
+ public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
@Before
public void before() throws Exception {
locator = lsRule.startLocatorVM(0);
-
- gfshConnector = new GfshShellConnectionRule(locator);
- gfshConnector.connect();
+ gfshConnector.connect(locator);
assertThat(gfshConnector.isConnected()).isTrue();
// start a server so that we can execute data commands that requires at least a server running
lsRule.startServerVM(1, locator.getPort());
}
- @Rule
- public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
@Test
public void testIndexAndAsyncEventQueueCommands() throws Exception {
@@ -173,9 +170,7 @@ public class ClusterConfigDistributionDUnitTest extends JUnit4DistributedTestCas
csb.addOptionWithValueCheck(CliStrings.CONFIGURE_PDX__PERSISTENT, "true");
csb.addOptionWithValueCheck(CliStrings.CONFIGURE_PDX__READ__SERIALIZED, "true");
- CommandResult result = gfshConnector.executeAndVerifyCommand(csb.getCommandString());
- String message = (String) result.getResultData().getGfJsonObject().getJSONObject("content")
- .getJSONArray("message").get(0);
- assertEquals(CliStrings.CONFIGURE_PDX__NORMAL__MEMBERS__WARNING, message);
+ String message = gfshConnector.execute(csb.getCommandString());
+ assertThat(message).contains(CliStrings.CONFIGURE_PDX__NORMAL__MEMBERS__WARNING);
}
}
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigImportDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigImportDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigImportDUnitTest.java
index f3c471e..b4cba61 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigImportDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigImportDUnitTest.java
@@ -31,8 +31,8 @@ import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
import org.apache.geode.test.dunit.rules.Server;
import org.apache.geode.test.junit.categories.DistributedTest;
-import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -46,7 +46,8 @@ import java.util.zip.ZipFile;
@Category(DistributedTest.class)
public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
- private GfshShellConnectionRule gfshConnector;
+ @Rule
+ public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
public static final ClusterConfig INITIAL_CONFIG = new ClusterConfig(new ConfigGroup("cluster"));
@@ -58,20 +59,10 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
locator = lsRule.startLocatorVM(0, locatorProps);
INITIAL_CONFIG.verify(locator);
- gfshConnector = new GfshShellConnectionRule(locator);
- gfshConnector.connect();
+ gfshConnector.connect(locator);
assertThat(gfshConnector.isConnected()).isTrue();
}
-
- @After
- public void after() throws Exception {
- if (gfshConnector != null) {
- gfshConnector.close();
- }
- }
-
-
@Test
public void testImportWithRunningServerWithData() throws Exception {
Server server = lsRule.startServerVM(1, serverProps, locator.getPort());
@@ -106,9 +97,6 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
// in the region
CommandResult result = gfshConnector
.executeCommand("import cluster-configuration --zip-file-name=" + clusterConfigZipPath);
-
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK)
- .describedAs(result.getContent().toString());
assertThat(result.getContent().toString())
.contains("Successfully applied the imported cluster configuration on server-1");
assertThat(result.getContent().toString())
@@ -129,9 +117,8 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
@Test
public void testImportClusterConfig() throws Exception {
- CommandResult result = gfshConnector
- .executeCommand("import cluster-configuration --zip-file-name=" + clusterConfigZipPath);
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+ gfshConnector.executeAndVerifyCommand(
+ "import cluster-configuration --zip-file-name=" + clusterConfigZipPath);
// Make sure that a backup of the old clusterConfig was created
assertThat(locator.getWorkingDir().listFiles())
@@ -163,9 +150,8 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
"localhost[" + locator.getPort() + "],localhost[" + locator1.getPort() + "]");
Locator locator2 = lsRule.startLocatorVM(2, locatorProps);
- CommandResult result = gfshConnector
- .executeCommand("import cluster-configuration --zip-file-name=" + clusterConfigZipPath);
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+ gfshConnector.executeAndVerifyCommand(
+ "import cluster-configuration --zip-file-name=" + clusterConfigZipPath);
CONFIG_FROM_ZIP.verify(locator);
REPLICATED_CONFIG_FROM_ZIP.verify(locator1);
@@ -188,20 +174,16 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
public void testExportClusterConfig(String zipFilePath) throws Exception {
Server server1 = lsRule.startServerVM(1, serverProps, locator.getPort());
- CommandResult result =
- gfshConnector.executeCommand("create region --name=myRegion --type=REPLICATE");
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+
+ gfshConnector.executeAndVerifyCommand("create region --name=myRegion --type=REPLICATE");
ConfigGroup cluster = new ConfigGroup("cluster").regions("myRegion");
ClusterConfig expectedClusterConfig = new ClusterConfig(cluster);
expectedClusterConfig.verify(server1);
expectedClusterConfig.verify(locator);
- result =
- gfshConnector.executeCommand("export cluster-configuration --zip-file-name=" + zipFilePath);
- System.out.println(result.getContent());
-
- assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
+ gfshConnector
+ .executeAndVerifyCommand("export cluster-configuration --zip-file-name=" + zipFilePath);
File exportedZip = new File(zipFilePath);
assertThat(exportedZip).exists();
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigWithSecurityDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigWithSecurityDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigWithSecurityDUnitTest.java
index 388fd9d..4d67fb0 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigWithSecurityDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigWithSecurityDUnitTest.java
@@ -27,7 +27,6 @@ import org.apache.geode.distributed.internal.InternalLocator;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.management.internal.configuration.utils.ZipUtils;
import org.apache.geode.security.SimpleTestSecurityManager;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
@@ -43,12 +42,15 @@ import java.io.File;
import java.util.Properties;
@Category({DistributedTest.class, SecurityTest.class})
-public class ClusterConfigWithSecurityDUnitTest extends JUnit4DistributedTestCase {
+public class ClusterConfigWithSecurityDUnitTest {
public String clusterConfigZipPath;
@Rule
public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
+ @Rule
+ public GfshShellConnectionRule connector = new GfshShellConnectionRule();
+
Locator locator0;
Properties locatorProps;
@@ -83,9 +85,8 @@ public class ClusterConfigWithSecurityDUnitTest extends JUnit4DistributedTestCas
@Test
public void testImportNotOverwriteSecurity() throws Exception {
- GfshShellConnectionRule connector = new GfshShellConnectionRule(locator0);
- connector.connect(CliStrings.CONNECT__USERNAME, "cluster", CliStrings.CONNECT__PASSWORD,
- "cluster");
+ connector.connect(locator0, CliStrings.CONNECT__USERNAME, "cluster",
+ CliStrings.CONNECT__PASSWORD, "cluster");
connector.executeAndVerifyCommand(
"import cluster-configuration --zip-file-name=" + clusterConfigZipPath);
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsPostProcessorTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsPostProcessorTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsPostProcessorTest.java
index ac3d1de..8172b4b 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsPostProcessorTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsPostProcessorTest.java
@@ -17,11 +17,10 @@ package org.apache.geode.management.internal.security;
import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_PORT;
import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
-import static org.apache.geode.internal.Assert.assertTrue;
+import static org.assertj.core.api.Assertions.assertThat;
import org.apache.geode.cache.RegionShortcut;
import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.management.internal.cli.HeadlessGfsh;
import org.apache.geode.security.TestPostProcessor;
import org.apache.geode.security.TestSecurityManager;
import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
@@ -29,7 +28,6 @@ import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
import org.apache.geode.test.dunit.rules.ServerStarterRule;
import org.apache.geode.test.junit.categories.IntegrationTest;
import org.apache.geode.test.junit.categories.SecurityTest;
-import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
@@ -50,10 +48,10 @@ public class GfshCommandsPostProcessorTest {
"org/apache/geode/management/internal/security/cacheServer.json");
}
};
+
@Rule
public GfshShellConnectionRule gfshConnection =
new GfshShellConnectionRule(jmxPort, GfshShellConnectionRule.PortType.jmxManger);
- private HeadlessGfsh gfsh = null;
@BeforeClass
public static void beforeClass() throws Exception {
@@ -62,26 +60,21 @@ public class GfshCommandsPostProcessorTest {
serverStarter.cache.createRegionFactory(RegionShortcut.REPLICATE).create("region1");
}
- @Before
- public void before() {
- gfsh = gfshConnection.getGfsh();
- }
-
@Test
@ConnectionConfiguration(user = "data-user", password = "1234567")
public void testGetPostProcess() throws Exception {
- gfsh.executeCommand("put --region=region1 --key=key1 --value=value1");
- gfsh.executeCommand("put --region=region1 --key=key2 --value=value2");
- gfsh.executeCommand("put --region=region1 --key=key3 --value=value3");
+ gfshConnection.executeCommand("put --region=region1 --key=key1 --value=value1");
+ gfshConnection.executeCommand("put --region=region1 --key=key2 --value=value2");
+ gfshConnection.executeCommand("put --region=region1 --key=key3 --value=value3");
// for get command, assert the return value is processed
- gfsh.executeCommand("get --region=region1 --key=key1");
- assertTrue(gfsh.outputString.contains("data-user/region1/key1/value1"), gfsh.outputString);
+ String result = gfshConnection.execute("get --region=region1 --key=key1");
+ assertThat(result).contains("data-user/region1/key1/value1");
// for query command, assert the return values are processed
- gfsh.executeCommand("query --query=\"select * from /region1\"");
- assertTrue(gfsh.outputString.contains("data-user/null/null/value1"), gfsh.outputString);
- assertTrue(gfsh.outputString.contains("data-user/null/null/value2"), gfsh.outputString);
- assertTrue(gfsh.outputString.contains("data-user/null/null/value3"), gfsh.outputString);
+ result = gfshConnection.execute("query --query=\"select * from /region1\"");
+ assertThat(result).contains("data-user/null/null/value1");
+ assertThat(result).contains("data-user/null/null/value2");
+ assertThat(result).contains("data-user/null/null/value3");
}
}
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsSecurityTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsSecurityTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsSecurityTest.java
index dbbe0db..1377145 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsSecurityTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsSecurityTest.java
@@ -27,7 +27,6 @@ import org.apache.geode.cache.RegionShortcut;
import org.apache.geode.internal.AvailablePortHelper;
import org.apache.geode.internal.logging.LogService;
import org.apache.geode.management.cli.Result;
-import org.apache.geode.management.internal.cli.HeadlessGfsh;
import org.apache.geode.management.internal.cli.result.CommandResult;
import org.apache.geode.management.internal.cli.result.ErrorResultData;
import org.apache.geode.management.internal.cli.result.ResultBuilder;
@@ -38,7 +37,6 @@ import org.apache.geode.test.dunit.rules.ServerStarterRule;
import org.apache.geode.test.junit.categories.IntegrationTest;
import org.apache.geode.test.junit.categories.SecurityTest;
import org.apache.shiro.authz.permission.WildcardPermission;
-import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
@@ -77,7 +75,6 @@ public class GfshCommandsSecurityTest {
@Rule
public GfshShellConnectionRule gfshConnection =
new GfshShellConnectionRule(jmxPort, GfshShellConnectionRule.PortType.jmxManger);
- private HeadlessGfsh gfsh = null;
@BeforeClass
public static void beforeClass() throws Exception {
@@ -86,11 +83,6 @@ public class GfshCommandsSecurityTest {
serverStarter.cache.createRegionFactory(RegionShortcut.REPLICATE).create("region1");
}
- @Before
- public void before() {
- gfsh = gfshConnection.getGfsh();
- }
-
@Test
@ConnectionConfiguration(user = "data-admin", password = "wrongPwd")
public void testInvalidCredentials() throws Exception {
@@ -163,8 +155,8 @@ public class GfshCommandsSecurityTest {
for (TestCommand permitted : allPermitted) {
LogService.getLogger().info("Processing authorized command: " + permitted.getCommand());
- gfsh.executeCommand(permitted.getCommand());
- CommandResult result = (CommandResult) gfsh.getResult();
+
+ CommandResult result = gfshConnection.executeCommand(permitted.getCommand());
assertNotNull(result);
if (result.getResultData() instanceof ErrorResultData) {
@@ -183,9 +175,7 @@ public class GfshCommandsSecurityTest {
continue;
LogService.getLogger().info("Processing unauthorized command: " + other.getCommand());
- gfsh.executeCommand(other.getCommand());
-
- CommandResult result = (CommandResult) gfsh.getResult();
+ CommandResult result = (CommandResult) gfshConnection.executeCommand(other.getCommand());
int errorCode = ((ErrorResultData) result.getResultData()).getErrorCode();
// for some commands there are pre execution checks to check for user input error, will skip
@@ -207,12 +197,12 @@ public class GfshCommandsSecurityTest {
@Test
@ConnectionConfiguration(user = "data-user", password = "1234567")
public void testGetPostProcess() throws Exception {
- gfsh.executeCommand("put --region=region1 --key=key2 --value=value2");
- gfsh.executeCommand("put --region=region1 --key=key2 --value=value2");
- gfsh.executeCommand("put --region=region1 --key=key3 --value=value3");
+ gfshConnection.executeCommand("put --region=region1 --key=key2 --value=value2");
+ gfshConnection.executeCommand("put --region=region1 --key=key2 --value=value2");
+ gfshConnection.executeCommand("put --region=region1 --key=key3 --value=value3");
// gfsh.executeCommand("get --region=region1 --key=key1");
- gfsh.executeCommand("query --query=\"select * from /region1\"");
+ gfshConnection.executeCommand("query --query=\"select * from /region1\"");
}
}
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
index fe37f9e..23ffa9a 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
@@ -15,35 +15,36 @@
package org.apache.geode.security;
-import static org.apache.geode.distributed.ConfigurationProperties.*;
-import static org.assertj.core.api.Java6Assertions.*;
-import static org.junit.Assert.*;
-
-import java.util.Properties;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
+import static org.assertj.core.api.Java6Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertEquals;
+import org.apache.geode.GemFireConfigException;
+import org.apache.geode.distributed.DistributedSystem;
+import org.apache.geode.internal.i18n.LocalizedStrings;
+import org.apache.geode.test.dunit.IgnoredException;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
import org.apache.geode.test.dunit.rules.ServerStarterRule;
+import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.SecurityTest;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.apache.geode.GemFireConfigException;
-import org.apache.geode.distributed.DistributedSystem;
-import org.apache.geode.internal.i18n.LocalizedStrings;
-import org.apache.geode.test.dunit.IgnoredException;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
+import java.util.Properties;
@Category({DistributedTest.class, SecurityTest.class})
-public class ClusterConfigWithoutSecurityDUnitTest extends JUnit4DistributedTestCase {
+public class ClusterConfigWithoutSecurityDUnitTest {
@Rule
public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
+ private ServerStarterRule serverStarter = null;
+
@Before
public void before() throws Exception {
IgnoredException
@@ -56,6 +57,8 @@ public class ClusterConfigWithoutSecurityDUnitTest extends JUnit4DistributedTest
@After
public void after() {
IgnoredException.removeAllExpectedExceptions();
+ if (serverStarter != null)
+ serverStarter.after();
}
// when locator is not secured, a secured server should be allowed to start with its own security
@@ -70,7 +73,7 @@ public class ClusterConfigWithoutSecurityDUnitTest extends JUnit4DistributedTest
props.setProperty("use-cluster-configuration", "false");
// initial security properties should only contain initial set of values
- ServerStarterRule serverStarter = new ServerStarterRule(props);
+ serverStarter = new ServerStarterRule(props);
serverStarter.startServer(lsRule.getMember(0).getPort());
DistributedSystem ds = serverStarter.cache.getDistributedSystem();
@@ -91,7 +94,7 @@ public class ClusterConfigWithoutSecurityDUnitTest extends JUnit4DistributedTest
props.setProperty("security-manager", "mySecurityManager");
props.setProperty("use-cluster-configuration", "true");
- ServerStarterRule serverStarter = new ServerStarterRule(props);
+ serverStarter = new ServerStarterRule(props);
assertThatThrownBy(() -> serverStarter.startServer(lsRule.getMember(0).getPort()))
.isInstanceOf(GemFireConfigException.class)
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
index a7752ae..c03f0ea 100644
--- a/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
@@ -15,28 +15,25 @@
package org.apache.geode.security;
-import static org.apache.geode.distributed.ConfigurationProperties.*;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR;
import static org.apache.geode.test.dunit.Host.getHost;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import java.util.Properties;
-
+import org.apache.geode.security.templates.DummyAuthenticator;
+import org.apache.geode.test.dunit.VM;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
-import org.apache.geode.test.dunit.rules.Member;
import org.apache.geode.test.dunit.rules.ServerStarterRule;
+import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.SecurityTest;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.apache.geode.security.templates.DummyAuthenticator;
-import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
+import java.util.Properties;
@Category({DistributedTest.class, SecurityTest.class})
-public class PeerAuthenticatorDUnitTest extends JUnit4DistributedTestCase {
+public class PeerAuthenticatorDUnitTest {
@Rule
public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
index 66c5be6..71200ab 100644
--- a/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
@@ -15,28 +15,26 @@
package org.apache.geode.security;
-import static org.apache.geode.distributed.ConfigurationProperties.*;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR;
import static org.apache.geode.test.dunit.Host.getHost;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import java.util.Properties;
-
-import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
import org.apache.geode.internal.AvailablePortHelper;
import org.apache.geode.security.templates.DummyAuthenticator;
import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
+import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
import org.apache.geode.test.dunit.rules.ServerStarterRule;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.SecurityTest;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.util.Properties;
@Category({DistributedTest.class, SecurityTest.class})
-public class PeerSecurityWithEmbeddedLocatorDUnitTest extends JUnit4DistributedTestCase {
+public class PeerSecurityWithEmbeddedLocatorDUnitTest {
@Rule
public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/security/SecurityClusterConfigDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/SecurityClusterConfigDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/SecurityClusterConfigDUnitTest.java
index ca209a7..fcda2a3 100644
--- a/geode-core/src/test/java/org/apache/geode/security/SecurityClusterConfigDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/SecurityClusterConfigDUnitTest.java
@@ -28,14 +28,13 @@ import org.apache.geode.GemFireConfigException;
import org.apache.geode.distributed.DistributedSystem;
import org.apache.geode.internal.i18n.LocalizedStrings;
import org.apache.geode.test.dunit.IgnoredException;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
import org.apache.geode.test.dunit.rules.ServerStarterRule;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.FlakyTest;
import org.apache.geode.test.junit.categories.SecurityTest;
+import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -43,11 +42,13 @@ import org.junit.experimental.categories.Category;
import java.util.Properties;
@Category({DistributedTest.class, SecurityTest.class})
-public class SecurityClusterConfigDUnitTest extends JUnit4DistributedTestCase {
+public class SecurityClusterConfigDUnitTest {
@Rule
public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
+ private ServerStarterRule serverStarter = null;
+
@Before
public void before() throws Exception {
IgnoredException
@@ -63,6 +64,12 @@ public class SecurityClusterConfigDUnitTest extends JUnit4DistributedTestCase {
lsRule.startLocatorVM(0, props);
}
+ @After
+ public void after() {
+ if (serverStarter != null)
+ serverStarter.after();
+ }
+
@Category(FlakyTest.class) // GEODE-1977
@Test
public void testStartServerWithClusterConfig() throws Exception {
@@ -73,7 +80,7 @@ public class SecurityClusterConfigDUnitTest extends JUnit4DistributedTestCase {
props.setProperty("use-cluster-configuration", "true");
// initial security properties should only contain initial set of values
- ServerStarterRule serverStarter = new ServerStarterRule(props);
+ serverStarter = new ServerStarterRule(props);
serverStarter.startServer(lsRule.getMember(0).getPort());
DistributedSystem ds = serverStarter.cache.getDistributedSystem();
@@ -95,7 +102,7 @@ public class SecurityClusterConfigDUnitTest extends JUnit4DistributedTestCase {
props.setProperty(SECURITY_MANAGER, SimpleTestSecurityManager.class.getName());
// initial security properties should only contain initial set of values
- ServerStarterRule serverStarter = new ServerStarterRule(props);
+ serverStarter = new ServerStarterRule(props);
serverStarter.startServer(lsRule.getMember(0).getPort());
DistributedSystem ds = serverStarter.cache.getDistributedSystem();
@@ -117,7 +124,7 @@ public class SecurityClusterConfigDUnitTest extends JUnit4DistributedTestCase {
props.setProperty("use-cluster-configuration", "true");
// initial security properties should only contain initial set of values
- ServerStarterRule serverStarter = new ServerStarterRule(props);
+ serverStarter = new ServerStarterRule(props);
assertThatThrownBy(() -> serverStarter.startServer(lsRule.getMember(0).getPort()))
.isInstanceOf(GemFireConfigException.class)
@@ -136,7 +143,7 @@ public class SecurityClusterConfigDUnitTest extends JUnit4DistributedTestCase {
props.setProperty("use-cluster-configuration", "true");
// initial security properties should only contain initial set of values
- ServerStarterRule serverStarter = new ServerStarterRule(props);
+ serverStarter = new ServerStarterRule(props);
assertThatThrownBy(() -> serverStarter.startServer(lsRule.getMember(0).getPort()))
.isInstanceOf(GemFireConfigException.class)
@@ -155,7 +162,7 @@ public class SecurityClusterConfigDUnitTest extends JUnit4DistributedTestCase {
props.setProperty("security-manager", "mySecurityManager");
props.setProperty("use-cluster-configuration", "false");
- ServerStarterRule serverStarter = new ServerStarterRule(props);
+ serverStarter = new ServerStarterRule(props);
assertThatThrownBy(() -> serverStarter.startServer(lsRule.getMember(0).getPort()))
.isInstanceOf(GemFireConfigException.class)
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/security/SecurityWithoutClusterConfigDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/SecurityWithoutClusterConfigDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/SecurityWithoutClusterConfigDUnitTest.java
index 72654cb..1fdcd52 100644
--- a/geode-core/src/test/java/org/apache/geode/security/SecurityWithoutClusterConfigDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/SecurityWithoutClusterConfigDUnitTest.java
@@ -15,29 +15,29 @@
package org.apache.geode.security;
-import static org.apache.geode.distributed.ConfigurationProperties.*;
-import static org.junit.Assert.*;
-
-import java.util.Properties;
-
-import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import org.apache.geode.distributed.DistributedSystem;
import org.apache.geode.internal.i18n.LocalizedStrings;
import org.apache.geode.test.dunit.IgnoredException;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
+import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
import org.apache.geode.test.dunit.rules.ServerStarterRule;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.SecurityTest;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.util.Properties;
@Category({DistributedTest.class, SecurityTest.class})
-public class SecurityWithoutClusterConfigDUnitTest extends JUnit4DistributedTestCase {
+public class SecurityWithoutClusterConfigDUnitTest {
@Rule
public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/security/StartServerAuthorizationTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/StartServerAuthorizationTest.java b/geode-core/src/test/java/org/apache/geode/security/StartServerAuthorizationTest.java
index 24d0db5..8a79702 100644
--- a/geode-core/src/test/java/org/apache/geode/security/StartServerAuthorizationTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/StartServerAuthorizationTest.java
@@ -16,34 +16,40 @@
package org.apache.geode.security;
import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
-import static org.apache.geode.test.dunit.Host.getHost;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
+import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
import org.apache.geode.test.dunit.rules.ServerStarterRule;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.SecurityTest;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Rule;
+import org.junit.After;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import java.util.Properties;
@Category({DistributedTest.class, SecurityTest.class})
-public class StartServerAuthorizationTest extends JUnit4DistributedTestCase {
+public class StartServerAuthorizationTest {
- @Rule
- public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
+ @ClassRule
+ public static LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
+ private static Locator locator = null;
+ private ServerStarterRule serverStarter = null;
- @Before
- public void before() throws Exception {
+ @BeforeClass
+ public static void beforeClass() throws Exception {
Properties props = new Properties();
props.setProperty(SECURITY_MANAGER, SimpleTestSecurityManager.class.getName());
- lsRule.startLocatorVM(0, props);
+ locator = lsRule.startLocatorVM(0, props);
+ }
+
+ @After
+ public void after() throws Exception {
+ if (serverStarter != null)
+ serverStarter.after();
}
@Test
@@ -53,13 +59,10 @@ public class StartServerAuthorizationTest extends JUnit4DistributedTestCase {
props.setProperty("security-username", "user");
props.setProperty("security-password", "wrongPswd");
- VM server = getHost(0).getVM(1);
- server.invoke(() -> {
- ServerStarterRule serverStarter = new ServerStarterRule(props);
- assertThatThrownBy(() -> serverStarter.startServer(lsRule.getMember(0).getPort()))
- .isInstanceOf(GemFireSecurityException.class).hasMessageContaining(
- "Security check failed. Authentication error. Please check your credentials");
- });
+ serverStarter = new ServerStarterRule(props);
+ assertThatThrownBy(() -> serverStarter.startServer(locator.getPort()))
+ .isInstanceOf(GemFireSecurityException.class).hasMessageContaining(
+ "Security check failed. Authentication error. Please check your credentials");
}
@Test
@@ -70,13 +73,10 @@ public class StartServerAuthorizationTest extends JUnit4DistributedTestCase {
props.setProperty("security-username", "user");
props.setProperty("security-password", "user");
- VM server = getHost(0).getVM(1);
- server.invoke(() -> {
- ServerStarterRule serverStarter = new ServerStarterRule(props);
- assertThatThrownBy(() -> serverStarter.startServer(lsRule.getMember(0).getPort()))
- .isInstanceOf(GemFireSecurityException.class)
- .hasMessageContaining("user not authorized for CLUSTER:MANAGE");
- });
+ serverStarter = new ServerStarterRule(props);
+ assertThatThrownBy(() -> serverStarter.startServer(locator.getPort()))
+ .isInstanceOf(GemFireSecurityException.class)
+ .hasMessageContaining("user not authorized for CLUSTER:MANAGE");
}
@Test
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
index 49c1414..4f2f0d0 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
@@ -33,48 +33,65 @@ import java.util.concurrent.atomic.AtomicReference;
* Class which eases the connection to the jmxManager {@link ConnectionConfiguration} it allows for
* the creation of per-test connections with different user/password combinations, or no username
* and password
+ *
+ * you can use this as Rule
+ *
+ * @Rule GfshShellConnectionRule rule = new GfshSheelConnectionRule(); then after you connect to a
+ * locator, you don't have to call disconnect() or close() at all, since the rule's after
+ * takes care of it for you.
+ *
+ * Or as a ClassRule
+ * @ClassRule GfshShellConnectionRule rule = new GfshSheelConnectionRule(); When using as a
+ * ClassRule, if you call connect in a test, you will need to call disconnect after the
+ * test as well. See NetstatDUnitTest for example.
+ *
*/
public class GfshShellConnectionRule extends DescribedExternalResource {
- private int port = 0;
- private PortType portType = null;
- private HeadlessGfsh gfsh;
- private boolean connected;
+ private int port = -1;
+ private PortType portType = PortType.jmxManger;
+ private HeadlessGfsh gfsh = null;
+ private boolean connected = false;
- public GfshShellConnectionRule(Locator locator) {
- this(locator.getPort(), PortType.locator);
- }
+ public GfshShellConnectionRule() {}
public GfshShellConnectionRule(int port, PortType portType) {
this.portType = portType;
this.port = port;
- try {
- this.gfsh = new HeadlessGfsh(getClass().getName(), 30, "gfsh_files");
- } catch (Exception e) {
- e.printStackTrace();
- }
- this.connected = false;
}
+ @Override
protected void before(Description description) throws Throwable {
+ this.gfsh = new HeadlessGfsh(getClass().getName(), 30, "gfsh_files");
+ // do not connect if no port initialized
+ if (port < 0) {
+ return;
+ }
+
ConnectionConfiguration config = description.getAnnotation(ConnectionConfiguration.class);
- if (config != null) {
- connect(CliStrings.CONNECT__USERNAME, config.user(), CliStrings.CONNECT__PASSWORD,
- config.password());
- } else {
- connect();
+ if (config == null) {
+ connect(port, portType);
+ return;
}
+
+ connect(port, portType, CliStrings.CONNECT__USERNAME, config.user(),
+ CliStrings.CONNECT__PASSWORD, config.password());
+
}
- public void connect(String... options) throws Exception {
+ public void connect(Locator locator, String... options) throws Exception {
+ connect(locator.getPort(), PortType.locator, options);
+ }
+
+ public void connect(int port, PortType type, String... options) throws Exception {
CliUtil.isGfshVM = true;
final CommandStringBuilder connectCommand = new CommandStringBuilder(CliStrings.CONNECT);
String endpoint;
- if (portType == PortType.locator) {
+ if (type == PortType.locator) {
// port is the locator port
endpoint = "localhost[" + port + "]";
connectCommand.addOption(CliStrings.CONNECT__LOCATOR, endpoint);
- } else if (portType == PortType.http) {
+ } else if (type == PortType.http) {
endpoint = "http://localhost:" + port + "/gemfire/v1";
connectCommand.addOption(CliStrings.CONNECT__USE_HTTP, Boolean.TRUE.toString());
connectCommand.addOption(CliStrings.CONNECT__URL, endpoint);
@@ -96,31 +113,32 @@ public class GfshShellConnectionRule extends DescribedExternalResource {
// Tried to wait on jmx connector server being ready, but it doesn't work.
AtomicReference<CommandResult> result = new AtomicReference<>();
Awaitility.await().atMost(2, TimeUnit.MINUTES).pollDelay(2, TimeUnit.SECONDS).until(() -> {
- gfsh.executeCommand(connectCommand.toString());
- result.set((CommandResult) gfsh.getResult());
- System.out.println("connect result: " + result.get().getContent().toString());
+ CommandResult cResult = executeCommand(connectCommand.toString());
+ result.set(cResult);
return !gfsh.outputString.contains("no such object in table");
});
connected = (result.get().getStatus() == Result.Status.OK);
}
-
- /**
- * Override to tear down your specific external resource.
- */
+ @Override
protected void after(Description description) throws Throwable {
+ if (connected) {
+ disconnect();
+ }
close();
}
+ public void disconnect() throws Exception {
+ gfsh.clear();
+ executeCommand("disconnect");
+ connected = false;
+ }
+
public void close() throws Exception {
- if (gfsh != null) {
- gfsh.clear();
- gfsh.executeCommand("disconnect");
- gfsh.executeCommand("exit");
- gfsh.terminate();
- gfsh = null;
- }
+ gfsh.executeCommand("exit");
+ gfsh.terminate();
+ gfsh = null;
CliUtil.isGfshVM = false;
}
@@ -131,10 +149,11 @@ public class GfshShellConnectionRule extends DescribedExternalResource {
public CommandResult executeCommand(String command) throws Exception {
gfsh.executeCommand(command);
CommandResult result = (CommandResult) gfsh.getResult();
- System.out.println("command result: " + result.getContent());
+ System.out.println("Command Result: \n" + gfsh.outputString);
return result;
}
+
public CommandResult executeAndVerifyCommand(String command) throws Exception {
CommandResult result = executeCommand(command);
assertThat(result.getStatus()).describedAs(result.getContent().toString())
@@ -142,6 +161,11 @@ public class GfshShellConnectionRule extends DescribedExternalResource {
return result;
}
+ public String execute(String command) throws Exception {
+ executeCommand(command);
+ return gfsh.outputString;
+ }
+
public boolean isConnected() {
return connected;
}
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Locator.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Locator.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Locator.java
index 0350ffd..fe26e83 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Locator.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Locator.java
@@ -22,7 +22,7 @@ import java.io.File;
public class Locator extends Member {
- public Locator(VM vm, int port, File workingDir) {
- super(vm, port, workingDir);
+ public Locator(VM vm, int port, File workingDir, String name) {
+ super(vm, port, workingDir, name);
}
}
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorServerStartupRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorServerStartupRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorServerStartupRule.java
index ac9221c..1f0cd9e 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorServerStartupRule.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorServerStartupRule.java
@@ -21,16 +21,14 @@ import static org.apache.geode.test.dunit.Host.getHost;
import org.apache.geode.test.dunit.Invoke;
import org.apache.geode.test.dunit.VM;
+import org.apache.geode.test.dunit.standalone.DUnitLauncher;
import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
-import org.junit.After;
-import org.junit.Before;
import org.junit.rules.ExternalResource;
import org.junit.rules.TemporaryFolder;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
-import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
@@ -60,16 +58,20 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
private TemporaryFolder temporaryFolder = new SerializableTemporaryFolder();
private List<Member> members;
- @Before
- public void before() throws Throwable {
+ public LocatorServerStartupRule() {
+ DUnitLauncher.launchIfNeeded();
+ }
+
+ @Override
+ protected void before() throws Throwable {
restoreSystemProperties.before();
temporaryFolder.create();
Invoke.invokeInEveryVM("Stop each VM", this::stopServerOrLocatorInThisVM);
members = new ArrayList<>(4);
}
- @After
- public void after() {
+ @Override
+ protected void after() {
restoreSystemProperties.after();
temporaryFolder.delete();
Invoke.invokeInEveryVM("Stop each VM", this::stopServerOrLocatorInThisVM);
@@ -93,7 +95,7 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
locatorStarter.startLocator();
return locatorStarter.locator.getPort();
});
- Locator locator = new Locator(locatorVM, locatorPort, workingDir);
+ Locator locator = new Locator(locatorVM, locatorPort, workingDir, name);
members.add(index, locator);
return locator;
}
@@ -112,7 +114,6 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
System.out.println("Current dir is " + new File(".").getCanonicalPath());
System.out.println("Setting gemfire.home to " + geodeInstallDir);
-
VM locatorVM = getHost(0).getVM(index);
int locatorPort = locatorVM.invoke(() -> {
System.setProperty("user.dir", workingDir.getCanonicalPath());
@@ -121,7 +122,7 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
locatorStarter.startLocator();
return locatorStarter.locator.getPort();
});
- Locator locator = new Locator(locatorVM, locatorPort, workingDir);
+ Locator locator = new Locator(locatorVM, locatorPort, workingDir, name);
members.add(index, locator);
return locator;
}
@@ -160,7 +161,7 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
serverStarter.startServer(locatorPort);
return serverStarter.server.getPort();
});
- Server server = new Server(serverVM, port, workingDir);
+ Server server = new Server(serverVM, port, workingDir, name);
members.add(index, server);
return server;
}
@@ -179,9 +180,11 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
private void stopServerOrLocatorInThisVM() {
if (serverStarter != null) {
serverStarter.after();
+ serverStarter = null;
}
if (locatorStarter != null) {
locatorStarter.after();
+ locatorStarter = null;
}
}
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Member.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Member.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Member.java
index 129fe68..7cc1eea 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Member.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Member.java
@@ -29,11 +29,13 @@ public abstract class Member implements Serializable {
private VM vm;
private int port;
private File workingDir;
+ private String name;
- public Member(VM vm, int port, File workingDir) {
+ public Member(VM vm, int port, File workingDir, String name) {
this.vm = vm;
this.port = port;
this.workingDir = workingDir;
+ this.name = name;
}
/**
@@ -53,6 +55,10 @@ public abstract class Member implements Serializable {
return workingDir;
}
+ public String getName() {
+ return name;
+ }
+
/**
* Invokes {@code runnable.run()} in the {@code VM} of this member.
*/
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Server.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Server.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Server.java
index bc4c5d6..4aa2c69 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Server.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Server.java
@@ -21,7 +21,7 @@ import org.apache.geode.test.dunit.VM;
import java.io.File;
public class Server extends Member {
- public Server(VM vm, int port, File workingDir) {
- super(vm, port, workingDir);
+ public Server(VM vm, int port, File workingDir, String name) {
+ super(vm, port, workingDir, name);
}
}
http://git-wip-us.apache.org/repos/asf/geode/blob/da6f8d1e/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterRule.java
index 60013ca..f93498f 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterRule.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterRule.java
@@ -106,7 +106,7 @@ public class ServerStarterRule extends ExternalResource implements Serializable
@Override
public void after() {
- // make sure this cache is the once currently open. A server cache can be recreated due to
+ // make sure this cache is the one currently open. A server cache can be recreated due to
// importing a new set of cluster configuration.
cache = GemFireCacheImpl.getInstance();
if (cache != null) {