Repository: incubator-geode Updated Branches: refs/heads/develop f67554bc7 -> b633f6791
GEODE-1955: make the tests more stable * added the ignored tests back and mark them as flaky * revert unwanted checkins Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/b633f679 Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/b633f679 Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/b633f679 Branch: refs/heads/develop Commit: b633f6791fd2a36c29817a8935a30e0847505687 Parents: f67554b Author: Jinmei Liao <jil...@pivotal.io> Authored: Mon Nov 28 11:23:14 2016 -0800 Committer: Jinmei Liao <jil...@pivotal.io> Committed: Wed Nov 30 10:23:54 2016 -0800 ---------------------------------------------------------------------- .../distributed/ConfigurationProperties.java | 7 ++++++ .../internal/DistributionConfig.java | 24 +++++++++++-------- .../internal/net/SSLConfigurationFactory.java | 11 +++++---- .../internal/cli/shell/JmxOperationInvoker.java | 3 ++- .../ConnectToLocatorSSLDUnitTest.java | 25 +++++++++++++++----- 5 files changed, 48 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b633f679/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java index c58a398..536e4b6 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java @@ -165,7 +165,10 @@ public interface ConfigurationProperties { * with other <i>cluster-ssl-*</i> properties property <a name="cluster-ssl"/a> * </p> * <U>Description</U>: The cluster-ssl property prefix + * + * @deprecated Since Geode1.0, use ssl-* properties and ssl-enabled-components */ + @Deprecated String CLUSTER_SSL_PREFIX = "cluster-ssl"; /** @@ -827,8 +830,12 @@ public interface ConfigurationProperties { * </p> * <U>Default</U>: Optional * </p> + * + * @deprecated Since Geode1.0, use ssl-* properties and ssl-enabled-components */ + @Deprecated String JMX_MANAGER_SSL_PREFIX = "jmx-manager-ssl-"; + /** * The static String definition of the <i>"jmx-manager"</i> property <a name="jmx-manager"/a> * </p> http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b633f679/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfig.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfig.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfig.java index 3a2660c..5eb070d 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfig.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfig.java @@ -17,6 +17,16 @@ package org.apache.geode.distributed.internal; import static org.apache.geode.distributed.ConfigurationProperties.*; +import org.apache.geode.distributed.ConfigurationProperties; +import org.apache.geode.distributed.DistributedSystem; +import org.apache.geode.internal.Config; +import org.apache.geode.internal.ConfigSource; +import org.apache.geode.internal.logging.InternalLogWriter; +import org.apache.geode.internal.logging.LogConfig; +import org.apache.geode.internal.security.SecurableCommunicationChannel; +import org.apache.geode.internal.tcp.Connection; +import org.apache.geode.memcached.GemFireMemcachedServer; + import java.io.File; import java.lang.reflect.Field; import java.lang.reflect.Method; @@ -28,16 +38,6 @@ import java.util.List; import java.util.Map; import java.util.Properties; -import org.apache.geode.distributed.ConfigurationProperties; -import org.apache.geode.distributed.DistributedSystem; -import org.apache.geode.internal.Config; -import org.apache.geode.internal.ConfigSource; -import org.apache.geode.internal.logging.InternalLogWriter; -import org.apache.geode.internal.logging.LogConfig; -import org.apache.geode.internal.security.SecurableCommunicationChannel; -import org.apache.geode.internal.tcp.Connection; -import org.apache.geode.memcached.GemFireMemcachedServer; - /** * Provides accessor (and in some cases mutator) methods for the various GemFire distribution * configuration properties. The interface also provides constants for the names of properties and @@ -53,6 +53,10 @@ import org.apache.geode.memcached.GemFireMemcachedServer; public interface DistributionConfig extends Config, LogConfig { //////////////////// Instance Methods //////////////////// + /** + * The static String definition of the prefix used to defined ssl-* properties + */ + String SSL_PREFIX = "ssl-"; /** * The prefix used for Gemfire properties set through java system properties http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b633f679/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java b/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java index 3731d4d..aa61ca3 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java +++ b/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java @@ -148,7 +148,7 @@ public class SSLConfigurationFactory { private SSLConfig createSSLConfig(final SecurableCommunicationChannel sslEnabledComponent) { SSLConfig sslConfig = new SSLConfig(); sslConfig.setCiphers(getDistributionConfig().getSSLCiphers()); - sslConfig.setEnabled(isSSLEnabledForComponent(getDistributionConfig(), sslEnabledComponent)); + sslConfig.setEnabled(determineIfSSLEnabledForSSLComponent(sslEnabledComponent)); sslConfig.setKeystore(getDistributionConfig().getSSLKeyStore()); sslConfig.setKeystorePassword(getDistributionConfig().getSSLKeyStorePassword()); sslConfig.setKeystoreType(getDistributionConfig().getSSLKeyStoreType()); @@ -160,17 +160,18 @@ public class SSLConfigurationFactory { return sslConfig; } - public static boolean isSSLEnabledForComponent(DistributionConfig dc, + private boolean determineIfSSLEnabledForSSLComponent( final SecurableCommunicationChannel sslEnabledComponent) { - if (ArrayUtils.contains(dc.getSecurableCommunicationChannels(), + if (ArrayUtils.contains(getDistributionConfig().getSecurableCommunicationChannels(), SecurableCommunicationChannel.NONE)) { return false; } - if (ArrayUtils.contains(dc.getSecurableCommunicationChannels(), + if (ArrayUtils.contains(getDistributionConfig().getSecurableCommunicationChannels(), SecurableCommunicationChannel.ALL)) { return true; } - return ArrayUtils.contains(dc.getSecurableCommunicationChannels(), sslEnabledComponent); + return ArrayUtils.contains(getDistributionConfig().getSecurableCommunicationChannels(), + sslEnabledComponent) ? true : false; } /** http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b633f679/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/JmxOperationInvoker.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/JmxOperationInvoker.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/JmxOperationInvoker.java index 0fa47d4..e9d183e 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/JmxOperationInvoker.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/JmxOperationInvoker.java @@ -17,6 +17,7 @@ package org.apache.geode.management.internal.cli.shell; import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_PREFIX; import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_PREFIX; +import org.apache.geode.distributed.internal.DistributionConfig; import org.apache.geode.internal.lang.StringUtils; import org.apache.geode.internal.util.ArrayUtils; import org.apache.geode.internal.util.IOUtils; @@ -240,7 +241,7 @@ public class JmxOperationInvoker implements OperationInvoker { returnKey = key; } if (key.startsWith(CLUSTER_SSL_PREFIX) || key.startsWith(JMX_MANAGER_SSL_PREFIX) - || key.startsWith("ssl-")) { + || key.startsWith(DistributionConfig.SSL_PREFIX)) { if (key.endsWith("keystore")) { returnKey = Gfsh.SSL_KEYSTORE; } else if (key.endsWith("keystore-password")) { http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b633f679/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 0c16c1a..751425a 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 @@ -43,10 +43,10 @@ import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase; import org.apache.geode.test.dunit.rules.GfshShellConnectionRule; 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; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -91,14 +91,27 @@ public class ConnectToLocatorSSLDUnitTest extends JUnit4DistributedTestCase { GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule(lsRule.getPort(0), GfshShellConnectionRule.PortType.locator); - gfshConnector.connect(CliStrings.CONNECT__SECURITY_PROPERTIES, - securityPropsFile.getCanonicalPath()); - assertTrue(gfshConnector.isConnected()); + // when we connect too soon, we would get "Failed to retrieve RMIServer stub: + // javax.naming.CommunicationException [Root exception is java.rmi.NoSuchObjectException: no + // such object in table]" Exception. + // Tried to wait on jmx connector server being ready, but it doesn't work. + // Add the retry logic here to try at most 10 times for connection. + for (int i = 0; i < 10; i++) { + gfshConnector.connect(CliStrings.CONNECT__SECURITY_PROPERTIES, + securityPropsFile.getCanonicalPath()); + if (gfshConnector.isConnected()) { + break; + } + Thread.currentThread().sleep(3000); + } + + assertTrue(gfshConnector.isConnected()); gfshConnector.close(); } @Test + @Category(FlakyTest.class) // GEODE-2099 public void testConnectToLocatorWithSSLJMX() throws Exception { securityProps.setProperty(SSL_ENABLED_COMPONENTS, SecurableCommunicationChannels.JMX); securityProps.setProperty(SSL_KEYSTORE, jks.getCanonicalPath()); @@ -112,7 +125,7 @@ public class ConnectToLocatorSSLDUnitTest extends JUnit4DistributedTestCase { } @Test - @Ignore("GEODE-2099") + @Category(FlakyTest.class) // GEODE-2099 public void testConnectToLocatorWithLegacyClusterSSL() throws Exception { securityProps.setProperty(CLUSTER_SSL_ENABLED, "true"); securityProps.setProperty(CLUSTER_SSL_KEYSTORE, jks.getCanonicalPath()); @@ -125,7 +138,7 @@ public class ConnectToLocatorSSLDUnitTest extends JUnit4DistributedTestCase { } @Test - @Ignore("GEODE-2099") + @Category(FlakyTest.class) // GEODE-2099 public void testConnectToLocatorWithLegacyJMXSSL() throws Exception { securityProps.setProperty(JMX_MANAGER_SSL_ENABLED, "true"); securityProps.setProperty(JMX_MANAGER_SSL_KEYSTORE, jks.getCanonicalPath());