revert "refactor test rules"
Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/0d0c7c42 Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/0d0c7c42 Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/0d0c7c42 Branch: refs/heads/develop Commit: 0d0c7c424240bf94bda641b4bb5f202ce82dc0e4 Parents: da6f8d1 Author: Jinmei Liao <jil...@pivotal.io> Authored: Wed Feb 8 09:55:52 2017 -0800 Committer: Jinmei Liao <jil...@pivotal.io> Committed: Wed Feb 8 09:55:52 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, 362 insertions(+), 403 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 b547290..28d50da 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,12 +16,13 @@ package org.apache.geode.tools.pulse; -import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +import static org.assertj.core.api.Assertions.assertThat; 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; @@ -46,6 +47,7 @@ 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; @@ -59,15 +61,14 @@ import java.util.Properties; import java.util.concurrent.TimeUnit; @Category(DistributedTest.class) -public class PulseDataExportTest { +public class PulseDataExportTest extends JUnit4DistributedTestCase { @Rule public LocatorServerStartupRule lsRule = new LocatorServerStartupRule(); private Locator locator; private org.apache.geode.test.dunit.rules.Server server; - @Rule - public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule(); + private GfshShellConnectionRule gfshConnector; private HttpClient httpClient; private CookieStore cookieStore; @@ -79,7 +80,8 @@ public class PulseDataExportTest { locator = lsRule.startLocatorVMWithPulse(0, new Properties()); - gfshConnector.connect(locator); + gfshConnector = new GfshShellConnectionRule(locator); + gfshConnector.connect(); assertThat(gfshConnector.isConnected()).isTrue(); server = lsRule.startServerVM(1, locator.getPort()); http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 83a367e..9d678e1 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,10 +38,11 @@ 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; @@ -56,16 +57,13 @@ import java.io.OutputStream; import java.util.Properties; @Category(DistributedTest.class) -public class ConnectToLocatorSSLDUnitTest { +public class ConnectToLocatorSSLDUnitTest extends JUnit4DistributedTestCase { @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; @@ -83,16 +81,20 @@ public class ConnectToLocatorSSLDUnitTest { } private void setUpLocatorAndConnect(Properties securityProps) throws Exception { - Locator locator = lsRule.startLocatorVM(0, securityProps); + lsRule.startLocatorVM(0, securityProps); // saving the securityProps to a file OutputStream out = new FileOutputStream(securityPropsFile); securityProps.store(out, null); - gfshConnector.connect(locator, CliStrings.CONNECT__SECURITY_PROPERTIES, + GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule( + lsRule.getMember(0).getPort(), GfshShellConnectionRule.PortType.locator); + + gfshConnector.connect(CliStrings.CONNECT__SECURITY_PROPERTIES, securityPropsFile.getCanonicalPath()); assertTrue(gfshConnector.isConnected()); + gfshConnector.close(); } @Test http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 deleted file mode 100644 index 3ee0c46..0000000 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/NetstatDUnitTest.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more contributor license - * agreements. See the NOTICE file distributed with this work for additional information regarding - * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ - -package org.apache.geode.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/0d0c7c42/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 cecc8cf..cc0fff2 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,10 +18,12 @@ 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; @@ -30,7 +32,7 @@ import java.io.File; import java.io.IOException; import java.util.Properties; -public class ClusterConfigBaseTest { +public class ClusterConfigBaseTest extends JUnit4DistributedTestCase { public String clusterConfigZipPath; public static final ConfigGroup CLUSTER = new ConfigGroup("cluster").regions("regionForCluster") http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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..79f0128 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,37 +19,51 @@ 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 { - @Rule - public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule(); + private GfshShellConnectionRule gfshConnector; 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.connect(locator); + gfshConnector = new GfshShellConnectionRule(locator); + gfshConnector.connect(); assertThat(gfshConnector.isConnected()).isTrue(); gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJarPath); @@ -75,10 +89,13 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest { // has to start a server in order to run deploy command lsRule.startServerVM(3, serverProps, locator.getPort()); - gfshConnector.connect(locator); + gfshConnector = + new GfshShellConnectionRule(locator.getPort(), GfshShellConnectionRule.PortType.locator); + gfshConnector.connect(); assertThat(gfshConnector.isConnected()).isTrue(); - gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJar); + CommandResult result = gfshConnector.executeCommand("deploy --jar=" + clusterJar); + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); ConfigGroup cluster = new ConfigGroup("cluster").jars("cluster.jar"); ClusterConfig expectedClusterConfig = new ClusterConfig(cluster); @@ -102,10 +119,13 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest { serverProps.setProperty(GROUPS, "group1,group2"); Server server3 = lsRule.startServerVM(3, serverProps, locator.getPort()); - gfshConnector.connect(locator); + gfshConnector = + new GfshShellConnectionRule(locator.getPort(), GfshShellConnectionRule.PortType.locator); + gfshConnector.connect(); assertThat(gfshConnector.isConnected()).isTrue(); - gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJar); + CommandResult result = gfshConnector.executeCommand("deploy --jar=" + clusterJar); + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); ConfigGroup cluster = new ConfigGroup("cluster").jars("cluster.jar"); ClusterConfig expectedClusterConfig = new ClusterConfig(cluster); @@ -114,7 +134,8 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest { expectedClusterConfig.verify(server2); expectedClusterConfig.verify(server3); - gfshConnector.executeAndVerifyCommand("deploy --jar=" + group1Jar + " --group=group1"); + result = gfshConnector.executeCommand("deploy --jar=" + group1Jar + " --group=group1"); + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); ConfigGroup group1 = new ConfigGroup("group1").jars("group1.jar"); ClusterConfig expectedGroup1Config = new ClusterConfig(cluster, group1); @@ -123,7 +144,8 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest { expectedGroup1Config.verify(server2); expectedGroup1Config.verify(server3); - gfshConnector.executeAndVerifyCommand("deploy --jar=" + group2Jar + " --group=group2"); + result = gfshConnector.executeCommand("deploy --jar=" + group2Jar + " --group=group2"); + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); ConfigGroup group2 = new ConfigGroup("group2").jars("group2.jar"); ClusterConfig expectedGroup1and2Config = new ClusterConfig(cluster, group1, group2); @@ -154,10 +176,13 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest { ClusterConfig server2Config = new ClusterConfig(cluster, group2); ClusterConfig server3Config = new ClusterConfig(cluster, group1, group2); - gfshConnector.connect(locator); + gfshConnector = + new GfshShellConnectionRule(locator.getPort(), GfshShellConnectionRule.PortType.locator); + gfshConnector.connect(); assertThat(gfshConnector.isConnected()).isTrue(); - gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJar); + CommandResult result = gfshConnector.executeCommand("deploy --jar=" + clusterJar); + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); // deploy cluster.jar to the cluster cluster.addJar("cluster.jar"); @@ -167,7 +192,8 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest { expectedClusterConfig.verify(server3); // deploy group1.jar to both group1 and group2 - gfshConnector.executeAndVerifyCommand("deploy --jar=" + group1Jar + " --group=group1,group2"); + result = gfshConnector.executeCommand("deploy --jar=" + group1Jar + " --group=group1,group2"); + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); group1.addJar("group1.jar"); group2.addJar("group1.jar"); @@ -177,7 +203,8 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest { server3Config.verify(server3); // test undeploy cluster - gfshConnector.executeAndVerifyCommand("undeploy --jar=cluster.jar"); + result = gfshConnector.executeCommand("undeploy --jar=cluster.jar"); + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); cluster = cluster.removeJar("cluster.jar"); server3Config.verify(locator); @@ -185,7 +212,8 @@ public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest { server2Config.verify(server2); server3Config.verify(server3); - gfshConnector.executeAndVerifyCommand("undeploy --jar=group1.jar --group=group1"); + result = gfshConnector.executeCommand("undeploy --jar=group1.jar --group=group1"); + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); group1 = group1.removeJar("group1.jar"); /* http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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..f362d4c 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,6 +17,7 @@ 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; @@ -28,7 +29,9 @@ 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; @@ -44,7 +47,7 @@ import java.io.IOException; import java.util.Properties; @Category(DistributedTest.class) -public class ClusterConfigDistributionDUnitTest { +public class ClusterConfigDistributionDUnitTest extends JUnit4DistributedTestCase { private static final String REPLICATE_REGION = "ReplicateRegion1"; private static final String PARTITION_REGION = "PartitionRegion1"; private static final String INDEX1 = "ID1"; @@ -52,22 +55,22 @@ public class ClusterConfigDistributionDUnitTest { private static final String AsyncEventQueue1 = "Q1"; private Locator locator; - - @Rule - public LocatorServerStartupRule lsRule = new LocatorServerStartupRule(); - @Rule - public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule(); + private GfshShellConnectionRule gfshConnector; @Before public void before() throws Exception { locator = lsRule.startLocatorVM(0); - gfshConnector.connect(locator); + + gfshConnector = new GfshShellConnectionRule(locator); + gfshConnector.connect(); 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 { @@ -170,7 +173,9 @@ public class ClusterConfigDistributionDUnitTest { csb.addOptionWithValueCheck(CliStrings.CONFIGURE_PDX__PERSISTENT, "true"); csb.addOptionWithValueCheck(CliStrings.CONFIGURE_PDX__READ__SERIALIZED, "true"); - String message = gfshConnector.execute(csb.getCommandString()); - assertThat(message).contains(CliStrings.CONFIGURE_PDX__NORMAL__MEMBERS__WARNING); + 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); } } http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 b4cba61..f3c471e 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,8 +46,7 @@ import java.util.zip.ZipFile; @Category(DistributedTest.class) public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest { - @Rule - public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule(); + private GfshShellConnectionRule gfshConnector; public static final ClusterConfig INITIAL_CONFIG = new ClusterConfig(new ConfigGroup("cluster")); @@ -59,10 +58,20 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest { locator = lsRule.startLocatorVM(0, locatorProps); INITIAL_CONFIG.verify(locator); - gfshConnector.connect(locator); + gfshConnector = new GfshShellConnectionRule(locator); + gfshConnector.connect(); 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()); @@ -97,6 +106,9 @@ 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()) @@ -117,8 +129,9 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest { @Test public void testImportClusterConfig() throws Exception { - gfshConnector.executeAndVerifyCommand( - "import cluster-configuration --zip-file-name=" + clusterConfigZipPath); + CommandResult result = gfshConnector + .executeCommand("import cluster-configuration --zip-file-name=" + clusterConfigZipPath); + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); // Make sure that a backup of the old clusterConfig was created assertThat(locator.getWorkingDir().listFiles()) @@ -150,8 +163,9 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest { "localhost[" + locator.getPort() + "],localhost[" + locator1.getPort() + "]"); Locator locator2 = lsRule.startLocatorVM(2, locatorProps); - gfshConnector.executeAndVerifyCommand( - "import cluster-configuration --zip-file-name=" + clusterConfigZipPath); + CommandResult result = gfshConnector + .executeCommand("import cluster-configuration --zip-file-name=" + clusterConfigZipPath); + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); CONFIG_FROM_ZIP.verify(locator); REPLICATED_CONFIG_FROM_ZIP.verify(locator1); @@ -174,16 +188,20 @@ public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest { public void testExportClusterConfig(String zipFilePath) throws Exception { Server server1 = lsRule.startServerVM(1, serverProps, locator.getPort()); - - gfshConnector.executeAndVerifyCommand("create region --name=myRegion --type=REPLICATE"); + CommandResult result = + gfshConnector.executeCommand("create region --name=myRegion --type=REPLICATE"); + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); ConfigGroup cluster = new ConfigGroup("cluster").regions("myRegion"); ClusterConfig expectedClusterConfig = new ClusterConfig(cluster); expectedClusterConfig.verify(server1); expectedClusterConfig.verify(locator); - gfshConnector - .executeAndVerifyCommand("export cluster-configuration --zip-file-name=" + zipFilePath); + result = + gfshConnector.executeCommand("export cluster-configuration --zip-file-name=" + zipFilePath); + System.out.println(result.getContent()); + + assertThat(result.getStatus()).isEqualTo(Result.Status.OK); File exportedZip = new File(zipFilePath); assertThat(exportedZip).exists(); http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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..388fd9d 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,6 +27,7 @@ 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; @@ -42,15 +43,12 @@ import java.io.File; import java.util.Properties; @Category({DistributedTest.class, SecurityTest.class}) -public class ClusterConfigWithSecurityDUnitTest { +public class ClusterConfigWithSecurityDUnitTest extends JUnit4DistributedTestCase { public String clusterConfigZipPath; @Rule public LocatorServerStartupRule lsRule = new LocatorServerStartupRule(); - @Rule - public GfshShellConnectionRule connector = new GfshShellConnectionRule(); - Locator locator0; Properties locatorProps; @@ -85,8 +83,9 @@ public class ClusterConfigWithSecurityDUnitTest { @Test public void testImportNotOverwriteSecurity() throws Exception { - connector.connect(locator0, CliStrings.CONNECT__USERNAME, "cluster", - CliStrings.CONNECT__PASSWORD, "cluster"); + GfshShellConnectionRule connector = new GfshShellConnectionRule(locator0); + connector.connect(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/0d0c7c42/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 8172b4b..ac3d1de 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,10 +17,11 @@ 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.assertj.core.api.Assertions.assertThat; +import static org.apache.geode.internal.Assert.assertTrue; 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; @@ -28,6 +29,7 @@ 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; @@ -48,10 +50,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 { @@ -60,21 +62,26 @@ 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 { - 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"); + 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"); // for get command, assert the return value is processed - String result = gfshConnection.execute("get --region=region1 --key=key1"); - assertThat(result).contains("data-user/region1/key1/value1"); + gfsh.executeCommand("get --region=region1 --key=key1"); + assertTrue(gfsh.outputString.contains("data-user/region1/key1/value1"), gfsh.outputString); // for query command, assert the return values are processed - 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"); + 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); } } http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 1377145..dbbe0db 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,6 +27,7 @@ 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; @@ -37,6 +38,7 @@ 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; @@ -75,6 +77,7 @@ public class GfshCommandsSecurityTest { @Rule public GfshShellConnectionRule gfshConnection = new GfshShellConnectionRule(jmxPort, GfshShellConnectionRule.PortType.jmxManger); + private HeadlessGfsh gfsh = null; @BeforeClass public static void beforeClass() throws Exception { @@ -83,6 +86,11 @@ 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 { @@ -155,8 +163,8 @@ public class GfshCommandsSecurityTest { for (TestCommand permitted : allPermitted) { LogService.getLogger().info("Processing authorized command: " + permitted.getCommand()); - - CommandResult result = gfshConnection.executeCommand(permitted.getCommand()); + gfsh.executeCommand(permitted.getCommand()); + CommandResult result = (CommandResult) gfsh.getResult(); assertNotNull(result); if (result.getResultData() instanceof ErrorResultData) { @@ -175,7 +183,9 @@ public class GfshCommandsSecurityTest { continue; LogService.getLogger().info("Processing unauthorized command: " + other.getCommand()); - CommandResult result = (CommandResult) gfshConnection.executeCommand(other.getCommand()); + gfsh.executeCommand(other.getCommand()); + + CommandResult result = (CommandResult) gfsh.getResult(); int errorCode = ((ErrorResultData) result.getResultData()).getErrorCode(); // for some commands there are pre execution checks to check for user input error, will skip @@ -197,12 +207,12 @@ public class GfshCommandsSecurityTest { @Test @ConnectionConfiguration(user = "data-user", password = "1234567") public void testGetPostProcess() throws Exception { - 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("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"); // gfsh.executeCommand("get --region=region1 --key=key1"); - gfshConnection.executeCommand("query --query=\"select * from /region1\""); + gfsh.executeCommand("query --query=\"select * from /region1\""); } } http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 23ffa9a..fe37f9e 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,36 +15,35 @@ package org.apache.geode.security; -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 static org.apache.geode.distributed.ConfigurationProperties.*; +import static org.assertj.core.api.Java6Assertions.*; +import static org.junit.Assert.*; + +import java.util.Properties; -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 java.util.Properties; +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; @Category({DistributedTest.class, SecurityTest.class}) -public class ClusterConfigWithoutSecurityDUnitTest { +public class ClusterConfigWithoutSecurityDUnitTest extends JUnit4DistributedTestCase { @Rule public LocatorServerStartupRule lsRule = new LocatorServerStartupRule(); - private ServerStarterRule serverStarter = null; - @Before public void before() throws Exception { IgnoredException @@ -57,8 +56,6 @@ public class ClusterConfigWithoutSecurityDUnitTest { @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 @@ -73,7 +70,7 @@ public class ClusterConfigWithoutSecurityDUnitTest { props.setProperty("use-cluster-configuration", "false"); // initial security properties should only contain initial set of values - serverStarter = new ServerStarterRule(props); + ServerStarterRule serverStarter = new ServerStarterRule(props); serverStarter.startServer(lsRule.getMember(0).getPort()); DistributedSystem ds = serverStarter.cache.getDistributedSystem(); @@ -94,7 +91,7 @@ public class ClusterConfigWithoutSecurityDUnitTest { props.setProperty("security-manager", "mySecurityManager"); props.setProperty("use-cluster-configuration", "true"); - serverStarter = new ServerStarterRule(props); + ServerStarterRule serverStarter = new ServerStarterRule(props); assertThatThrownBy(() -> serverStarter.startServer(lsRule.getMember(0).getPort())) .isInstanceOf(GemFireConfigException.class) http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 c03f0ea..a7752ae 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,25 +15,28 @@ package org.apache.geode.security; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR; +import static org.apache.geode.distributed.ConfigurationProperties.*; import static org.apache.geode.test.dunit.Host.getHost; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import org.apache.geode.security.templates.DummyAuthenticator; -import org.apache.geode.test.dunit.VM; +import java.util.Properties; + 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 java.util.Properties; +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; @Category({DistributedTest.class, SecurityTest.class}) -public class PeerAuthenticatorDUnitTest { +public class PeerAuthenticatorDUnitTest extends JUnit4DistributedTestCase { @Rule public LocatorServerStartupRule lsRule = new LocatorServerStartupRule(); http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 71200ab..66c5be6 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,26 +15,28 @@ package org.apache.geode.security; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR; +import static org.apache.geode.distributed.ConfigurationProperties.*; 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.rules.LocatorServerStartupRule; +import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase; 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 { +public class PeerSecurityWithEmbeddedLocatorDUnitTest extends JUnit4DistributedTestCase { @Rule public LocatorServerStartupRule lsRule = new LocatorServerStartupRule(); http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 fcda2a3..ca209a7 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,13 +28,14 @@ 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; @@ -42,13 +43,11 @@ import org.junit.experimental.categories.Category; import java.util.Properties; @Category({DistributedTest.class, SecurityTest.class}) -public class SecurityClusterConfigDUnitTest { +public class SecurityClusterConfigDUnitTest extends JUnit4DistributedTestCase { @Rule public LocatorServerStartupRule lsRule = new LocatorServerStartupRule(); - private ServerStarterRule serverStarter = null; - @Before public void before() throws Exception { IgnoredException @@ -64,12 +63,6 @@ public class SecurityClusterConfigDUnitTest { lsRule.startLocatorVM(0, props); } - @After - public void after() { - if (serverStarter != null) - serverStarter.after(); - } - @Category(FlakyTest.class) // GEODE-1977 @Test public void testStartServerWithClusterConfig() throws Exception { @@ -80,7 +73,7 @@ public class SecurityClusterConfigDUnitTest { props.setProperty("use-cluster-configuration", "true"); // initial security properties should only contain initial set of values - serverStarter = new ServerStarterRule(props); + ServerStarterRule serverStarter = new ServerStarterRule(props); serverStarter.startServer(lsRule.getMember(0).getPort()); DistributedSystem ds = serverStarter.cache.getDistributedSystem(); @@ -102,7 +95,7 @@ public class SecurityClusterConfigDUnitTest { props.setProperty(SECURITY_MANAGER, SimpleTestSecurityManager.class.getName()); // initial security properties should only contain initial set of values - serverStarter = new ServerStarterRule(props); + ServerStarterRule serverStarter = new ServerStarterRule(props); serverStarter.startServer(lsRule.getMember(0).getPort()); DistributedSystem ds = serverStarter.cache.getDistributedSystem(); @@ -124,7 +117,7 @@ public class SecurityClusterConfigDUnitTest { props.setProperty("use-cluster-configuration", "true"); // initial security properties should only contain initial set of values - serverStarter = new ServerStarterRule(props); + ServerStarterRule serverStarter = new ServerStarterRule(props); assertThatThrownBy(() -> serverStarter.startServer(lsRule.getMember(0).getPort())) .isInstanceOf(GemFireConfigException.class) @@ -143,7 +136,7 @@ public class SecurityClusterConfigDUnitTest { props.setProperty("use-cluster-configuration", "true"); // initial security properties should only contain initial set of values - serverStarter = new ServerStarterRule(props); + ServerStarterRule serverStarter = new ServerStarterRule(props); assertThatThrownBy(() -> serverStarter.startServer(lsRule.getMember(0).getPort())) .isInstanceOf(GemFireConfigException.class) @@ -162,7 +155,7 @@ public class SecurityClusterConfigDUnitTest { props.setProperty("security-manager", "mySecurityManager"); props.setProperty("use-cluster-configuration", "false"); - serverStarter = new ServerStarterRule(props); + ServerStarterRule serverStarter = new ServerStarterRule(props); assertThatThrownBy(() -> serverStarter.startServer(lsRule.getMember(0).getPort())) .isInstanceOf(GemFireConfigException.class) http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 1fdcd52..72654cb 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.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 static org.apache.geode.distributed.ConfigurationProperties.*; +import static org.junit.Assert.*; + +import java.util.Properties; -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.Before; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; -import java.util.Properties; +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.ServerStarterRule; +import org.apache.geode.test.junit.categories.DistributedTest; +import org.apache.geode.test.junit.categories.SecurityTest; @Category({DistributedTest.class, SecurityTest.class}) -public class SecurityWithoutClusterConfigDUnitTest { +public class SecurityWithoutClusterConfigDUnitTest extends JUnit4DistributedTestCase { @Rule public LocatorServerStartupRule lsRule = new LocatorServerStartupRule(); http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 8a79702..24d0db5 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,40 +16,34 @@ 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.rules.Locator; +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.After; -import org.junit.BeforeClass; -import org.junit.ClassRule; +import org.junit.Before; +import org.junit.Ignore; +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 StartServerAuthorizationTest { +public class StartServerAuthorizationTest extends JUnit4DistributedTestCase { - @ClassRule - public static LocatorServerStartupRule lsRule = new LocatorServerStartupRule(); - private static Locator locator = null; - private ServerStarterRule serverStarter = null; + @Rule + public LocatorServerStartupRule lsRule = new LocatorServerStartupRule(); - @BeforeClass - public static void beforeClass() throws Exception { + @Before + public void before() throws Exception { Properties props = new Properties(); props.setProperty(SECURITY_MANAGER, SimpleTestSecurityManager.class.getName()); - locator = lsRule.startLocatorVM(0, props); - } - - @After - public void after() throws Exception { - if (serverStarter != null) - serverStarter.after(); + lsRule.startLocatorVM(0, props); } @Test @@ -59,10 +53,13 @@ public class StartServerAuthorizationTest { props.setProperty("security-username", "user"); props.setProperty("security-password", "wrongPswd"); - serverStarter = new ServerStarterRule(props); - assertThatThrownBy(() -> serverStarter.startServer(locator.getPort())) - .isInstanceOf(GemFireSecurityException.class).hasMessageContaining( - "Security check failed. Authentication error. Please check your credentials"); + 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"); + }); } @Test @@ -73,10 +70,13 @@ public class StartServerAuthorizationTest { props.setProperty("security-username", "user"); props.setProperty("security-password", "user"); - serverStarter = new ServerStarterRule(props); - assertThatThrownBy(() -> serverStarter.startServer(locator.getPort())) - .isInstanceOf(GemFireSecurityException.class) - .hasMessageContaining("user not authorized for CLUSTER:MANAGE"); + 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"); + }); } @Test http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 4f2f0d0..49c1414 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,65 +33,48 @@ 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 = -1; - private PortType portType = PortType.jmxManger; - private HeadlessGfsh gfsh = null; - private boolean connected = false; + private int port = 0; + private PortType portType = null; + private HeadlessGfsh gfsh; + private boolean connected; - public GfshShellConnectionRule() {} + public GfshShellConnectionRule(Locator locator) { + this(locator.getPort(), PortType.locator); + } 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(port, portType); - return; + if (config != null) { + connect(CliStrings.CONNECT__USERNAME, config.user(), CliStrings.CONNECT__PASSWORD, + config.password()); + } else { + connect(); } - - connect(port, portType, CliStrings.CONNECT__USERNAME, config.user(), - CliStrings.CONNECT__PASSWORD, config.password()); - } - 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 { + public void connect(String... options) throws Exception { CliUtil.isGfshVM = true; final CommandStringBuilder connectCommand = new CommandStringBuilder(CliStrings.CONNECT); String endpoint; - if (type == PortType.locator) { + if (portType == PortType.locator) { // port is the locator port endpoint = "localhost[" + port + "]"; connectCommand.addOption(CliStrings.CONNECT__LOCATOR, endpoint); - } else if (type == PortType.http) { + } else if (portType == PortType.http) { endpoint = "http://localhost:" + port + "/gemfire/v1"; connectCommand.addOption(CliStrings.CONNECT__USE_HTTP, Boolean.TRUE.toString()); connectCommand.addOption(CliStrings.CONNECT__URL, endpoint); @@ -113,32 +96,31 @@ 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(() -> { - CommandResult cResult = executeCommand(connectCommand.toString()); - result.set(cResult); + gfsh.executeCommand(connectCommand.toString()); + result.set((CommandResult) gfsh.getResult()); + System.out.println("connect result: " + result.get().getContent().toString()); return !gfsh.outputString.contains("no such object in table"); }); connected = (result.get().getStatus() == Result.Status.OK); } - @Override + + /** + * Override to tear down your specific external resource. + */ 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 { - gfsh.executeCommand("exit"); - gfsh.terminate(); - gfsh = null; + if (gfsh != null) { + gfsh.clear(); + gfsh.executeCommand("disconnect"); + gfsh.executeCommand("exit"); + gfsh.terminate(); + gfsh = null; + } CliUtil.isGfshVM = false; } @@ -149,11 +131,10 @@ 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: \n" + gfsh.outputString); + System.out.println("command result: " + result.getContent()); return result; } - public CommandResult executeAndVerifyCommand(String command) throws Exception { CommandResult result = executeCommand(command); assertThat(result.getStatus()).describedAs(result.getContent().toString()) @@ -161,11 +142,6 @@ 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/0d0c7c42/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 fe26e83..0350ffd 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, String name) { - super(vm, port, workingDir, name); + public Locator(VM vm, int port, File workingDir) { + super(vm, port, workingDir); } } http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 1f0cd9e..ac9221c 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,14 +21,16 @@ 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; @@ -58,20 +60,16 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial private TemporaryFolder temporaryFolder = new SerializableTemporaryFolder(); private List<Member> members; - public LocatorServerStartupRule() { - DUnitLauncher.launchIfNeeded(); - } - - @Override - protected void before() throws Throwable { + @Before + public void before() throws Throwable { restoreSystemProperties.before(); temporaryFolder.create(); Invoke.invokeInEveryVM("Stop each VM", this::stopServerOrLocatorInThisVM); members = new ArrayList<>(4); } - @Override - protected void after() { + @After + public void after() { restoreSystemProperties.after(); temporaryFolder.delete(); Invoke.invokeInEveryVM("Stop each VM", this::stopServerOrLocatorInThisVM); @@ -95,7 +93,7 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial locatorStarter.startLocator(); return locatorStarter.locator.getPort(); }); - Locator locator = new Locator(locatorVM, locatorPort, workingDir, name); + Locator locator = new Locator(locatorVM, locatorPort, workingDir); members.add(index, locator); return locator; } @@ -114,6 +112,7 @@ 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()); @@ -122,7 +121,7 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial locatorStarter.startLocator(); return locatorStarter.locator.getPort(); }); - Locator locator = new Locator(locatorVM, locatorPort, workingDir, name); + Locator locator = new Locator(locatorVM, locatorPort, workingDir); members.add(index, locator); return locator; } @@ -161,7 +160,7 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial serverStarter.startServer(locatorPort); return serverStarter.server.getPort(); }); - Server server = new Server(serverVM, port, workingDir, name); + Server server = new Server(serverVM, port, workingDir); members.add(index, server); return server; } @@ -180,11 +179,9 @@ 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/0d0c7c42/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 7cc1eea..129fe68 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,13 +29,11 @@ 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, String name) { + public Member(VM vm, int port, File workingDir) { this.vm = vm; this.port = port; this.workingDir = workingDir; - this.name = name; } /** @@ -55,10 +53,6 @@ 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/0d0c7c42/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 4aa2c69..bc4c5d6 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, String name) { - super(vm, port, workingDir, name); + public Server(VM vm, int port, File workingDir) { + super(vm, port, workingDir); } } http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/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 f93498f..60013ca 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 one currently open. A server cache can be recreated due to + // make sure this cache is the once currently open. A server cache can be recreated due to // importing a new set of cluster configuration. cache = GemFireCacheImpl.getInstance(); if (cache != null) {