You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ds...@apache.org on 2017/03/09 20:49:16 UTC
[37/50] [abbrv] geode git commit: GEODE-2267: Enhance server/locator
startup rules
GEODE-2267: Enhance server/locator startup rules
* be able to return the rule itself so that we can start the server/locator at rule declaration time.
* rearrange the class structure
* do not delete the workingDir if the rule is created with a workingDir (then it's up for the caller to delete it)
Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/5ca8dda8
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/5ca8dda8
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/5ca8dda8
Branch: refs/heads/feature/GEODE-1969
Commit: 5ca8dda8e8f10f7f548e075a352b63051a6904cf
Parents: c7c28f0
Author: Jinmei Liao <ji...@pivotal.io>
Authored: Thu Mar 2 15:58:18 2017 -0800
Committer: Kevin J. Duling <kd...@pivotal.io>
Committed: Wed Mar 8 10:43:29 2017 -0800
----------------------------------------------------------------------
.../web/RestSecurityIntegrationTest.java | 5 +-
.../web/RestSecurityPostProcessorTest.java | 5 +-
.../geode/tools/pulse/PulseDataExportTest.java | 6 +-
.../ConnectToLocatorSSLDUnitTest.java | 4 +-
.../internal/cli/NetstatDUnitTest.java | 4 +-
.../cli/commands/ExportLogsDUnitTest.java | 15 ++--
.../ExportLogsOnServerManagerDUnit.java | 7 +-
.../cli/commands/ExportStatsDUnitTest.java | 4 +-
.../internal/cli/util/MergeLogsDUnitTest.java | 9 +-
.../internal/configuration/ClusterConfig.java | 28 +++---
.../ClusterConfigDeployJarDUnitTest.java | 29 +++---
.../ClusterConfigDistributionDUnitTest.java | 9 +-
.../ClusterConfigImportDUnitTest.java | 45 +++++-----
.../ClusterConfigStartMemberDUnitTest.java | 19 ++--
.../ClusterConfigWithSecurityDUnitTest.java | 10 +--
.../security/CacheServerStartupRule.java | 6 +-
.../security/GfshCommandsPostProcessorTest.java | 6 +-
.../security/GfshCommandsSecurityTest.java | 5 +-
.../security/AbstractSecureServerDUnitTest.java | 8 +-
.../ClusterConfigWithoutSecurityDUnitTest.java | 2 +-
.../SecurityClusterConfigDUnitTest.java | 4 +-
.../SecurityWithoutClusterConfigDUnitTest.java | 2 +-
.../security/StartServerAuthorizationTest.java | 3 +-
.../dunit/rules/GfshShellConnectionRule.java | 4 +-
.../apache/geode/test/dunit/rules/Locator.java | 9 +-
.../dunit/rules/LocatorServerStartupRule.java | 34 ++++---
.../test/dunit/rules/LocatorStarterRule.java | 54 ++++-------
.../apache/geode/test/dunit/rules/Member.java | 53 ++---------
.../test/dunit/rules/MemberStarterRule.java | 84 +++++++++++++++++
.../apache/geode/test/dunit/rules/MemberVM.java | 67 ++++++++++++++
.../apache/geode/test/dunit/rules/Server.java | 12 +--
.../test/dunit/rules/ServerStarterRule.java | 95 ++++++++++----------
.../LuceneClusterConfigurationDUnitTest.java | 51 ++++++-----
33 files changed, 391 insertions(+), 307 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
index 75a3c2c..85fc5be 100644
--- a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
+++ b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
@@ -58,13 +58,12 @@ public class RestSecurityIntegrationTest {
};
@ClassRule
- public static ServerStarterRule serverStarter = new ServerStarterRule();
+ public static ServerStarterRule serverStarter = new ServerStarterRule().startServer(properties);
private final GeodeRestClient restClient = new GeodeRestClient("localhost", restPort);
@BeforeClass
public static void before() throws Exception {
- serverStarter.startServer(properties);
- serverStarter.cache.createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME);
+ serverStarter.getCache().createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME);
}
@Test
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
index 933f7b2..82e9b7f 100644
--- a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
+++ b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
@@ -65,14 +65,13 @@ public class RestSecurityPostProcessorTest {
};
@ClassRule
- public static ServerStarterRule serverStarter = new ServerStarterRule();
+ public static ServerStarterRule serverStarter = new ServerStarterRule().startServer(properties);
private final GeodeRestClient restClient = new GeodeRestClient("localhost", restPort);
@BeforeClass
public static void before() throws Exception {
- serverStarter.startServer(properties);
Region region =
- serverStarter.cache.createRegionFactory(RegionShortcut.REPLICATE).create("customers");
+ serverStarter.getCache().createRegionFactory(RegionShortcut.REPLICATE).create("customers");
region.put("1", new Customer(1L, "John", "Doe", "555555555"));
region.put("2", new Customer(2L, "Richard", "Roe", "222533554"));
region.put("3", new Customer(3L, "Jane", "Doe", "555223333"));
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 fa98ce6..b9e90b6 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
@@ -23,8 +23,8 @@ 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.rules.GfshShellConnectionRule;
-import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
+import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.FlakyTest;
import org.apache.http.Consts;
@@ -64,8 +64,8 @@ public class PulseDataExportTest {
@Rule
public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
- private Locator locator;
- private org.apache.geode.test.dunit.rules.Server server;
+ private MemberVM locator;
+ private MemberVM server;
@Rule
public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
private HttpClient httpClient;
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 101c8f5..1033b6c 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
@@ -39,8 +39,8 @@ 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.rules.GfshShellConnectionRule;
-import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
+import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
import org.junit.After;
@@ -83,7 +83,7 @@ public class ConnectToLocatorSSLDUnitTest {
}
private void setUpLocatorAndConnect(Properties securityProps) throws Exception {
- Locator locator = lsRule.startLocatorVM(0, securityProps);
+ MemberVM locator = lsRule.startLocatorVM(0, securityProps);
// saving the securityProps to a file
OutputStream out = new FileOutputStream(securityPropsFile);
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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
index 8ac993b..5b2d302 100644
--- 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
@@ -18,7 +18,7 @@ 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.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.FlakyTest;
import org.junit.After;
@@ -58,7 +58,7 @@ public class NetstatDUnitTest {
// start server with jmx Manager as well
properties.remove("start-locator");
properties.setProperty("jmx-manager-port", ports[2] + "");
- Server server = lsRule.startServerVM(1, properties);
+ MemberVM server = lsRule.startServerVM(1, properties);
// start server with no jmx Manager
properties.setProperty("jmx-manager", "false");
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsDUnitTest.java
index e882cce..bf1d9ea 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsDUnitTest.java
@@ -34,10 +34,9 @@ import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
import org.apache.geode.management.internal.configuration.utils.ZipUtils;
import org.apache.geode.test.dunit.IgnoredException;
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.dunit.rules.Member;
-import org.apache.geode.test.dunit.rules.Server;
+import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.FlakyTest;
import org.apache.logging.log4j.Logger;
@@ -72,11 +71,11 @@ public class ExportLogsDUnitTest {
@Rule
public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
- private Locator locator;
- private Server server1;
- private Server server2;
+ private MemberVM locator;
+ private MemberVM server1;
+ private MemberVM server2;
- private Map<Member, List<LogLine>> expectedMessages;
+ private Map<MemberVM, List<LogLine>> expectedMessages;
@Before
public void setup() throws Exception {
@@ -95,7 +94,7 @@ public class ExportLogsDUnitTest {
expectedMessages.put(server2, listOfLogLines(server2, "info", "error", "debug"));
// log the messages in each of the members
- for (Member member : expectedMessages.keySet()) {
+ for (MemberVM member : expectedMessages.keySet()) {
List<LogLine> logLines = expectedMessages.get(member);
member.invoke(() -> {
@@ -241,7 +240,7 @@ public class ExportLogsDUnitTest {
throws IOException {
String memberName = dirForMember.getName();
- Member member = expectedMessages.keySet().stream()
+ MemberVM member = expectedMessages.keySet().stream()
.filter((Member aMember) -> aMember.getName().equals(memberName)).findFirst().get();
assertThat(member).isNotNull();
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsOnServerManagerDUnit.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsOnServerManagerDUnit.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsOnServerManagerDUnit.java
index 92ef5f5..c2fde4d 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsOnServerManagerDUnit.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsOnServerManagerDUnit.java
@@ -22,6 +22,7 @@ import com.google.common.collect.Sets;
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.MemberVM;
import org.apache.geode.test.dunit.rules.Server;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.junit.Rule;
@@ -46,7 +47,7 @@ public class ExportLogsOnServerManagerDUnit {
@Test
public void testExportWithOneServer() throws Exception {
int jmxPort = AvailablePortHelper.getRandomAvailableTCPPort();
- Server server0 = lsRule.startServerAsJmxManager(0, jmxPort);
+ MemberVM server0 = lsRule.startServerAsJmxManager(0, jmxPort);
gfshConnector.connect(jmxPort, GfshShellConnectionRule.PortType.jmxManger);
gfshConnector.executeAndVerifyCommand("export logs");
@@ -66,8 +67,8 @@ public class ExportLogsOnServerManagerDUnit {
int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);
int locatorPort = ports[0];
int jmxPort = ports[1];
- Server server0 = lsRule.startServerAsEmbededLocator(0, locatorPort, jmxPort);
- Server server1 = lsRule.startServerVM(1, locatorPort);
+ MemberVM server0 = lsRule.startServerAsEmbededLocator(0, locatorPort, jmxPort);
+ MemberVM server1 = lsRule.startServerVM(1, locatorPort);
gfshConnector.connect(locatorPort, GfshShellConnectionRule.PortType.locator);
gfshConnector.executeAndVerifyCommand("export logs");
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportStatsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportStatsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportStatsDUnitTest.java
index f1ba7ef..b7f8c2a 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportStatsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportStatsDUnitTest.java
@@ -28,8 +28,8 @@ import org.apache.geode.distributed.ConfigurationProperties;
import org.apache.geode.internal.AvailablePortHelper;
import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
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.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.junit.BeforeClass;
import org.junit.ClassRule;
@@ -58,7 +58,7 @@ public class ExportStatsDUnitTest {
protected static int jmxPort, httpPort;
protected static Set<String> expectedZipEntries = new HashSet<>();
- protected static Locator locator;
+ protected static MemberVM locator;
@BeforeClass
public static void beforeClass() throws Exception {
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-core/src/test/java/org/apache/geode/management/internal/cli/util/MergeLogsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/util/MergeLogsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/util/MergeLogsDUnitTest.java
index 80b9868..9166642 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/util/MergeLogsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/util/MergeLogsDUnitTest.java
@@ -22,9 +22,8 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.apache.commons.io.FileUtils;
import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.internal.logging.LogService;
-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.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.junit.Before;
import org.junit.Rule;
@@ -41,7 +40,7 @@ import java.util.Properties;
public class MergeLogsDUnitTest {
@Rule
public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
- private Locator locator;
+ private MemberVM locator;
private static final String MESSAGE_1 = "MergeLogsMessage1";
private static final String MESSAGE_2 = "MergeLogsMessage2";
@@ -59,8 +58,8 @@ public class MergeLogsDUnitTest {
properties.setProperty(DistributionConfig.LOCATORS_NAME,
"localhost[" + locator.getPort() + "]");
- Server server = lsRule.startServerVM(1, properties);
- Server server2 = lsRule.startServerVM(2, properties);
+ MemberVM server = lsRule.startServerVM(1, properties);
+ MemberVM server2 = lsRule.startServerVM(2, properties);
locator.invoke(() -> LogService.getLogger().info(MESSAGE_1));
server.invoke(() -> LogService.getLogger().info(MESSAGE_2));
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfig.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfig.java b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfig.java
index 4ac9886..c3d7f5e 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfig.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfig.java
@@ -21,8 +21,8 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE_SIZE
import static org.assertj.core.api.Assertions.assertThat;
import org.apache.geode.cache.Cache;
-import org.apache.geode.distributed.internal.InternalLocator;
import org.apache.geode.distributed.internal.ClusterConfigurationService;
+import org.apache.geode.distributed.internal.InternalLocator;
import org.apache.geode.internal.ClassPathLoader;
import org.apache.geode.internal.JarClassLoader;
import org.apache.geode.internal.JarDeployer;
@@ -31,7 +31,7 @@ import org.apache.geode.internal.lang.StringUtils;
import org.apache.geode.management.internal.configuration.domain.Configuration;
import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
-import org.apache.geode.test.dunit.rules.Member;
+import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.dunit.rules.Server;
import java.io.File;
@@ -77,21 +77,21 @@ public class ClusterConfig implements Serializable {
return Collections.unmodifiableList(groups);
}
- public void verify(Locator locator) {
- verifyLocator(locator);
- }
- public void verify(Server server) throws ClassNotFoundException {
- verifyServer(server);
+ public void verify(MemberVM memberVM) throws ClassNotFoundException {
+ if (memberVM.isLocator())
+ verifyLocator(memberVM);
+ else
+ verifyServer(memberVM);
}
- public void verifyLocator(Member locator) {
+ public void verifyLocator(MemberVM<Locator> locatorVM) {
Set<String> expectedGroupConfigs =
this.getGroups().stream().map(ConfigGroup::getName).collect(Collectors.toSet());
// verify info exists in memeory
- locator.invoke(() -> {
- InternalLocator internalLocator = LocatorServerStartupRule.locatorStarter.locator;
+ locatorVM.invoke(() -> {
+ InternalLocator internalLocator = LocatorServerStartupRule.locatorStarter.getLocator();
ClusterConfigurationService sc = internalLocator.getSharedConfiguration();
// verify no extra configs exist in memory
@@ -120,7 +120,7 @@ public class ClusterConfig implements Serializable {
});
- File clusterConfigDir = new File(locator.getWorkingDir(), "/cluster_config");
+ File clusterConfigDir = new File(locatorVM.getWorkingDir(), "/cluster_config");
for (ConfigGroup configGroup : this.getGroups()) {
Set<String> actualFiles =
@@ -131,16 +131,16 @@ public class ClusterConfig implements Serializable {
}
}
- public void verifyServer(Member server) throws ClassNotFoundException {
+ public void verifyServer(MemberVM<Server> serverVM) throws ClassNotFoundException {
// verify files exist in filesystem
Set<String> expectedJarNames = this.getJarNames().stream().map(ClusterConfig::getServerJarName)
.collect(Collectors.toSet());
Set<String> actualJarNames = toSetIgnoringHiddenFiles(
- server.getWorkingDir().list((dir, filename) -> filename.contains(".jar")));
+ serverVM.getWorkingDir().list((dir, filename) -> filename.contains(".jar")));
assertThat(actualJarNames).isEqualTo(expectedJarNames);
// verify config exists in memory
- server.invoke(() -> {
+ serverVM.invoke(() -> {
Cache cache = GemFireCacheImpl.getInstance();
// TODO: set compare to fail if there are extra regions
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 15e6ea6..7cc84d6 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
@@ -20,8 +20,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
import static org.assertj.core.api.Assertions.assertThat;
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.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.junit.Before;
import org.junit.Rule;
@@ -47,7 +46,7 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
public void testDeployToNoServer() throws Exception {
String clusterJarPath = clusterJar;
// set up the locator/servers
- Locator locator = lsRule.startLocatorVM(0, locatorProps);
+ MemberVM locator = lsRule.startLocatorVM(0, locatorProps);
gfshConnector.connect(locator);
assertThat(gfshConnector.isConnected()).isTrue();
@@ -59,18 +58,18 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
expectedClusterConfig.verify(locator);
// start a server and verify that the server gets the jar
- Server server1 = lsRule.startServerVM(1, locator.getPort());
+ MemberVM server1 = lsRule.startServerVM(1, locator.getPort());
expectedClusterConfig.verify(server1);
}
@Test
public void testDeployToMultipleLocators() throws Exception {
- Locator locator = lsRule.startLocatorVM(0, locatorProps);
+ MemberVM locator = lsRule.startLocatorVM(0, locatorProps);
locatorProps.setProperty(LOCATORS, "localhost[" + locator.getPort() + "]");
- Locator locator2 = lsRule.startLocatorVM(1, locatorProps);
+ MemberVM locator2 = lsRule.startLocatorVM(1, locatorProps);
locatorProps.setProperty(LOCATORS,
"localhost[" + locator.getPort() + "],localhost[" + locator2.getPort() + "]");
- Locator locator3 = lsRule.startLocatorVM(2, locatorProps);
+ MemberVM locator3 = lsRule.startLocatorVM(2, locatorProps);
// has to start a server in order to run deploy command
lsRule.startServerVM(3, serverProps, locator.getPort());
@@ -92,15 +91,15 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
@Test
public void testDeploy() throws Exception {
// set up the locator/servers
- Locator locator = lsRule.startLocatorVM(0, locatorProps);
+ MemberVM locator = lsRule.startLocatorVM(0, locatorProps);
// server1 in no group
- Server server1 = lsRule.startServerVM(1, serverProps, locator.getPort());
+ MemberVM server1 = lsRule.startServerVM(1, serverProps, locator.getPort());
// server2 in group1
serverProps.setProperty(GROUPS, "group1");
- Server server2 = lsRule.startServerVM(2, serverProps, locator.getPort());
+ MemberVM server2 = lsRule.startServerVM(2, serverProps, locator.getPort());
// server3 in group1 and group2
serverProps.setProperty(GROUPS, "group1,group2");
- Server server3 = lsRule.startServerVM(3, serverProps, locator.getPort());
+ MemberVM server3 = lsRule.startServerVM(3, serverProps, locator.getPort());
gfshConnector.connect(locator);
assertThat(gfshConnector.isConnected()).isTrue();
@@ -138,13 +137,13 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
@Test
public void testUndeploy() throws Exception {
// set up the locator/servers
- Locator locator = lsRule.startLocatorVM(0, locatorProps);
+ MemberVM locator = lsRule.startLocatorVM(0, locatorProps);
serverProps.setProperty(GROUPS, "group1");
- Server server1 = lsRule.startServerVM(1, serverProps, locator.getPort());
+ MemberVM server1 = lsRule.startServerVM(1, serverProps, locator.getPort());
serverProps.setProperty(GROUPS, "group2");
- Server server2 = lsRule.startServerVM(2, serverProps, locator.getPort());
+ MemberVM server2 = lsRule.startServerVM(2, serverProps, locator.getPort());
serverProps.setProperty(GROUPS, "group1,group2");
- Server server3 = lsRule.startServerVM(3, serverProps, locator.getPort());
+ MemberVM server3 = lsRule.startServerVM(3, serverProps, locator.getPort());
ConfigGroup cluster = new ConfigGroup("cluster");
ConfigGroup group1 = new ConfigGroup("group1");
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 e134c42..abbc5c0 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
@@ -30,9 +30,8 @@ import org.apache.geode.internal.ClassBuilder;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
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.dunit.rules.Server;
+import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.junit.Before;
import org.junit.Rule;
@@ -51,7 +50,7 @@ public class ClusterConfigDistributionDUnitTest {
private static final String INDEX2 = "ID2";
private static final String AsyncEventQueue1 = "Q1";
- private Locator locator;
+ private MemberVM locator;
@Rule
public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
@@ -110,10 +109,10 @@ public class ClusterConfigDistributionDUnitTest {
// Start a new member which receives the shared configuration
// Verify the config creation on this member
- Server server = lsRule.startServerVM(2, new Properties(), locator.getPort());
+ MemberVM server = lsRule.startServerVM(2, new Properties(), locator.getPort());
server.invoke(() -> {
- Cache cache = LocatorServerStartupRule.serverStarter.cache;
+ Cache cache = LocatorServerStartupRule.serverStarter.getCache();
assertNotNull(cache);
assertTrue(cache.getCopyOnRead());
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 72daf0d..696d22c 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
@@ -25,9 +25,8 @@ import org.apache.geode.cache.RegionShortcut;
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.LocatorServerStartupRule;
-import org.apache.geode.test.dunit.rules.Server;
+import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.junit.Before;
import org.junit.Rule;
@@ -49,27 +48,27 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
public static final ClusterConfig INITIAL_CONFIG = new ClusterConfig(new ConfigGroup("cluster"));
- private Locator locator;
+ private MemberVM locatorVM;
@Before
public void before() throws Exception {
super.before();
- locator = lsRule.startLocatorVM(0, locatorProps);
- INITIAL_CONFIG.verify(locator);
+ locatorVM = lsRule.startLocatorVM(0, locatorProps);
+ INITIAL_CONFIG.verify(locatorVM);
- gfshConnector.connect(locator);
+ gfshConnector.connect(locatorVM);
assertThat(gfshConnector.isConnected()).isTrue();
}
@Test
public void testImportWithRunningServerWithRegion() throws Exception {
- Server server1 = lsRule.startServerVM(1, serverProps, locator.getPort());
+ MemberVM server1 = lsRule.startServerVM(1, serverProps, locatorVM.getPort());
// create another server as well
- Server server2 = lsRule.startServerVM(2, serverProps, locator.getPort());
+ MemberVM server2 = lsRule.startServerVM(2, serverProps, locatorVM.getPort());
String regionName = "regionA";
server1.invoke(() -> {
// this region will be created on both servers, but we should only be getting the name once.
- Cache cache = LocatorServerStartupRule.serverStarter.cache;
+ Cache cache = LocatorServerStartupRule.serverStarter.getCache();
cache.createRegionFactory(RegionShortcut.REPLICATE).create(regionName);
});
@@ -82,10 +81,10 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
@Test
public void testImportWithRunningServer() throws Exception {
- Server server1 = lsRule.startServerVM(1, serverProps, locator.getPort());
+ MemberVM server1 = lsRule.startServerVM(1, serverProps, locatorVM.getPort());
serverProps.setProperty("groups", "group2");
- Server server2 = lsRule.startServerVM(2, serverProps, locator.getPort());
+ MemberVM server2 = lsRule.startServerVM(2, serverProps, locatorVM.getPort());
// even though we have a region recreated, we can still import since there is no data
// in the region
@@ -105,39 +104,39 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
"import cluster-configuration --zip-file-name=" + clusterConfigZipPath);
// Make sure that a backup of the old clusterConfig was created
- assertThat(locator.getWorkingDir().listFiles())
+ assertThat(locatorVM.getWorkingDir().listFiles())
.filteredOn((File file) -> file.getName().contains("cluster_config")).hasSize(2);
- CONFIG_FROM_ZIP.verify(locator);
+ CONFIG_FROM_ZIP.verify(locatorVM);
// start server1 with no group
- Server server1 = lsRule.startServerVM(1, serverProps, locator.getPort());
+ MemberVM server1 = lsRule.startServerVM(1, serverProps, locatorVM.getPort());
new ClusterConfig(CLUSTER).verify(server1);
// start server2 in group1
serverProps.setProperty(GROUPS, "group1");
- Server server2 = lsRule.startServerVM(2, serverProps, locator.getPort());
+ MemberVM server2 = lsRule.startServerVM(2, serverProps, locatorVM.getPort());
new ClusterConfig(CLUSTER, GROUP1).verify(server2);
// start server3 in group1 and group2
serverProps.setProperty(GROUPS, "group1,group2");
- Server server3 = lsRule.startServerVM(3, serverProps, locator.getPort());
+ MemberVM server3 = lsRule.startServerVM(3, serverProps, locatorVM.getPort());
new ClusterConfig(CLUSTER, GROUP1, GROUP2).verify(server3);
}
@Test
public void testImportWithMultipleLocators() throws Exception {
- locatorProps.setProperty(LOCATORS, "localhost[" + locator.getPort() + "]");
- Locator locator1 = lsRule.startLocatorVM(1, locatorProps);
+ locatorProps.setProperty(LOCATORS, "localhost[" + locatorVM.getPort() + "]");
+ MemberVM locator1 = lsRule.startLocatorVM(1, locatorProps);
locatorProps.setProperty(LOCATORS,
- "localhost[" + locator.getPort() + "],localhost[" + locator1.getPort() + "]");
- Locator locator2 = lsRule.startLocatorVM(2, locatorProps);
+ "localhost[" + locatorVM.getPort() + "],localhost[" + locator1.getPort() + "]");
+ MemberVM locator2 = lsRule.startLocatorVM(2, locatorProps);
gfshConnector.executeAndVerifyCommand(
"import cluster-configuration --zip-file-name=" + clusterConfigZipPath);
- CONFIG_FROM_ZIP.verify(locator);
+ CONFIG_FROM_ZIP.verify(locatorVM);
REPLICATED_CONFIG_FROM_ZIP.verify(locator1);
REPLICATED_CONFIG_FROM_ZIP.verify(locator2);
}
@@ -156,7 +155,7 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
}
public void testExportClusterConfig(String zipFilePath) throws Exception {
- Server server1 = lsRule.startServerVM(1, serverProps, locator.getPort());
+ MemberVM server1 = lsRule.startServerVM(1, serverProps, locatorVM.getPort());
gfshConnector.executeAndVerifyCommand("create region --name=myRegion --type=REPLICATE");
@@ -164,7 +163,7 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
ConfigGroup cluster = new ConfigGroup("cluster").regions("myRegion");
ClusterConfig expectedClusterConfig = new ClusterConfig(cluster);
expectedClusterConfig.verify(server1);
- expectedClusterConfig.verify(locator);
+ expectedClusterConfig.verify(locatorVM);
gfshConnector
.executeAndVerifyCommand("export cluster-configuration --zip-file-name=" + zipFilePath);
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigStartMemberDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigStartMemberDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigStartMemberDUnitTest.java
index c0d22bf..652ec60 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigStartMemberDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigStartMemberDUnitTest.java
@@ -23,8 +23,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOAD_CLUSTER_
import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
import org.apache.geode.management.internal.configuration.utils.ZipUtils;
-import org.apache.geode.test.dunit.rules.Locator;
-import org.apache.geode.test.dunit.rules.Server;
+import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.junit.Before;
import org.junit.Test;
@@ -35,7 +34,7 @@ import java.util.Properties;
@Category(DistributedTest.class)
public class ClusterConfigStartMemberDUnitTest extends ClusterConfigBaseTest {
- protected Locator locator;
+ protected MemberVM locator;
@Before
public void before() throws Exception {
@@ -46,7 +45,7 @@ public class ClusterConfigStartMemberDUnitTest extends ClusterConfigBaseTest {
@Test
public void testStartLocator() throws Exception {
locatorProps.setProperty(LOCATORS, "localhost[" + locator.getPort() + "]");
- Locator secondLocator = lsRule.startLocatorVM(1, locatorProps);
+ MemberVM secondLocator = lsRule.startLocatorVM(1, locatorProps);
REPLICATED_CONFIG_FROM_ZIP.verify(secondLocator);
}
@@ -57,15 +56,15 @@ public class ClusterConfigStartMemberDUnitTest extends ClusterConfigBaseTest {
ClusterConfig expectedGroup1Config = new ClusterConfig(CLUSTER, GROUP1);
ClusterConfig expectedGroup2Config = new ClusterConfig(CLUSTER, GROUP2);
- Server serverWithNoGroup = lsRule.startServerVM(1, serverProps, locator.getPort());
+ MemberVM serverWithNoGroup = lsRule.startServerVM(1, serverProps, locator.getPort());
expectedNoGroupConfig.verify(serverWithNoGroup);
serverProps.setProperty(GROUPS, "group1");
- Server serverForGroup1 = lsRule.startServerVM(2, serverProps, locator.getPort());
+ MemberVM serverForGroup1 = lsRule.startServerVM(2, serverProps, locator.getPort());
expectedGroup1Config.verify(serverForGroup1);
serverProps.setProperty(GROUPS, "group2");
- Server serverForGroup2 = lsRule.startServerVM(3, serverProps, locator.getPort());
+ MemberVM serverForGroup2 = lsRule.startServerVM(3, serverProps, locator.getPort());
expectedGroup2Config.verify(serverForGroup2);
}
@@ -74,12 +73,12 @@ public class ClusterConfigStartMemberDUnitTest extends ClusterConfigBaseTest {
ClusterConfig expectedGroup1And2Config = new ClusterConfig(CLUSTER, GROUP1, GROUP2);
serverProps.setProperty(GROUPS, "group1,group2");
- Server server = lsRule.startServerVM(1, serverProps, locator.getPort());
+ MemberVM server = lsRule.startServerVM(1, serverProps, locator.getPort());
expectedGroup1And2Config.verify(server);
}
- private Locator startLocatorWithLoadCCFromDir() throws Exception {
+ private MemberVM startLocatorWithLoadCCFromDir() throws Exception {
File locatorDir = lsRule.getTempFolder().newFolder("locator-0");
File configDir = new File(locatorDir, "cluster_config");
@@ -96,7 +95,7 @@ public class ClusterConfigStartMemberDUnitTest extends ClusterConfigBaseTest {
properties.setProperty(LOAD_CLUSTER_CONFIGURATION_FROM_DIR, "true");
properties.setProperty(CLUSTER_CONFIGURATION_DIR, locatorDir.getCanonicalPath());
- Locator locator = lsRule.startLocatorVM(0, properties);
+ MemberVM locator = lsRule.startLocatorVM(0, properties);
CONFIG_FROM_ZIP.verify(locator);
return locator;
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 4d67fb0..c551ca9 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
@@ -28,8 +28,8 @@ 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.rules.GfshShellConnectionRule;
-import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
+import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.SecurityTest;
import org.junit.Before;
@@ -51,7 +51,7 @@ public class ClusterConfigWithSecurityDUnitTest {
@Rule
public GfshShellConnectionRule connector = new GfshShellConnectionRule();
- Locator locator0;
+ MemberVM locator0;
Properties locatorProps;
@Before
@@ -70,11 +70,11 @@ public class ClusterConfigWithSecurityDUnitTest {
locatorProps.setProperty(LOCATORS, "localhost[" + locator0.getPort() + "]");
locatorProps.setProperty("security-username", "cluster");
locatorProps.setProperty("security-password", "cluster");
- Locator locator1 = lsRule.startLocatorVM(1, locatorProps);
+ MemberVM locator1 = lsRule.startLocatorVM(1, locatorProps);
// the second locator should inherit the first locator's security props
locator1.invoke(() -> {
- InternalLocator locator = LocatorServerStartupRule.locatorStarter.locator;
+ InternalLocator locator = LocatorServerStartupRule.locatorStarter.getLocator();
ClusterConfigurationService sc = locator.getSharedConfiguration();
Properties clusterConfigProps = sc.getConfiguration("cluster").getGemfireProperties();
assertThat(clusterConfigProps.getProperty(SECURITY_MANAGER))
@@ -92,7 +92,7 @@ public class ClusterConfigWithSecurityDUnitTest {
"import cluster-configuration --zip-file-name=" + clusterConfigZipPath);
locator0.invoke(() -> {
- InternalLocator locator = LocatorServerStartupRule.locatorStarter.locator;
+ InternalLocator locator = LocatorServerStartupRule.locatorStarter.getLocator();
ClusterConfigurationService sc = locator.getSharedConfiguration();
Properties properties = sc.getConfiguration("cluster").getGemfireProperties();
assertThat(properties.getProperty(MCAST_PORT)).isEqualTo("0");
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerStartupRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerStartupRule.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerStartupRule.java
index 30e1df8..1107779 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerStartupRule.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerStartupRule.java
@@ -56,7 +56,7 @@ public class CacheServerStartupRule extends ExternalResource implements Serializ
public void before() throws Throwable {
serverStarter.before();
serverStarter.startServer(properties);
- serverStarter.cache.createRegionFactory().create("region1");
+ serverStarter.getCache().createRegionFactory().create("region1");
}
@After
@@ -65,10 +65,10 @@ public class CacheServerStartupRule extends ExternalResource implements Serializ
}
public Cache getCache() {
- return serverStarter.cache;
+ return serverStarter.getCache();
}
public int getServerPort() {
- return serverStarter.server.getPort();
+ return serverStarter.getPort();
}
}
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 6468195..62c0b85 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
@@ -53,15 +53,15 @@ public class GfshCommandsPostProcessorTest {
@ClassRule
- public static ServerStarterRule serverStarter = new ServerStarterRule();
+ public static ServerStarterRule serverStarter = new ServerStarterRule().startServer(properties);
+
@Rule
public GfshShellConnectionRule gfshConnection =
new GfshShellConnectionRule(jmxPort, GfshShellConnectionRule.PortType.jmxManger);
@BeforeClass
public static void beforeClass() throws Exception {
- serverStarter.startServer(properties);
- serverStarter.cache.createRegionFactory(RegionShortcut.REPLICATE).create("region1");
+ serverStarter.getCache().createRegionFactory(RegionShortcut.REPLICATE).create("region1");
}
@Test
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 ef8b7f1..45d437a 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
@@ -78,12 +78,11 @@ public class GfshCommandsSecurityTest {
new GfshShellConnectionRule(jmxPort, GfshShellConnectionRule.PortType.jmxManger);
@ClassRule
- public static ServerStarterRule serverStarter = new ServerStarterRule();
+ public static ServerStarterRule serverStarter = new ServerStarterRule().startServer(properties);
@BeforeClass
public static void beforeClass() throws Exception {
- serverStarter.startServer(properties);
- serverStarter.cache.createRegionFactory(RegionShortcut.REPLICATE).create("region1");
+ serverStarter.getCache().createRegionFactory(RegionShortcut.REPLICATE).create("region1");
}
@Test
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-core/src/test/java/org/apache/geode/security/AbstractSecureServerDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/AbstractSecureServerDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/AbstractSecureServerDUnitTest.java
index b6d1080..f8d90db 100644
--- a/geode-core/src/test/java/org/apache/geode/security/AbstractSecureServerDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/AbstractSecureServerDUnitTest.java
@@ -53,7 +53,8 @@ public abstract class AbstractSecureServerDUnitTest extends JUnit4DistributedTes
protected boolean pdxPersistent = false;
@Rule
- public transient ServerStarterRule serverStarter = new ServerStarterRule();
+ public transient ServerStarterRule serverStarter =
+ new ServerStarterRule().startServer(getProperties(), 0, pdxPersistent);
// overwrite this in child classes
public Properties getProperties() {
@@ -77,10 +78,9 @@ public abstract class AbstractSecureServerDUnitTest extends JUnit4DistributedTes
@Before
public void before() throws Exception {
- serverStarter.startServer(getProperties(), 0, pdxPersistent);
- serverPort = serverStarter.server.getPort();
+ serverPort = serverStarter.getServer().getPort();
Region region =
- serverStarter.cache.createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME);
+ serverStarter.getCache().createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME);
for (Entry entry : getData().entrySet()) {
region.put(entry.getKey(), entry.getValue());
}
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 5d713f6..805d000 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
@@ -72,7 +72,7 @@ public class ClusterConfigWithoutSecurityDUnitTest {
// initial security properties should only contain initial set of values
serverStarter.startServer(props, lsRule.getMember(0).getPort());
- DistributedSystem ds = serverStarter.cache.getDistributedSystem();
+ DistributedSystem ds = serverStarter.getCache().getDistributedSystem();
// after cache is created, the configuration won't chagne
Properties secProps = ds.getSecurityProperties();
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 12c2da3..4f84f7b 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
@@ -75,7 +75,7 @@ public class SecurityClusterConfigDUnitTest {
// initial security properties should only contain initial set of values
serverStarter.startServer(props, lsRule.getMember(0).getPort());
- DistributedSystem ds = serverStarter.cache.getDistributedSystem();
+ DistributedSystem ds = serverStarter.getCache().getDistributedSystem();
// after cache is created, we got the security props passed in by cluster config
Properties secProps = ds.getSecurityProperties();
@@ -96,7 +96,7 @@ public class SecurityClusterConfigDUnitTest {
// initial security properties should only contain initial set of values
serverStarter.startServer(props, lsRule.getMember(0).getPort());
- DistributedSystem ds = serverStarter.cache.getDistributedSystem();
+ DistributedSystem ds = serverStarter.getCache().getDistributedSystem();
// after cache is created, we got the security props passed in by cluster config
Properties secProps = ds.getSecurityProperties();
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 092e82b..52a4ce4 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
@@ -73,7 +73,7 @@ public class SecurityWithoutClusterConfigDUnitTest {
// initial security properties should only contain initial set of values
serverStarter.startServer(props, lsRule.getMember(0).getPort());
- DistributedSystem ds = serverStarter.cache.getDistributedSystem();
+ DistributedSystem ds = serverStarter.getCache().getDistributedSystem();
assertEquals(3, ds.getSecurityProperties().size());
// after cache is created, we got the security props passed in by cluster config
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 f5cfff6..ef25ace 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
@@ -20,6 +20,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
+import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.dunit.rules.ServerStarterRule;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.SecurityTest;
@@ -36,7 +37,7 @@ public class StartServerAuthorizationTest {
@ClassRule
public static LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
- private static Locator locator = null;
+ private static MemberVM<Locator> locator = null;
@Rule
public ServerStarterRule serverStarter = new ServerStarterRule();
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 f35e3e9..f367458 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
@@ -86,11 +86,11 @@ public class GfshShellConnectionRule extends DescribedExternalResource {
}
- public void connect(Locator locator, String... options) throws Exception {
+ public void connect(MemberVM locator, String... options) throws Exception {
connect(locator.getPort(), PortType.locator, options);
}
- public void connectAndVerify(Locator locator, String... options) throws Exception {
+ public void connectAndVerify(MemberVM locator, String... options) throws Exception {
connect(locator.getPort(), PortType.locator, options);
assertThat(this.connected).isTrue();
}
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 b1004b9..59f1506 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
@@ -16,11 +16,8 @@
package org.apache.geode.test.dunit.rules;
-import java.io.File;
+import org.apache.geode.distributed.internal.InternalLocator;
-public class Locator extends Member {
-
- public Locator(int port, File workingDir, String name) {
- super(port, workingDir, name);
- }
+public interface Locator extends Member {
+ InternalLocator getLocator();
}
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 d5a4dfb..01e346a 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
@@ -55,7 +55,7 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
new DistributedRestoreSystemProperties();
private TemporaryFolder temporaryFolder = new SerializableTemporaryFolder();
- private Member[] members;
+ private MemberVM[] members;
public LocatorServerStartupRule() {
DUnitLauncher.launchIfNeeded();
@@ -66,7 +66,7 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
restoreSystemProperties.before();
temporaryFolder.create();
Invoke.invokeInEveryVM("Stop each VM", this::cleanupVm);
- members = new Member[4];
+ members = new MemberVM[4];
}
@Override
@@ -77,7 +77,7 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
temporaryFolder.delete();
}
- public Locator startLocatorVM(int index) throws IOException {
+ public MemberVM startLocatorVM(int index) throws IOException {
return startLocatorVM(index, new Properties());
}
@@ -87,7 +87,8 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
*
* @return VM locator vm
*/
- public Locator startLocatorVM(int index, Properties locatorProperties) throws IOException {
+ public MemberVM<Locator> startLocatorVM(int index, Properties locatorProperties)
+ throws IOException {
String name = "locator-" + index;
locatorProperties.setProperty(NAME, name);
File workingDir = createWorkingDirForMember(name);
@@ -97,12 +98,11 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
locatorStarter.before();
return locatorStarter.startLocator(locatorProperties);
});
- locator.setVM(locatorVM);
- members[index] = locator;
- return locator;
+ members[index] = new MemberVM(locator, locatorVM);
+ return members[index];
}
- public Server startServerVM(int index) throws IOException {
+ public MemberVM startServerVM(int index) throws IOException {
return startServerVM(index, new Properties(), -1);
}
@@ -111,24 +111,21 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
*
* @return VM node vm
*/
- public Server startServerVM(int index, Properties properties) throws IOException {
+ public MemberVM startServerVM(int index, Properties properties) throws IOException {
return startServerVM(index, properties, -1);
}
- /**
- * start a server that connects to this locatorPort
- */
- public Server startServerVM(int index, int locatorPort) throws IOException {
+ public MemberVM startServerVM(int index, int locatorPort) throws IOException {
return startServerVM(index, new Properties(), locatorPort);
}
- public Server startServerAsJmxManager(int index, int jmxManagerPort) throws IOException {
+ public MemberVM startServerAsJmxManager(int index, int jmxManagerPort) throws IOException {
Properties properties = new Properties();
properties.setProperty(JMX_MANAGER_PORT, jmxManagerPort + "");
return startServerVM(index, properties);
}
- public Server startServerAsEmbededLocator(int index, int locatorPort, int jmxManagerPort)
+ public MemberVM startServerAsEmbededLocator(int index, int locatorPort, int jmxManagerPort)
throws IOException {
Properties properties = new Properties();
properties.setProperty("start-locator", "localhost[" + locatorPort + "]");
@@ -141,7 +138,7 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
/**
* Starts a cache server that connect to the locator running at the given port.
*/
- public Server startServerVM(int index, Properties properties, int locatorPort)
+ public MemberVM startServerVM(int index, Properties properties, int locatorPort)
throws IOException {
String name = "server-" + index;
@@ -154,9 +151,8 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
serverStarter.before();
return serverStarter.startServer(properties, locatorPort);
});
- server.setVM(serverVM);
- members[index] = server;
- return server;
+ members[index] = new MemberVM(server, serverVM);
+ return members[index];
}
/**
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterRule.java
index 2ec2088..5d6a0be 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterRule.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterRule.java
@@ -21,17 +21,14 @@ import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_S
import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE;
import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
import static org.apache.geode.distributed.ConfigurationProperties.NAME;
+import static org.apache.geode.distributed.Locator.startLocatorAndDS;
import static org.junit.Assert.assertTrue;
-import org.apache.commons.io.FileUtils;
-import org.apache.geode.distributed.Locator;
import org.apache.geode.distributed.internal.InternalLocator;
import org.awaitility.Awaitility;
-import org.junit.rules.ExternalResource;
import java.io.File;
-import java.io.Serializable;
-import java.nio.file.Files;
+import java.io.IOException;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
@@ -47,12 +44,9 @@ import java.util.concurrent.TimeUnit;
* use {@link LocatorServerStartupRule}.
*/
-public class LocatorStarterRule extends ExternalResource implements Serializable {
+public class LocatorStarterRule extends MemberStarterRule implements Locator {
- public InternalLocator locator;
-
- private File workingDir;
- private String oldUserDir;
+ private transient InternalLocator locator;
public LocatorStarterRule() {}
@@ -60,42 +54,29 @@ public class LocatorStarterRule extends ExternalResource implements Serializable
this.workingDir = workingDir.getAbsoluteFile();
}
- @Override
- protected void before() throws Exception {
- oldUserDir = System.getProperty("user.dir");
- if (workingDir == null) {
- workingDir = Files.createTempDirectory("locator").toAbsolutePath().toFile();
- }
- System.setProperty("user.dir", workingDir.toString());
+ public InternalLocator getLocator() {
+ return locator;
}
@Override
- protected void after() {
+ protected void stopMember() {
if (locator != null) {
locator.stop();
}
- FileUtils.deleteQuietly(workingDir);
- if (oldUserDir == null) {
- System.clearProperty("user.dir");
- } else {
- System.setProperty("user.dir", oldUserDir);
- }
}
-
- public org.apache.geode.test.dunit.rules.Locator startLocator() throws Exception {
+ public LocatorStarterRule startLocator() {
return startLocator(new Properties());
}
- public org.apache.geode.test.dunit.rules.Locator startLocator(Properties properties)
- throws Exception {
+ public LocatorStarterRule startLocator(Properties properties) {
if (properties == null)
properties = new Properties();
if (!properties.containsKey(NAME)) {
properties.setProperty(NAME, "locator");
}
- String name = properties.getProperty(NAME);
+ name = properties.getProperty(NAME);
if (!properties.containsKey(LOG_FILE)) {
properties.setProperty(LOG_FILE, new File(name + ".log").getAbsolutePath());
}
@@ -104,7 +85,7 @@ public class LocatorStarterRule extends ExternalResource implements Serializable
properties.setProperty(MCAST_PORT, "0");
}
if (properties.containsKey(JMX_MANAGER_PORT)) {
- int jmxPort = Integer.parseInt(properties.getProperty(JMX_MANAGER_PORT));
+ jmxPort = Integer.parseInt(properties.getProperty(JMX_MANAGER_PORT));
if (jmxPort > 0) {
if (!properties.containsKey(JMX_MANAGER)) {
properties.put(JMX_MANAGER, "true");
@@ -114,15 +95,18 @@ public class LocatorStarterRule extends ExternalResource implements Serializable
}
}
}
-
- locator = (InternalLocator) Locator.startLocatorAndDS(0, null, properties);
- int locatorPort = locator.getPort();
- locator.resetInternalLocatorFileNamesWithCorrectPortNumber(locatorPort);
+ try {
+ locator = (InternalLocator) startLocatorAndDS(0, null, properties);
+ } catch (IOException e) {
+ throw new RuntimeException("unable to start up locator.", e);
+ }
+ memberPort = locator.getPort();
+ locator.resetInternalLocatorFileNamesWithCorrectPortNumber(memberPort);
if (locator.getConfig().getEnableClusterConfiguration()) {
Awaitility.await().atMost(65, TimeUnit.SECONDS)
.until(() -> assertTrue(locator.isSharedConfigurationRunning()));
}
- return new org.apache.geode.test.dunit.rules.Locator(locatorPort, workingDir, name);
+ return this;
}
}
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 59215a3..6165c84 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
@@ -11,62 +11,19 @@
* 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.test.dunit.rules;
-import org.apache.geode.test.dunit.SerializableRunnableIF;
-import org.apache.geode.test.dunit.VM;
-
import java.io.File;
import java.io.Serializable;
-/**
- * A server or locator inside a DUnit {@link VM}.
- */
-public abstract class Member implements Serializable {
- private transient VM vm;
- private int port;
- private File workingDir;
- private String name;
-
- public Member(int port, File workingDir, String name) {
- this.vm = vm;
- this.port = port;
- this.workingDir = workingDir;
- this.name = name;
- }
-
- /**
- * The VM object is an RMI stub which lets us execute code in the JVM of this member.
- *
- * @return the {@link VM}
- */
- public VM getVM() {
- return vm;
- }
-
- public void setVM(VM vm) {
- this.vm = vm;
- }
-
- public int getPort() {
- return port;
- }
+public interface Member extends Serializable {
+ File getWorkingDir();
- public File getWorkingDir() {
- return workingDir;
- }
+ int getPort();
- public String getName() {
- return name;
- }
+ int getJmxPort();
- /**
- * Invokes {@code runnable.run()} in the {@code VM} of this member.
- */
- public void invoke(final SerializableRunnableIF runnable) {
- this.vm.invoke(runnable);
- }
+ String getName();
}
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberStarterRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberStarterRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberStarterRule.java
new file mode 100644
index 0000000..7591616
--- /dev/null
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberStarterRule.java
@@ -0,0 +1,84 @@
+/*
+ * 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.test.dunit.rules;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.geode.test.dunit.VM;
+import org.junit.rules.ExternalResource;
+import org.junit.rules.TemporaryFolder;
+
+import java.io.File;
+
+/**
+ * A server or locator inside a DUnit {@link VM}.
+ */
+public abstract class MemberStarterRule extends ExternalResource implements Member {
+ protected TemporaryFolder temporaryFolder;
+ protected String oldUserDir;
+
+ protected File workingDir;
+ protected int memberPort = -1;
+ protected int jmxPort = -1;
+ protected String name;
+
+ @Override
+ public void before() throws Exception {
+ oldUserDir = System.getProperty("user.dir");
+ if (workingDir == null) {
+ temporaryFolder = new TemporaryFolder();
+ temporaryFolder.create();
+ workingDir = temporaryFolder.newFolder("locator").getAbsoluteFile();
+ }
+ System.setProperty("user.dir", workingDir.toString());
+ }
+
+ @Override
+ public void after() {
+ stopMember();
+ FileUtils.deleteQuietly(workingDir);
+ if (oldUserDir == null) {
+ System.clearProperty("user.dir");
+ } else {
+ System.setProperty("user.dir", oldUserDir);
+ }
+ if (temporaryFolder != null) {
+ temporaryFolder.delete();
+ }
+ }
+
+ abstract void stopMember();
+
+ @Override
+ public File getWorkingDir() {
+ return workingDir;
+ }
+
+ @Override
+ public int getPort() {
+ return memberPort;
+ }
+
+ @Override
+ public int getJmxPort() {
+ return jmxPort;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+}
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberVM.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberVM.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberVM.java
new file mode 100644
index 0000000..988f5d4
--- /dev/null
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberVM.java
@@ -0,0 +1,67 @@
+/*
+ * 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.test.dunit.rules;
+
+import org.apache.geode.test.dunit.SerializableRunnableIF;
+import org.apache.geode.test.dunit.VM;
+
+import java.io.File;
+
+public class MemberVM<T extends Member> implements Member {
+ private T member;
+ private VM vm;
+
+ public MemberVM(T member, VM vm) {
+ this.member = member;
+ this.vm = vm;
+ }
+
+ public boolean isLocator() {
+ return (member instanceof Locator);
+ }
+
+ public VM getVM() {
+ return vm;
+ }
+
+ public void invoke(final SerializableRunnableIF runnable) {
+ vm.invoke(runnable);
+ }
+
+ public T getMember() {
+ return member;
+ }
+
+ @Override
+ public File getWorkingDir() {
+ return member.getWorkingDir();
+ }
+
+ @Override
+ public int getPort() {
+ return member.getPort();
+ }
+
+ @Override
+ public int getJmxPort() {
+ return member.getJmxPort();
+ }
+
+ @Override
+ public String getName() {
+ return member.getName();
+ }
+}
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 83093c4..fb8630a 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
@@ -16,10 +16,12 @@
package org.apache.geode.test.dunit.rules;
-import java.io.File;
+import org.apache.geode.cache.Cache;
+import org.apache.geode.cache.server.CacheServer;
+
+public interface Server extends Member {
+ Cache getCache();
+
+ CacheServer getServer();
-public class Server extends Member {
- public Server(int port, File workingDir, String name) {
- super(port, workingDir, name);
- }
}
http://git-wip-us.apache.org/repos/asf/geode/blob/5ca8dda8/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 df37579..0454340 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
@@ -23,16 +23,13 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE;
import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
import static org.apache.geode.distributed.ConfigurationProperties.NAME;
-import org.apache.commons.io.FileUtils;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.CacheFactory;
import org.apache.geode.cache.server.CacheServer;
import org.apache.geode.internal.cache.GemFireCacheImpl;
-import org.junit.rules.ExternalResource;
import java.io.File;
-import java.io.Serializable;
-import java.nio.file.Files;
+import java.io.IOException;
import java.util.Properties;
@@ -50,61 +47,79 @@ import java.util.Properties;
* If you need a rule to start a server/locator in different VMs for Distributed tests, You should
* use {@link LocatorServerStartupRule}.
*/
-public class ServerStarterRule extends ExternalResource implements Serializable {
+public class ServerStarterRule extends MemberStarterRule implements Server {
- public Cache cache;
- public CacheServer server;
-
- private File workingDir;
- private String oldUserDir;
+ private transient Cache cache;
+ private transient CacheServer server;
/**
- * Default constructor, if used, the rule won't start the server for you, you will need to
- * manually start it. The rule will handle stop the server for you.
+ * Default constructor, if used, the rule will create a temporary folder as the server's working
+ * dir, and will delete it when the test is done.
*/
public ServerStarterRule() {}
+ /**
+ * if constructed this way, the rule won't be deleting the workingDir after the test is done. It's
+ * up to the caller's responsibility to delete it.
+ *
+ * @param workingDir: the working dir this server should be writing the artifacts to.
+ */
public ServerStarterRule(File workingDir) {
this.workingDir = workingDir;
}
- public void before() throws Exception {
- oldUserDir = System.getProperty("user.dir");
- if (workingDir == null) {
- workingDir = Files.createTempDirectory("server").toAbsolutePath().toFile();
+ public Cache getCache() {
+ return cache;
+ }
+
+ public CacheServer getServer() {
+ return server;
+ }
+
+ @Override
+ void stopMember() {
+ // 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) {
+ cache.close();
+ cache = null;
+ }
+ if (server != null) {
+ server.stop();
+ server = null;
}
- System.setProperty("user.dir", workingDir.toString());
}
- public Server startServer() throws Exception {
+ public ServerStarterRule startServer() {
return startServer(new Properties(), -1, false);
}
- public Server startServer(int locatorPort) throws Exception {
+ public ServerStarterRule startServer(int locatorPort) {
return startServer(new Properties(), locatorPort, false);
}
- public Server startServer(int locatorPort, boolean pdxPersistent) throws Exception {
+ public ServerStarterRule startServer(int locatorPort, boolean pdxPersistent) {
return startServer(new Properties(), locatorPort, pdxPersistent);
}
- public Server startServer(Properties properties) throws Exception {
+ public ServerStarterRule startServer(Properties properties) {
return startServer(properties, -1, false);
}
- public Server startServer(Properties properties, int locatorPort) throws Exception {
+ public ServerStarterRule startServer(Properties properties, int locatorPort) {
return startServer(properties, locatorPort, false);
}
- public Server startServer(Properties properties, int locatorPort, boolean pdxPersistent)
- throws Exception {
+ public ServerStarterRule startServer(Properties properties, int locatorPort,
+ boolean pdxPersistent) {
if (properties == null) {
properties = new Properties();
}
if (!properties.containsKey(NAME)) {
properties.setProperty(NAME, "server");
}
- String name = properties.getProperty(NAME);
+ name = properties.getProperty(NAME);
if (!properties.containsKey(LOG_FILE)) {
properties.setProperty(LOG_FILE, new File(name + ".log").getAbsolutePath().toString());
}
@@ -120,7 +135,7 @@ public class ServerStarterRule extends ExternalResource implements Serializable
properties.setProperty(LOCATORS, "");
}
if (properties.containsKey(JMX_MANAGER_PORT)) {
- int jmxPort = Integer.parseInt(properties.getProperty(JMX_MANAGER_PORT));
+ jmxPort = Integer.parseInt(properties.getProperty(JMX_MANAGER_PORT));
if (jmxPort > 0) {
if (!properties.containsKey(JMX_MANAGER))
properties.put(JMX_MANAGER, "true");
@@ -134,28 +149,12 @@ public class ServerStarterRule extends ExternalResource implements Serializable
cache = cf.create();
server = cache.addCacheServer();
server.setPort(0);
- server.start();
- return new Server(server.getPort(), workingDir, name);
- }
-
- @Override
- public void after() {
- // 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) {
- cache.close();
- cache = null;
- }
- if (server != null) {
- server.stop();
- server = null;
- }
- FileUtils.deleteQuietly(workingDir);
- if (oldUserDir == null) {
- System.clearProperty("user.dir");
- } else {
- System.setProperty("user.dir", oldUserDir);
+ try {
+ server.start();
+ } catch (IOException e) {
+ throw new RuntimeException("unable to start server", e);
}
+ memberPort = server.getPort();
+ return this;
}
}