You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ud...@apache.org on 2020/02/06 00:38:47 UTC
[geode] branch revert-4650-feature/GEODE-7752 created (now 65ccf45)
This is an automated email from the ASF dual-hosted git repository.
udo pushed a change to branch revert-4650-feature/GEODE-7752
in repository https://gitbox.apache.org/repos/asf/geode.git.
at 65ccf45 Revert "GEODE-7752: Removed the current optionality on the ClusterManagementServiceBuilder. (#4650)"
This branch includes the following new commits:
new 65ccf45 Revert "GEODE-7752: Removed the current optionality on the ClusterManagementServiceBuilder. (#4650)"
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[geode] 01/01: Revert "GEODE-7752: Removed the current optionality
on the ClusterManagementServiceBuilder. (#4650)"
Posted by ud...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
udo pushed a commit to branch revert-4650-feature/GEODE-7752
in repository https://gitbox.apache.org/repos/asf/geode.git
commit 65ccf4540bb164e10988b7b48ecaae64b6b6e777
Author: Udo Kohlmeyer <ko...@users.noreply.github.com>
AuthorDate: Wed Feb 5 16:38:16 2020 -0800
Revert "GEODE-7752: Removed the current optionality on the ClusterManagementServiceBuilder. (#4650)"
This reverts commit 7028f601680fee3f57cbdff63951128d7180ca13.
---
.../resources/ManagementClientCreateRegion.java | 15 +--
.../management/JQFilterVerificationDUnitTest.java | 6 +-
.../ClusterManagementServiceBuilderDUnitTest.java | 54 ++++++-----
...ateRegionWithDiskstoreAndSecurityDUnitTest.java | 22 ++---
.../rest/ClientClusterManagementSSLTest.java | 65 ++++++-------
.../ClientClusterManagementServiceDunitTest.java | 18 ++--
.../rest/ClusterManagementServiceOnServerTest.java | 20 ++--
.../internal/rest/DeployToMultiGroupDUnitTest.java | 8 +-
.../rest/DeploymentManagementDUnitTest.java | 8 +-
.../rest/GatewayReceiverManagementDUnitTest.java | 8 +-
.../rest/GeodeClientClusterManagementSSLTest.java | 8 +-
.../GeodeClientClusterManagementSecurityTest.java | 20 ++--
.../rest/ListIndexManagementDUnitTest.java | 4 +-
.../rest/ListIndexOnPartitionRegionTest.java | 5 +-
.../rest/ListRegionManagementDunitTest.java | 4 +-
.../ManagementRequestLoggingDistributedTest.java | 6 +-
.../rest/MemberManagementServiceDunitTest.java | 5 +-
.../rest/RebalanceManagementDunitTest.java | 8 +-
.../internal/rest/RegionManagementDunitTest.java | 5 +-
.../internal/rest/ServerRestartTest.java | 5 +-
.../ClusterManagementRestLoggingTest.java | 5 +-
.../ManagementRestAuthTokenIntegrationTest.java | 23 +++--
.../integrationTest/resources/assembly_content.txt | 5 +-
.../DeploymentManagementUpgradeTest.java | 11 ++-
.../distributed/internal/DistributionImpl.java | 2 +-
.../distributed/internal/InternalLocator.java | 2 +-
.../GeodeClusterManagementServiceBuilder.java | 41 --------
.../internal/api/GeodeConnectionConfig.java | 91 ++++++++++++++++--
.../GeodeClusterManagementServiceBuilder.java | 41 --------
...nfigTest.java => BaseConnectionConfigTest.java} | 2 +-
...ectionConfig.java => BaseConnectionConfig.java} | 46 ++++-----
.../geode/management/api/ConnectionConfig.java | 104 ++++----------------
.../client/ClusterManagementServiceBuilder.java | 58 +++++++----
.../internal/api/BaseManagementServiceBuilder.java | 106 ---------------------
.../ClusterManagementServiceBuilderTest.java | 36 +++----
35 files changed, 354 insertions(+), 513 deletions(-)
diff --git a/geode-assembly/src/acceptanceTest/resources/ManagementClientCreateRegion.java b/geode-assembly/src/acceptanceTest/resources/ManagementClientCreateRegion.java
index e89eb6e..40b9e5a0 100644
--- a/geode-assembly/src/acceptanceTest/resources/ManagementClientCreateRegion.java
+++ b/geode-assembly/src/acceptanceTest/resources/ManagementClientCreateRegion.java
@@ -15,6 +15,7 @@
import javax.net.ssl.SSLContext;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementResult;
import org.apache.geode.management.api.ClusterManagementService;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
@@ -30,15 +31,15 @@ public class ManagementClientCreateRegion {
ClusterManagementService cms;
if (useSsl) {
// The default SSLContext will pull in all necessary javax.net.ssl properties
- cms = new ClusterManagementServiceBuilder()
- .setPort(httpPort)
- .setSslContext(SSLContext.getDefault())
- .build();
+ cms =
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", httpPort)
+ .setSslContext(SSLContext.getDefault()))
+ .build();
} else {
- cms = new ClusterManagementServiceBuilder()
- .setPort(httpPort)
- .build();
+ cms = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", httpPort)).build();
}
// create region
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/JQFilterVerificationDUnitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/JQFilterVerificationDUnitTest.java
index 26fe9f4..fd7b1dd 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/JQFilterVerificationDUnitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/JQFilterVerificationDUnitTest.java
@@ -34,7 +34,9 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementService;
+import org.apache.geode.management.api.ConnectionConfig;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
import org.apache.geode.management.configuration.Index;
import org.apache.geode.management.configuration.IndexType;
@@ -66,8 +68,10 @@ public class JQFilterVerificationDUnitTest {
public static void beforeClass() throws IOException {
MemberVM locator = cluster.startLocatorVM(0, MemberStarterRule::withHttpService);
cluster.startServerVM(1, locator.getPort());
+ ConnectionConfig connectionConfig =
+ new BaseConnectionConfig("localhost", locator.getHttpPort());
ClusterManagementService cms =
- new ClusterManagementServiceBuilder().setPort(locator.getHttpPort()).build();
+ new ClusterManagementServiceBuilder().setConnectionConfig(connectionConfig).build();
Region region = new Region();
region.setName("regionA");
region.setType(RegionType.REPLICATE);
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/client/ClusterManagementServiceBuilderDUnitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/client/ClusterManagementServiceBuilderDUnitTest.java
index e212938..25014b6 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/client/ClusterManagementServiceBuilderDUnitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/client/ClusterManagementServiceBuilderDUnitTest.java
@@ -22,6 +22,7 @@ import org.junit.ClassRule;
import org.junit.Test;
import org.springframework.web.client.RestTemplate;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ConnectionConfig;
import org.apache.geode.management.api.RestTemplateClusterManagementServiceTransport;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
@@ -30,10 +31,6 @@ import org.apache.geode.test.junit.rules.MemberStarterRule;
public class ClusterManagementServiceBuilderDUnitTest {
- private static int locatorPort = -1;
-
- private static ConnectionConfig connectionConfig;
-
@ClassRule
public static ClusterStartupRule cluster = new ClusterStartupRule(1);
@@ -41,11 +38,10 @@ public class ClusterManagementServiceBuilderDUnitTest {
public static void beforeClass() {
MemberVM locator = cluster.startLocatorVM(0, MemberStarterRule::withHttpService);
- locatorPort = locator.getHttpPort();
- connectionConfig = new ConnectionConfig("localhost", locatorPort);
+ connectionConfig = new BaseConnectionConfig("localhost", locator.getHttpPort());
}
-
+ private static ConnectionConfig connectionConfig;
@Test
public void buildWithTransportOnlyHavingConnectionConfig() {
@@ -55,19 +51,6 @@ public class ClusterManagementServiceBuilderDUnitTest {
}
@Test
- public void buildWithPortOnly() {
- assertThat(new ClusterManagementServiceBuilder().setPort(locatorPort).build().isConnected())
- .isTrue();
- }
-
- @Test
- public void buildWithHostnameOnly() {
- assertThat(new ClusterManagementServiceBuilder().setHost("localhost").setPort(locatorPort)
- .build().isConnected())
- .isTrue();
- }
-
- @Test
public void buildWithTransportOnlyHavingRestTemplate() {
assertThat(new ClusterManagementServiceBuilder().setTransport(
new RestTemplateClusterManagementServiceTransport(new RestTemplate())).build()
@@ -78,15 +61,38 @@ public class ClusterManagementServiceBuilderDUnitTest {
public void buildWithTransportOnlyHavingRestTemplateAndConnectionConfig() {
assertThat(new ClusterManagementServiceBuilder().setTransport(
new RestTemplateClusterManagementServiceTransport(new RestTemplate(), connectionConfig))
- .build()
- .isConnected()).isTrue();
+ .build().isConnected()).isTrue();
+ }
+
+ @Test
+ public void buildWithConnectionConfigOnly() {
+ assertThat(new ClusterManagementServiceBuilder()
+ .setConnectionConfig(connectionConfig).build().isConnected()).isTrue();
}
@Test
public void buildWithTransportHavingRestTemplateAndConnectionConfig() {
assertThat(new ClusterManagementServiceBuilder().setTransport(
+ new RestTemplateClusterManagementServiceTransport(new RestTemplate()))
+ .setConnectionConfig(connectionConfig).build().isConnected()).isTrue();
+ }
+
+ @Test
+ public void buildWithTransportHavingConnectionConfigAndConnectionConfig() {
+ assertThat(new ClusterManagementServiceBuilder().setTransport(
+ new RestTemplateClusterManagementServiceTransport(connectionConfig))
+ .setConnectionConfig(connectionConfig).build().isConnected()).isTrue();
+ }
+
+ @Test
+ public void buildWithTransportHavingConnectionConfigAndRestTemplateAndConnectionConfig() {
+ assertThat(new ClusterManagementServiceBuilder().setTransport(
new RestTemplateClusterManagementServiceTransport(new RestTemplate(), connectionConfig))
- .build().isConnected())
- .isTrue();
+ .setConnectionConfig(connectionConfig).build().isConnected()).isTrue();
+ }
+
+ @Test(expected = IllegalStateException.class)
+ public void buildWithNothing() {
+ new ClusterManagementServiceBuilder().build();
}
}
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/client/CreateRegionWithDiskstoreAndSecurityDUnitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/client/CreateRegionWithDiskstoreAndSecurityDUnitTest.java
index 61c9329..2c965b5 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/client/CreateRegionWithDiskstoreAndSecurityDUnitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/client/CreateRegionWithDiskstoreAndSecurityDUnitTest.java
@@ -26,6 +26,7 @@ import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.apache.geode.examples.SimpleSecurityManager;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementResult;
import org.apache.geode.management.api.ClusterManagementService;
import org.apache.geode.management.configuration.Region;
@@ -78,10 +79,9 @@ public class CreateRegionWithDiskstoreAndSecurityDUnitTest {
regionConfig.setDiskStoreName("DISKSTORE");
ClusterManagementService client =
- new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
- .setUsername("user")
- .setPassword("user")
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort())
+ .setUsername("user").setPassword("user"))
.build();
assertThatThrownBy(() -> client.create(regionConfig))
@@ -101,10 +101,9 @@ public class CreateRegionWithDiskstoreAndSecurityDUnitTest {
regionConfig.setDiskStoreName("DISKSTORE");
ClusterManagementService client =
- new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
- .setUsername("data")
- .setPassword("data")
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort())
+ .setUsername("data").setPassword("data"))
.build();
assertThatThrownBy(() -> client.create(regionConfig))
@@ -125,10 +124,9 @@ public class CreateRegionWithDiskstoreAndSecurityDUnitTest {
regionConfig.setDiskStoreName("DISKSTORE");
ClusterManagementService client =
- new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
- .setUsername("data,cluster")
- .setPassword("data,cluster")
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort())
+ .setUsername("data,cluster").setPassword("data,cluster"))
.build();
ClusterManagementResult result = client.create(regionConfig);
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementSSLTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementSSLTest.java
index 599b3e7..ec67fb0 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementSSLTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementSSLTest.java
@@ -39,6 +39,7 @@ import org.springframework.web.client.ResourceAccessException;
import org.apache.geode.cache.configuration.CacheConfig;
import org.apache.geode.examples.SimpleSecurityManager;
import org.apache.geode.internal.security.SecurableCommunicationChannel;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementRealizationResult;
import org.apache.geode.management.api.ClusterManagementResult;
import org.apache.geode.management.api.ClusterManagementService;
@@ -46,7 +47,7 @@ import org.apache.geode.management.api.RealizationResult;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
import org.apache.geode.management.configuration.Region;
import org.apache.geode.management.configuration.RegionType;
-import org.apache.geode.management.internal.builder.GeodeClusterManagementServiceBuilder;
+import org.apache.geode.management.internal.api.GeodeConnectionConfig;
import org.apache.geode.test.dunit.VM;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
@@ -101,12 +102,10 @@ public class ClientClusterManagementSSLTest {
SSLContext sslContext = SSLContext.getDefault();
HostnameVerifier hostnameVerifier = new NoopHostnameVerifier();
ClusterManagementService cmsClient =
- new ClusterManagementServiceBuilder()
- .setPort(httpPort)
- .setSslContext(sslContext)
- .setUsername("dataManage")
- .setPassword("dataManage")
- .setHostnameVerifier(hostnameVerifier)
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", httpPort)
+ .setSslContext(sslContext).setUsername("dataManage").setPassword("dataManage")
+ .setHostnameVerifier(hostnameVerifier))
.build();
ClusterManagementRealizationResult result = cmsClient.create(region);
@@ -126,11 +125,9 @@ public class ClientClusterManagementSSLTest {
client.invoke(() -> {
ClusterManagementService cmsClient =
- new ClusterManagementServiceBuilder()
- .setPort(httpPort)
- .setSslContext(null)
- .setUsername("dataManage")
- .setPassword("dataManage")
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", httpPort)
+ .setSslContext(null).setUsername("dataManage").setPassword("dataManage"))
.build();
assertThatThrownBy(() -> cmsClient.create(region))
@@ -149,12 +146,10 @@ public class ClientClusterManagementSSLTest {
SSLContext sslContext = SSLContext.getDefault();
HostnameVerifier hostnameVerifier = new NoopHostnameVerifier();
ClusterManagementService cmsClient =
- new ClusterManagementServiceBuilder()
- .setPort(httpPort)
- .setSslContext(sslContext)
- .setUsername("dataManage")
- .setPassword("wrongPassword")
- .setHostnameVerifier(hostnameVerifier)
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", httpPort)
+ .setSslContext(sslContext).setUsername("dataManage").setPassword("wrongPassword")
+ .setHostnameVerifier(hostnameVerifier))
.build();
assertThatThrownBy(() -> cmsClient.create(region)).hasMessageContaining("UNAUTHENTICATED");
@@ -173,10 +168,9 @@ public class ClientClusterManagementSSLTest {
HostnameVerifier hostnameVerifier = new NoopHostnameVerifier();
ClusterManagementService cmsClient =
- new ClusterManagementServiceBuilder()
- .setPort(httpPort)
- .setSslContext(sslContext)
- .setHostnameVerifier(hostnameVerifier)
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", httpPort)
+ .setSslContext(sslContext).setHostnameVerifier(hostnameVerifier))
.build();
assertThatThrownBy(() -> cmsClient.create(region)).hasMessageContaining("UNAUTHENTICATED");
@@ -194,12 +188,10 @@ public class ClientClusterManagementSSLTest {
SSLContext sslContext = SSLContext.getDefault();
HostnameVerifier hostnameVerifier = new NoopHostnameVerifier();
ClusterManagementService cmsClient =
- new ClusterManagementServiceBuilder()
- .setPort(httpPort)
- .setSslContext(sslContext)
- .setUsername("dataManage")
- .setPassword(null)
- .setHostnameVerifier(hostnameVerifier)
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", httpPort)
+ .setSslContext(sslContext).setUsername("dataManage").setPassword(null)
+ .setHostnameVerifier(hostnameVerifier))
.build();
assertThatThrownBy(() -> cmsClient.create(region)).hasMessageContaining("UNAUTHENTICATED");
@@ -217,12 +209,10 @@ public class ClientClusterManagementSSLTest {
SSLContext sslContext = SSLContext.getDefault();
HostnameVerifier hostnameVerifier = new NoopHostnameVerifier();
ClusterManagementService cmsClient =
- new ClusterManagementServiceBuilder()
- .setPort(httpPort)
- .setSslContext(sslContext)
- .setUsername("dataRead")
- .setPassword("dataRead")
- .setHostnameVerifier(hostnameVerifier)
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", httpPort)
+ .setSslContext(sslContext).setUsername("dataRead").setPassword("dataRead")
+ .setHostnameVerifier(hostnameVerifier))
.build();
assertThatThrownBy(() -> cmsClient.create(region)).hasMessageContaining("UNAUTHORIZED");
@@ -234,10 +224,9 @@ public class ClientClusterManagementSSLTest {
server.invoke(() -> {
// when getting the service from the server, we don't need to provide the host information
ClusterManagementService cmsClient =
- new GeodeClusterManagementServiceBuilder()
- .setCache(ClusterStartupRule.getCache())
- .setUsername("dataManage")
- .setPassword("dataManage")
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new GeodeConnectionConfig(ClusterStartupRule.getCache())
+ .setUsername("dataManage").setPassword("dataManage"))
.build();
Region region = new Region();
region.setName("orders");
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementServiceDunitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementServiceDunitTest.java
index b93d402..66b3f34 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementServiceDunitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementServiceDunitTest.java
@@ -25,6 +25,7 @@ import org.junit.Test;
import org.apache.geode.cache.configuration.CacheConfig;
import org.apache.geode.distributed.internal.InternalConfigurationPersistenceService;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementRealizationResult;
import org.apache.geode.management.api.ClusterManagementResult;
import org.apache.geode.management.api.ClusterManagementService;
@@ -32,7 +33,7 @@ import org.apache.geode.management.api.RealizationResult;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
import org.apache.geode.management.configuration.Region;
import org.apache.geode.management.configuration.RegionType;
-import org.apache.geode.management.internal.builder.GeodeClusterManagementServiceBuilder;
+import org.apache.geode.management.internal.api.GeodeConnectionConfig;
import org.apache.geode.test.dunit.rules.ClientVM;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
@@ -53,8 +54,8 @@ public class ClientClusterManagementServiceDunitTest {
locator = cluster.startLocatorVM(0, l -> l.withHttpService());
server = cluster.startServerVM(1, locator.getPort());
serverWithGroupA = cluster.startServerVM(2, groupA, locator.getPort());
- cmsClient = new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
+ cmsClient = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort()))
.build();
}
@@ -129,10 +130,9 @@ public class ClientClusterManagementServiceDunitTest {
client = cluster.startClientVM(3, c -> c.withLocatorConnection(locatorPort));
client.invoke(() -> {
- ClusterManagementService service =
- new GeodeClusterManagementServiceBuilder()
- .setCache(ClusterStartupRule.getClientCache())
- .build();
+ ClusterManagementService service = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new GeodeConnectionConfig(ClusterStartupRule.getClientCache()))
+ .build();
assertThat(service.isConnected()).isTrue();
});
client.stop();
@@ -144,8 +144,8 @@ public class ClientClusterManagementServiceDunitTest {
client = cluster.startClientVM(3, c -> c.withServerConnection(serverPort));
client.invoke(() -> {
- assertThatThrownBy(() -> new GeodeClusterManagementServiceBuilder()
- .setCache(ClusterStartupRule.getClientCache())
+ assertThatThrownBy(() -> new ClusterManagementServiceBuilder().setConnectionConfig(
+ new GeodeConnectionConfig(ClusterStartupRule.getClientCache()))
.build())
.isInstanceOf(IllegalStateException.class)
.hasMessageContaining(
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClusterManagementServiceOnServerTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClusterManagementServiceOnServerTest.java
index d2ded03..c9130b3 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClusterManagementServiceOnServerTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClusterManagementServiceOnServerTest.java
@@ -36,9 +36,10 @@ import org.springframework.web.client.ResourceAccessException;
import org.apache.geode.internal.security.SecurableCommunicationChannel;
import org.apache.geode.management.api.ClusterManagementResult;
import org.apache.geode.management.api.ClusterManagementService;
+import org.apache.geode.management.client.ClusterManagementServiceBuilder;
import org.apache.geode.management.configuration.Region;
import org.apache.geode.management.configuration.RegionType;
-import org.apache.geode.management.internal.builder.GeodeClusterManagementServiceBuilder;
+import org.apache.geode.management.internal.api.GeodeConnectionConfig;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
@@ -76,8 +77,8 @@ public class ClusterManagementServiceOnServerTest implements Serializable {
server.invoke(() -> {
assertThatThrownBy(
- () -> new GeodeClusterManagementServiceBuilder()
- .setCache(ClusterStartupRule.getCache())
+ () -> new ClusterManagementServiceBuilder().setConnectionConfig(
+ new GeodeConnectionConfig(ClusterStartupRule.getCache()))
.build())
.isInstanceOf(IllegalStateException.class);
});
@@ -93,9 +94,8 @@ public class ClusterManagementServiceOnServerTest implements Serializable {
s -> s.withConnectionToLocator(locatorPort).withProperties(serverProps));
server.invoke(() -> {
- ClusterManagementService service = new GeodeClusterManagementServiceBuilder()
- .setCache(ClusterStartupRule.getCache())
- .build();
+ ClusterManagementService service = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new GeodeConnectionConfig(ClusterStartupRule.getCache())).build();
assertThat(service).isNotNull();
assertThatThrownBy(() -> service.create(regionConfig))
.isInstanceOf(ResourceAccessException.class);
@@ -123,8 +123,8 @@ public class ClusterManagementServiceOnServerTest implements Serializable {
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
ClusterManagementService service =
- new GeodeClusterManagementServiceBuilder()
- .setCache(ClusterStartupRule.getCache())
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new GeodeConnectionConfig(ClusterStartupRule.getCache()))
.build();
assertThat(service).isNotNull();
ClusterManagementResult clusterManagementResult =
@@ -149,8 +149,8 @@ public class ClusterManagementServiceOnServerTest implements Serializable {
// default SSL context not set here, and ssl config inside sslProps is ignored because
// use_default_ssl_context is true
ClusterManagementService service =
- new GeodeClusterManagementServiceBuilder()
- .setCache(ClusterStartupRule.getCache())
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new GeodeConnectionConfig(ClusterStartupRule.getCache()))
.build();
assertThat(service).isNotNull();
assertThatThrownBy(() -> service.create(regionConfig))
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/DeployToMultiGroupDUnitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/DeployToMultiGroupDUnitTest.java
index 9484d13..70cbd9b 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/DeployToMultiGroupDUnitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/DeployToMultiGroupDUnitTest.java
@@ -26,6 +26,7 @@ import org.junit.ClassRule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementGetResult;
import org.apache.geode.management.api.ClusterManagementListResult;
import org.apache.geode.management.api.ClusterManagementService;
@@ -37,7 +38,6 @@ import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.assertions.ClusterManagementListResultAssert;
import org.apache.geode.test.junit.rules.GfshCommandRule;
-import org.apache.geode.test.junit.rules.MemberStarterRule;
public class DeployToMultiGroupDUnitTest {
@ClassRule
@@ -61,12 +61,12 @@ public class DeployToMultiGroupDUnitTest {
jar = new File(stagingDir, "lib.jar");
JarBuilder jarBuilder = new JarBuilder();
jarBuilder.buildJarFromClassNames(jar, "Class1");
- locator = cluster.startLocatorVM(0, MemberStarterRule::withHttpService);
+ locator = cluster.startLocatorVM(0, l -> l.withHttpService());
server1 = cluster.startServerVM(1, "group1", locator.getPort());
server2 = cluster.startServerVM(2, "group2", locator.getPort());
- client = new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
+ client = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort()))
.build();
gfsh.connect(locator);
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/DeploymentManagementDUnitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/DeploymentManagementDUnitTest.java
index 87d4dfd..acee9fa 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/DeploymentManagementDUnitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/DeploymentManagementDUnitTest.java
@@ -30,6 +30,7 @@ import org.junit.rules.TemporaryFolder;
import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.examples.SimpleSecurityManager;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementGetResult;
import org.apache.geode.management.api.ClusterManagementListResult;
import org.apache.geode.management.api.ClusterManagementService;
@@ -78,10 +79,9 @@ public class DeploymentManagementDUnitTest {
server2 = cluster.startServerVM(2, s -> s.withConnectionToLocator(locatorPort).withProperty(
DistributionConfig.GROUPS_NAME, "group2").withCredential("cluster", "cluster"));
- client = new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
- .setUsername("cluster")
- .setPassword("cluster")
+ client = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort())
+ .setUsername("cluster").setPassword("cluster"))
.build();
gfsh.secureConnect(locatorPort, GfshCommandRule.PortType.locator, "cluster", "cluster");
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GatewayReceiverManagementDUnitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GatewayReceiverManagementDUnitTest.java
index 1b8f9a5..5e03b18 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GatewayReceiverManagementDUnitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GatewayReceiverManagementDUnitTest.java
@@ -28,6 +28,7 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementService;
import org.apache.geode.management.api.EntityGroupInfo;
import org.apache.geode.management.api.RealizationResult;
@@ -62,10 +63,9 @@ public class GatewayReceiverManagementDUnitTest {
@Test
public void createGWRAndList() {
- ClusterManagementService cms = new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
- .setUsername("cluster")
- .setPassword("cluster")
+ ClusterManagementService cms = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort())
+ .setUsername("cluster").setPassword("cluster"))
.build();
receiver.setStartPort(5000);
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GeodeClientClusterManagementSSLTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GeodeClientClusterManagementSSLTest.java
index bb86a19..3d0d369 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GeodeClientClusterManagementSSLTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GeodeClientClusterManagementSSLTest.java
@@ -32,7 +32,8 @@ import org.junit.Test;
import org.apache.geode.internal.security.SecurableCommunicationChannel;
import org.apache.geode.management.api.ClusterManagementService;
-import org.apache.geode.management.internal.builder.GeodeClusterManagementServiceBuilder;
+import org.apache.geode.management.client.ClusterManagementServiceBuilder;
+import org.apache.geode.management.internal.api.GeodeConnectionConfig;
import org.apache.geode.test.dunit.rules.ClientVM;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
@@ -69,8 +70,9 @@ public class GeodeClientClusterManagementSSLTest {
await().untilAsserted(() -> {
try {
ClusterManagementService service =
- new GeodeClusterManagementServiceBuilder()
- .setCache(ClusterStartupRule.getClientCache())
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new GeodeConnectionConfig(
+ ClusterStartupRule.getClientCache()))
.build();
assertThat(service.isConnected()).isTrue();
} catch (IllegalStateException e) {
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GeodeClientClusterManagementSecurityTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GeodeClientClusterManagementSecurityTest.java
index d9cc3df..16c2bcb 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GeodeClientClusterManagementSecurityTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/GeodeClientClusterManagementSecurityTest.java
@@ -22,7 +22,8 @@ import org.junit.ClassRule;
import org.junit.Test;
import org.apache.geode.examples.SimpleSecurityManager;
-import org.apache.geode.management.internal.builder.GeodeClusterManagementServiceBuilder;
+import org.apache.geode.management.client.ClusterManagementServiceBuilder;
+import org.apache.geode.management.internal.api.GeodeConnectionConfig;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.rules.ClientCacheRule;
@@ -46,27 +47,26 @@ public class GeodeClientClusterManagementSecurityTest {
@Test
public void withClientConnectionCredential() {
- assertThat(new GeodeClusterManagementServiceBuilder()
- .setCache(client.getCache())
- .build().isConnected())
+ assertThat(new ClusterManagementServiceBuilder().setConnectionConfig(
+ new GeodeConnectionConfig(client.getCache())).build().isConnected())
.isTrue();
}
@Test
public void withDifferentCredentials() {
assertThat(
- new GeodeClusterManagementServiceBuilder()
- .setCache(client.getCache())
- .setUsername("test").setPassword("test")
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new GeodeConnectionConfig(client.getCache())
+ .setUsername("test").setPassword("test"))
.build().isConnected()).isTrue();
}
@Test
public void withInvalidCredential() {
assertThat(
- new GeodeClusterManagementServiceBuilder()
- .setCache(client.getCache())
- .setUsername("test").setPassword("wrong")
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new GeodeConnectionConfig(client.getCache())
+ .setUsername("test").setPassword("wrong"))
.build().isConnected()).isFalse();
}
}
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListIndexManagementDUnitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListIndexManagementDUnitTest.java
index c99b29a..4e5d32e 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListIndexManagementDUnitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListIndexManagementDUnitTest.java
@@ -29,6 +29,7 @@ import org.junit.ClassRule;
import org.junit.Test;
import org.apache.geode.cache.query.QueryService;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementGetResult;
import org.apache.geode.management.api.ClusterManagementListResult;
import org.apache.geode.management.api.ClusterManagementRealizationResult;
@@ -62,7 +63,8 @@ public class ListIndexManagementDUnitTest {
MemberVM server2 = lsRule.startServerVM(2, locator.getPort());
MemberVM server3 = lsRule.startServerVM(3, "group1", locator.getPort());
- cms = new ClusterManagementServiceBuilder().setPort(locator.getHttpPort())
+ cms = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort()))
.build();
Region config = new Region();
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListIndexOnPartitionRegionTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListIndexOnPartitionRegionTest.java
index ec0e55b..fa305b8 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListIndexOnPartitionRegionTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListIndexOnPartitionRegionTest.java
@@ -26,6 +26,7 @@ import org.junit.Test;
import org.apache.geode.cache.configuration.CacheConfig;
import org.apache.geode.cache.configuration.RegionConfig;
import org.apache.geode.distributed.internal.InternalConfigurationPersistenceService;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementListResult;
import org.apache.geode.management.api.ClusterManagementRealizationResult;
import org.apache.geode.management.api.ClusterManagementService;
@@ -53,8 +54,8 @@ public class ListIndexOnPartitionRegionTest {
lsRule.startServerVM(2, "group2", locator.getPort());
lsRule.startServerVM(3, "group3", locator.getPort());
- cms = new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
+ cms = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort()))
.build();
// set up the same region in 3 different groups, one is a proxy region, but with the same name
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListRegionManagementDunitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListRegionManagementDunitTest.java
index f53cabe..21e43b1 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListRegionManagementDunitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ListRegionManagementDunitTest.java
@@ -27,6 +27,7 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementGetResult;
import org.apache.geode.management.api.ClusterManagementListResult;
import org.apache.geode.management.api.ClusterManagementResult;
@@ -65,7 +66,8 @@ public class ListRegionManagementDunitTest {
server1 = cluster.startServerVM(1, "group1", locator.getPort());
server2 = cluster.startServerVM(2, "group2", locator.getPort());
- client = new ClusterManagementServiceBuilder().setPort(locator.getHttpPort())
+ client = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort()))
.build();
gfsh.connect(locator);
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ManagementRequestLoggingDistributedTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ManagementRequestLoggingDistributedTest.java
index 6a578ae..7fde5e1 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ManagementRequestLoggingDistributedTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ManagementRequestLoggingDistributedTest.java
@@ -37,6 +37,7 @@ import org.junit.Test;
import org.apache.geode.distributed.LocatorLauncher;
import org.apache.geode.distributed.ServerLauncher;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementResult;
import org.apache.geode.management.api.ClusterManagementService;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
@@ -84,9 +85,8 @@ public class ManagementRequestLoggingDistributedTest implements Serializable {
locatorPort = locatorVM.invoke(this::startLocator);
serverVM.invoke(this::startServer);
- service = new ClusterManagementServiceBuilder()
- .setPort(httpPort)
- .build();
+ service = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", httpPort)).build();
}
@After
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/MemberManagementServiceDunitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/MemberManagementServiceDunitTest.java
index 285f037..8876317 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/MemberManagementServiceDunitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/MemberManagementServiceDunitTest.java
@@ -22,6 +22,7 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementGetResult;
import org.apache.geode.management.api.ClusterManagementListResult;
import org.apache.geode.management.api.ClusterManagementResult;
@@ -44,8 +45,8 @@ public class MemberManagementServiceDunitTest {
public static void beforeClass() {
locator = cluster.startLocatorVM(0, MemberStarterRule::withHttpService);
cluster.startServerVM(1, locator.getPort());
- cmsClient = new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
+ cmsClient = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort()))
.build();
}
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/RebalanceManagementDunitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/RebalanceManagementDunitTest.java
index ae6e034..b8e8dc4 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/RebalanceManagementDunitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/RebalanceManagementDunitTest.java
@@ -28,6 +28,7 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementOperationResult;
import org.apache.geode.management.api.ClusterManagementService;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
@@ -40,7 +41,6 @@ import org.apache.geode.test.dunit.IgnoredException;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.rules.GfshCommandRule;
-import org.apache.geode.test.junit.rules.MemberStarterRule;
public class RebalanceManagementDunitTest {
@@ -56,12 +56,12 @@ public class RebalanceManagementDunitTest {
@BeforeClass
public static void beforeClass() throws Exception {
- locator = cluster.startLocatorVM(0, MemberStarterRule::withHttpService);
+ locator = cluster.startLocatorVM(0, l -> l.withHttpService());
server1 = cluster.startServerVM(1, "group1", locator.getPort());
server2 = cluster.startServerVM(2, "group2", locator.getPort());
- client = new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
+ client = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort()))
.build();
gfsh.connect(locator);
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/RegionManagementDunitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/RegionManagementDunitTest.java
index 9fc8edc..920fb46 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/RegionManagementDunitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/RegionManagementDunitTest.java
@@ -36,6 +36,7 @@ import org.apache.geode.cache.configuration.CacheConfig;
import org.apache.geode.cache.configuration.EnumActionDestroyOverflow;
import org.apache.geode.cache.configuration.RegionAttributesType;
import org.apache.geode.cache.configuration.RegionConfig;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementRealizationResult;
import org.apache.geode.management.api.ClusterManagementResult;
import org.apache.geode.management.api.ClusterManagementService;
@@ -68,8 +69,8 @@ public class RegionManagementDunitTest {
restClient =
new GeodeDevRestClient("/management/v1", "localhost", locator.getHttpPort(),
false);
- cms = new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
+ cms = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort()))
.build();
}
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ServerRestartTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ServerRestartTest.java
index 5065585..24a8e87 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ServerRestartTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ServerRestartTest.java
@@ -21,6 +21,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Rule;
import org.junit.Test;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementResult;
import org.apache.geode.management.api.ClusterManagementService;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
@@ -42,8 +43,8 @@ public class ServerRestartTest {
MemberVM server2 = cluster.startServerVM(2, locator.getPort());
ClusterManagementService cmService =
- new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
+ new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort()))
.build();
Region region = new Region();
diff --git a/geode-assembly/src/integrationTest/java/org/apache/geode/management/internal/rest/controllers/ClusterManagementRestLoggingTest.java b/geode-assembly/src/integrationTest/java/org/apache/geode/management/internal/rest/controllers/ClusterManagementRestLoggingTest.java
index d8faab3..133566f 100644
--- a/geode-assembly/src/integrationTest/java/org/apache/geode/management/internal/rest/controllers/ClusterManagementRestLoggingTest.java
+++ b/geode-assembly/src/integrationTest/java/org/apache/geode/management/internal/rest/controllers/ClusterManagementRestLoggingTest.java
@@ -21,6 +21,7 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementService;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
import org.apache.geode.test.junit.rules.LocatorStarterRule;
@@ -34,8 +35,8 @@ public class ClusterManagementRestLoggingTest {
@BeforeClass
public static void beforeClass() {
- cms = new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
+ cms = new ClusterManagementServiceBuilder().setConnectionConfig(
+ new BaseConnectionConfig("localhost", locator.getHttpPort()))
.build();
}
diff --git a/geode-assembly/src/integrationTest/java/org/apache/geode/rest/internal/web/ManagementRestAuthTokenIntegrationTest.java b/geode-assembly/src/integrationTest/java/org/apache/geode/rest/internal/web/ManagementRestAuthTokenIntegrationTest.java
index a2b36e4..5489eb9 100644
--- a/geode-assembly/src/integrationTest/java/org/apache/geode/rest/internal/web/ManagementRestAuthTokenIntegrationTest.java
+++ b/geode-assembly/src/integrationTest/java/org/apache/geode/rest/internal/web/ManagementRestAuthTokenIntegrationTest.java
@@ -22,7 +22,9 @@ import org.junit.Test;
import org.apache.geode.distributed.ConfigurationProperties;
import org.apache.geode.examples.SimpleSecurityManager;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementService;
+import org.apache.geode.management.api.ConnectionConfig;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
import org.apache.geode.test.junit.rules.LocatorStarterRule;
@@ -37,22 +39,23 @@ public class ManagementRestAuthTokenIntegrationTest {
.withAutoStart();
@Test
- public void validToken() {
+ public void validToken() throws Exception {
+
+ ConnectionConfig connectionConfig =
+ new BaseConnectionConfig(
+ "localhost", locator.getHttpPort()).setAuthToken(SimpleSecurityManager.VALID_TOKEN);
ClusterManagementService cms =
- new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
- .setAuthToken(SimpleSecurityManager.VALID_TOKEN)
- .build();
+ new ClusterManagementServiceBuilder().setConnectionConfig(connectionConfig).build();
assertThat(cms.isConnected()).isTrue();
}
@Test
- public void invalidToken() {
+ public void invalidToken() throws Exception {
+ ConnectionConfig connectionConfig =
+ new BaseConnectionConfig(
+ "localhost", locator.getHttpPort()).setAuthToken("invalidToken");
ClusterManagementService cms =
- new ClusterManagementServiceBuilder()
- .setPort(locator.getHttpPort())
- .setAuthToken("invalidToken")
- .build();
+ new ClusterManagementServiceBuilder().setConnectionConfig(connectionConfig).build();
assertThat(cms.isConnected()).isFalse();
}
}
diff --git a/geode-assembly/src/integrationTest/resources/assembly_content.txt b/geode-assembly/src/integrationTest/resources/assembly_content.txt
index 8b3b268..b86eeba 100644
--- a/geode-assembly/src/integrationTest/resources/assembly_content.txt
+++ b/geode-assembly/src/integrationTest/resources/assembly_content.txt
@@ -691,6 +691,7 @@ javadoc/org/apache/geode/management/PersistentMemberDetails.html
javadoc/org/apache/geode/management/RegionAttributesData.html
javadoc/org/apache/geode/management/RegionMXBean.html
javadoc/org/apache/geode/management/ServerLoadData.html
+javadoc/org/apache/geode/management/api/BaseConnectionConfig.html
javadoc/org/apache/geode/management/api/ClusterManagementException.html
javadoc/org/apache/geode/management/api/ClusterManagementGetResult.html
javadoc/org/apache/geode/management/api/ClusterManagementListOperationsResult.html
@@ -713,10 +714,6 @@ javadoc/org/apache/geode/management/api/RestTemplateClusterManagementServiceTran
javadoc/org/apache/geode/management/api/package-frame.html
javadoc/org/apache/geode/management/api/package-summary.html
javadoc/org/apache/geode/management/api/package-tree.html
-javadoc/org/apache/geode/management/builder/GeodeClusterManagementServiceBuilder.html
-javadoc/org/apache/geode/management/builder/package-frame.html
-javadoc/org/apache/geode/management/builder/package-summary.html
-javadoc/org/apache/geode/management/builder/package-tree.html
javadoc/org/apache/geode/management/cli/CliFunction.html
javadoc/org/apache/geode/management/cli/CliMetaData.AvailabilityMetadata.html
javadoc/org/apache/geode/management/cli/CliMetaData.html
diff --git a/geode-assembly/src/upgradeTest/java/org/apache/geode/management/DeploymentManagementUpgradeTest.java b/geode-assembly/src/upgradeTest/java/org/apache/geode/management/DeploymentManagementUpgradeTest.java
index 4fe3e42..16ccbd0 100644
--- a/geode-assembly/src/upgradeTest/java/org/apache/geode/management/DeploymentManagementUpgradeTest.java
+++ b/geode-assembly/src/upgradeTest/java/org/apache/geode/management/DeploymentManagementUpgradeTest.java
@@ -27,7 +27,9 @@ import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.apache.geode.internal.AvailablePortHelper;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementService;
+import org.apache.geode.management.api.ConnectionConfig;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
import org.apache.geode.management.configuration.Deployment;
import org.apache.geode.test.compiler.JarBuilder;
@@ -66,9 +68,12 @@ public class DeploymentManagementUpgradeTest {
gfsh.execute("start locator --name=test --port=" + ports[0] + " --http-service-port=" + ports[1]
+ " --dir=" + workingDir.getAbsolutePath() + " --J=-Dgemfire.jmx-manager-port=" + ports[2]);
- ClusterManagementService cms = new ClusterManagementServiceBuilder()
- .setPort(ports[1])
- .build();
+ ConnectionConfig connectionConfig =
+ new BaseConnectionConfig("localhost", ports[1]);
+ ClusterManagementService cms =
+ new ClusterManagementServiceBuilder().setConnectionConfig(connectionConfig).build();
+ // ClusterManagementServiceBuilder.buildWithHostAddress().setHostAddress("localhost", ports[1])
+ // .build();
assertManagementListResult(cms.list(new Deployment())).isSuccessful()
.hasConfigurations().hasSize(1);
}
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
index 8a3febc..b81d2ac 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
@@ -135,7 +135,7 @@ public class DistributionImpl implements Distribution {
InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
final TcpSocketCreator socketCreator = SocketCreatorFactory
.getSocketCreatorForComponent(SecurableCommunicationChannel.CLUSTER);
- membership = MembershipBuilder.newMembershipBuilder(
+ membership = MembershipBuilder.<InternalDistributedMember>newMembershipBuilder(
socketCreator,
locatorClient,
InternalDataSerializer.getDSFIDSerializer(),
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
index 0c09b33..b7475ad 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
@@ -210,7 +210,7 @@ public class InternalLocator extends Locator implements ConnectListener, LogConf
private DistributionConfigImpl distributionConfig;
private WanLocatorDiscoverer locatorDiscoverer;
private InternalConfigurationPersistenceService configurationPersistenceService;
- private ClusterManagementService clusterManagementService;
+ private LocatorClusterManagementService clusterManagementService;
public static InternalLocator getLocator() {
synchronized (locatorLock) {
diff --git a/geode-core/src/main/java/org/apache/geode/management/builder/GeodeClusterManagementServiceBuilder.java b/geode-core/src/main/java/org/apache/geode/management/builder/GeodeClusterManagementServiceBuilder.java
deleted file mode 100644
index 8afde8a..0000000
--- a/geode-core/src/main/java/org/apache/geode/management/builder/GeodeClusterManagementServiceBuilder.java
+++ /dev/null
@@ -1,41 +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.builder;
-
-import org.apache.geode.cache.GemFireCache;
-import org.apache.geode.management.api.ConnectionConfig;
-import org.apache.geode.management.internal.api.BaseManagementServiceBuilder;
-import org.apache.geode.management.internal.api.GeodeConnectionConfig;
-
-public class GeodeClusterManagementServiceBuilder
- extends BaseManagementServiceBuilder<GeodeClusterManagementServiceBuilder> {
-
- private GemFireCache cache;
-
- public GemFireCache getCache() {
- return cache;
- }
-
- public GeodeClusterManagementServiceBuilder setCache(GemFireCache cache) {
- this.cache = cache;
- return this;
- }
-
- protected ConnectionConfig createConnectionConfig() {
- return new GeodeConnectionConfig(cache);
- }
-}
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/api/GeodeConnectionConfig.java b/geode-core/src/main/java/org/apache/geode/management/internal/api/GeodeConnectionConfig.java
index 8cfbeb2..6084e38 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/api/GeodeConnectionConfig.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/api/GeodeConnectionConfig.java
@@ -16,11 +16,15 @@
package org.apache.geode.management.internal.api;
+
import java.net.InetSocketAddress;
import java.util.List;
import java.util.Properties;
import java.util.Set;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.SSLContext;
+
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Logger;
@@ -42,6 +46,7 @@ import org.apache.geode.internal.net.SSLConfigurationFactory;
import org.apache.geode.internal.net.SocketCreatorFactory;
import org.apache.geode.internal.security.SecurableCommunicationChannel;
import org.apache.geode.logging.internal.log4j.api.LogService;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ConnectionConfig;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
import org.apache.geode.management.internal.SSLUtil;
@@ -52,16 +57,20 @@ import org.apache.geode.management.runtime.MemberInformation;
import org.apache.geode.security.AuthInitialize;
/**
- * Concrete implementation of {@link ConnectionConfig} which can be used to derive most (if not all)
- * of the connection properties from an existing {@link Cache} or {@link ClientCache}.
+ * Concrete implementation of {@link ConnectionConfig} which can be used
+ * to derive most (if not all) of the connection properties from an existing {@link Cache} or
+ * {@link ClientCache}.
*
* @see ClusterManagementServiceBuilder
*/
@Experimental
-public class GeodeConnectionConfig extends ConnectionConfig {
+public class GeodeConnectionConfig
+ implements ConnectionConfig {
private static final Logger logger = LogService.getLogger();
+ private BaseConnectionConfig connectionConfig;
+
@Immutable
private static final GetMemberInformationFunction MEMBER_INFORMATION_FUNCTION =
new GetMemberInformationFunction();
@@ -77,6 +86,72 @@ public class GeodeConnectionConfig extends ConnectionConfig {
}
}
+ @Override
+ public String getHost() {
+ return connectionConfig.getHost();
+ }
+
+ @Override
+ public int getPort() {
+ return connectionConfig.getPort();
+ }
+
+ @Override
+ public String getAuthToken() {
+ return connectionConfig.getAuthToken();
+ }
+
+ public GeodeConnectionConfig setAuthToken(String authToken) {
+ connectionConfig.setAuthToken(authToken);
+ return this;
+ }
+
+ @Override
+ public SSLContext getSslContext() {
+ return connectionConfig.getSslContext();
+ }
+
+ @Override
+ public String getUsername() {
+ return connectionConfig.getUsername();
+ }
+
+ public GeodeConnectionConfig setUsername(String username) {
+ connectionConfig.setUsername(username);
+ return this;
+ }
+
+ @Override
+ public String getPassword() {
+ return connectionConfig.getPassword();
+ }
+
+ public GeodeConnectionConfig setPassword(String password) {
+ connectionConfig.setPassword(password);
+ return this;
+ }
+
+ @Override
+ public HostnameVerifier getHostnameVerifier() {
+ return connectionConfig.getHostnameVerifier();
+ }
+
+ @Override
+ public boolean getFollowRedirects() {
+ return connectionConfig.getFollowRedirects();
+ }
+
+ public GeodeConnectionConfig setFollowRedirects(boolean followRedirects) {
+ connectionConfig.setFollowRedirects(followRedirects);
+ return this;
+ }
+
+ public GeodeConnectionConfig setHostnameVerifier(
+ HostnameVerifier hostnameVerifier) {
+ connectionConfig.setHostnameVerifier(hostnameVerifier);
+ return this;
+ }
+
private void setServerCache(GemFireCacheImpl cache) {
Set<InternalDistributedMember> locatorsWithClusterConfig =
cache.getDistributionManager().getAllHostedLocatorsWithSharedConfiguration()
@@ -132,8 +207,8 @@ public class GeodeConnectionConfig extends ConnectionConfig {
private void configureBuilder(DistributionConfig config,
ClusterManagementServiceInfo cmsInfo) {
- setHost(cmsInfo.getHostName());
- setPort(cmsInfo.getHttpPort());
+ connectionConfig = new BaseConnectionConfig(cmsInfo.getHostName(),
+ cmsInfo.getHttpPort());
// if user didn't pass in a username and the locator requires credentials, use the credentials
// user used to create the client cache
@@ -146,8 +221,8 @@ public class GeodeConnectionConfig extends ConnectionConfig {
"You will need to set the buildWithHostAddress username and password or specify security-username and security-password in the properties when starting this geode server/client.";
throw new IllegalStateException(message);
}
- setUsername(username);
- setPassword(password);
+ connectionConfig.setUsername(username);
+ connectionConfig.setPassword(password);
}
if (cmsInfo.isSSL()) {
@@ -158,7 +233,7 @@ public class GeodeConnectionConfig extends ConnectionConfig {
"This server/client needs to have ssl-truststore or ssl-use-default-context specified in order to use cluster management service.");
}
- setSslContext(SSLUtil.createAndConfigureSSLContext(sslConfig, false));
+ connectionConfig.setSslContext(SSLUtil.createAndConfigureSSLContext(sslConfig, false));
}
}
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/builder/GeodeClusterManagementServiceBuilder.java b/geode-core/src/main/java/org/apache/geode/management/internal/builder/GeodeClusterManagementServiceBuilder.java
deleted file mode 100644
index 368aadf..0000000
--- a/geode-core/src/main/java/org/apache/geode/management/internal/builder/GeodeClusterManagementServiceBuilder.java
+++ /dev/null
@@ -1,41 +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.builder;
-
-import org.apache.geode.cache.GemFireCache;
-import org.apache.geode.management.api.ConnectionConfig;
-import org.apache.geode.management.internal.api.BaseManagementServiceBuilder;
-import org.apache.geode.management.internal.api.GeodeConnectionConfig;
-
-public class GeodeClusterManagementServiceBuilder
- extends BaseManagementServiceBuilder<GeodeClusterManagementServiceBuilder> {
-
- private GemFireCache cache;
-
- public GemFireCache getCache() {
- return cache;
- }
-
- public GeodeClusterManagementServiceBuilder setCache(GemFireCache cache) {
- this.cache = cache;
- return this;
- }
-
- protected ConnectionConfig createConnectionConfig() {
- return new GeodeConnectionConfig(cache);
- }
-}
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/ConnectionConfigTest.java b/geode-core/src/test/java/org/apache/geode/distributed/internal/BaseConnectionConfigTest.java
similarity index 99%
rename from geode-core/src/test/java/org/apache/geode/distributed/internal/ConnectionConfigTest.java
rename to geode-core/src/test/java/org/apache/geode/distributed/internal/BaseConnectionConfigTest.java
index 1b4f6da..4e3def0 100644
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/ConnectionConfigTest.java
+++ b/geode-core/src/test/java/org/apache/geode/distributed/internal/BaseConnectionConfigTest.java
@@ -29,7 +29,7 @@ import org.apache.geode.distributed.internal.membership.api.QuorumChecker;
/**
* Unit tests for {@link ConnectionConfigImpl}.
*/
-public class ConnectionConfigTest {
+public class BaseConnectionConfigTest {
@Test
public void distributionConfig_doesNotContainDsQuorumCheckerProperty() {
diff --git a/geode-management/src/main/java/org/apache/geode/management/api/ConnectionConfig.java b/geode-management/src/main/java/org/apache/geode/management/api/BaseConnectionConfig.java
similarity index 73%
copy from geode-management/src/main/java/org/apache/geode/management/api/ConnectionConfig.java
copy to geode-management/src/main/java/org/apache/geode/management/api/BaseConnectionConfig.java
index af07d2d..16947d9 100644
--- a/geode-management/src/main/java/org/apache/geode/management/api/ConnectionConfig.java
+++ b/geode-management/src/main/java/org/apache/geode/management/api/BaseConnectionConfig.java
@@ -25,17 +25,19 @@ import org.apache.geode.annotations.Experimental;
import org.apache.geode.management.client.ClusterManagementServiceBuilder;
/**
- * Concrete implementation of {@link ConnectionConfig} which can be used where the various
- * connection properties should be set directly as opposed to being derived from another context
- * such as a {@code Cache}. For example {@code GeodeClusterManagementServiceConnectionConfig}.
+ * Concrete implementation of {@link ConnectionConfig} which can be used
+ * where the various connection properties should be set directly as opposed to being derived from
+ * another context such as a {@code Cache}. For example
+ * {@code GeodeClusterManagementServiceConnectionConfig}.
*
* @see ClusterManagementServiceBuilder
*/
@Experimental
-public class ConnectionConfig {
+public class BaseConnectionConfig
+ implements ConnectionConfig {
- private String host;
- private int port;
+ private final String host;
+ private final int port;
private String username;
private String password;
private HostnameVerifier hostnameVerifier = new NoopHostnameVerifier();
@@ -43,80 +45,78 @@ public class ConnectionConfig {
private String authToken;
private boolean followRedirects;
- public ConnectionConfig() {}
-
- public ConnectionConfig(String host, int port) {
+ public BaseConnectionConfig(String host, int port) {
this.host = host;
this.port = port;
}
- protected void setHost(String host) {
- this.host = host;
- }
-
- protected void setPort(int port) {
- this.port = port;
- }
-
+ @Override
public String getHost() {
return host;
}
+ @Override
public int getPort() {
return port;
}
+ @Override
public String getAuthToken() {
return authToken;
}
- public ConnectionConfig setAuthToken(String authToken) {
+ public BaseConnectionConfig setAuthToken(String authToken) {
this.authToken = authToken;
return this;
}
- public ConnectionConfig setSslContext(SSLContext sslContext) {
+ public BaseConnectionConfig setSslContext(SSLContext sslContext) {
this.sslContext = sslContext;
return this;
}
+ @Override
public SSLContext getSslContext() {
return sslContext;
}
- public ConnectionConfig setUsername(String username) {
+ public BaseConnectionConfig setUsername(String username) {
this.username = username;
return this;
}
+ @Override
public String getUsername() {
return username;
}
- public ConnectionConfig setPassword(String password) {
+ public BaseConnectionConfig setPassword(String password) {
this.password = password;
return this;
}
+ @Override
public String getPassword() {
return password;
}
- public ConnectionConfig setHostnameVerifier(
+ public BaseConnectionConfig setHostnameVerifier(
HostnameVerifier hostnameVerifier) {
this.hostnameVerifier = hostnameVerifier;
return this;
}
+ @Override
public HostnameVerifier getHostnameVerifier() {
return hostnameVerifier;
}
- public ConnectionConfig setFollowRedirects(boolean followRedirects) {
+ public BaseConnectionConfig setFollowRedirects(boolean followRedirects) {
this.followRedirects = followRedirects;
return this;
}
+ @Override
public boolean getFollowRedirects() {
return followRedirects;
}
diff --git a/geode-management/src/main/java/org/apache/geode/management/api/ConnectionConfig.java b/geode-management/src/main/java/org/apache/geode/management/api/ConnectionConfig.java
index af07d2d..b49083e 100644
--- a/geode-management/src/main/java/org/apache/geode/management/api/ConnectionConfig.java
+++ b/geode-management/src/main/java/org/apache/geode/management/api/ConnectionConfig.java
@@ -19,105 +19,33 @@ package org.apache.geode.management.api;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
-import org.apache.http.conn.ssl.NoopHostnameVerifier;
-
import org.apache.geode.annotations.Experimental;
-import org.apache.geode.management.client.ClusterManagementServiceBuilder;
/**
- * Concrete implementation of {@link ConnectionConfig} which can be used where the various
- * connection properties should be set directly as opposed to being derived from another context
- * such as a {@code Cache}. For example {@code GeodeClusterManagementServiceConnectionConfig}.
- *
- * @see ClusterManagementServiceBuilder
+ * Interface representing the properties required to configure and create a
+ * {@link ClusterManagementServiceTransport}. Although the current implementation is HTTP based,
+ * these properties should be general enough that they are relevant to any different implementation.
+ * <p/>
+ * Concrete implementations of this interface can be created through either the
+ * {@link BaseConnectionConfig} or
+ * {@code GeodeClusterManagementServiceConnectionConfig} classes.
*/
@Experimental
-public class ConnectionConfig {
-
- private String host;
- private int port;
- private String username;
- private String password;
- private HostnameVerifier hostnameVerifier = new NoopHostnameVerifier();
- private SSLContext sslContext;
- private String authToken;
- private boolean followRedirects;
-
- public ConnectionConfig() {}
-
- public ConnectionConfig(String host, int port) {
- this.host = host;
- this.port = port;
- }
-
- protected void setHost(String host) {
- this.host = host;
- }
-
- protected void setPort(int port) {
- this.port = port;
- }
-
- public String getHost() {
- return host;
- }
-
- public int getPort() {
- return port;
- }
-
- public String getAuthToken() {
- return authToken;
- }
-
- public ConnectionConfig setAuthToken(String authToken) {
- this.authToken = authToken;
- return this;
- }
-
- public ConnectionConfig setSslContext(SSLContext sslContext) {
- this.sslContext = sslContext;
- return this;
- }
-
- public SSLContext getSslContext() {
- return sslContext;
- }
+public interface ConnectionConfig {
- public ConnectionConfig setUsername(String username) {
- this.username = username;
- return this;
- }
+ String getHost();
- public String getUsername() {
- return username;
- }
+ int getPort();
- public ConnectionConfig setPassword(String password) {
- this.password = password;
- return this;
- }
+ String getAuthToken();
- public String getPassword() {
- return password;
- }
+ SSLContext getSslContext();
- public ConnectionConfig setHostnameVerifier(
- HostnameVerifier hostnameVerifier) {
- this.hostnameVerifier = hostnameVerifier;
- return this;
- }
+ String getUsername();
- public HostnameVerifier getHostnameVerifier() {
- return hostnameVerifier;
- }
+ String getPassword();
- public ConnectionConfig setFollowRedirects(boolean followRedirects) {
- this.followRedirects = followRedirects;
- return this;
- }
+ HostnameVerifier getHostnameVerifier();
- public boolean getFollowRedirects() {
- return followRedirects;
- }
+ boolean getFollowRedirects();
}
diff --git a/geode-management/src/main/java/org/apache/geode/management/client/ClusterManagementServiceBuilder.java b/geode-management/src/main/java/org/apache/geode/management/client/ClusterManagementServiceBuilder.java
index 01fc923..a7eb0be 100644
--- a/geode-management/src/main/java/org/apache/geode/management/client/ClusterManagementServiceBuilder.java
+++ b/geode-management/src/main/java/org/apache/geode/management/client/ClusterManagementServiceBuilder.java
@@ -17,46 +17,66 @@
package org.apache.geode.management.client;
import org.apache.geode.annotations.Experimental;
+import org.apache.geode.management.api.ClusterManagementService;
import org.apache.geode.management.api.ClusterManagementServiceTransport;
import org.apache.geode.management.api.ConnectionConfig;
import org.apache.geode.management.api.RestTemplateClusterManagementServiceTransport;
-import org.apache.geode.management.internal.api.BaseManagementServiceBuilder;
+import org.apache.geode.management.internal.ClientClusterManagementService;
/**
* This builder facilitates creating a ClusterManagementService using either (or both) a {@link
- * ConnectionConfig} or a {@link ClusterManagementServiceTransport}. For typical usage it should be
- * sufficient to only use a {@code ClusterManagementServiceConnectionConfig}. For example:
+ * ConnectionConfig} or a {@link ClusterManagementServiceTransport}. For
+ * typical usage it should be sufficient to only use a
+ * {@code ClusterManagementServiceConnectionConfig}.
+ * For example:
*
* <pre>
* ClusterManagementService service = new ClusterManagementServiceBuilder()
- * .setPort(7070)
- * .setHost("localhost")
+ * .setConnectionConfig(new BasicClusterManagementServiceConnectionConfig("localhost", 7070))
* .build();
* </pre>
- * <p>
- * If no transport is set a public transport of
+ *
+ * If no transport is set a default transport of
* {@link RestTemplateClusterManagementServiceTransport}
* will be used and configured with the provided config.
*/
@Experimental
-public class ClusterManagementServiceBuilder
- extends BaseManagementServiceBuilder<ClusterManagementServiceBuilder> {
+public class ClusterManagementServiceBuilder {
- private String host = System.getProperty("geode.config.cms.connection.hostname", "localhost");
- private int port = Integer.getInteger("geode.config.cms.connection.port", 7070);
+ private ClusterManagementServiceTransport transport;
- public ClusterManagementServiceBuilder setHost(String hostname) {
- this.host = hostname;
- return this;
+ private ConnectionConfig connectionConfig;
+
+ /**
+ * Build a new {@link ClusterManagementService} instance
+ *
+ * @return a ClusterManagementService
+ * @throws IllegalStateException if neither transport or config have been set
+ */
+ public ClusterManagementService build() {
+ if (transport == null && connectionConfig == null) {
+ throw new IllegalStateException(
+ "Both transportBuilder and connectionConfig are null. Please configure with at least one of setTransportBuilder() or setConnectionConfig()");
+ }
+
+ if (transport == null) {
+ transport = new RestTemplateClusterManagementServiceTransport(connectionConfig);
+ } else if (connectionConfig != null) {
+ transport.configureConnection(connectionConfig);
+ }
+
+ return new ClientClusterManagementService(transport);
}
- public ClusterManagementServiceBuilder setPort(int port) {
- this.port = port;
+ public ClusterManagementServiceBuilder setTransport(
+ ClusterManagementServiceTransport transport) {
+ this.transport = transport;
return this;
}
- protected ConnectionConfig createConnectionConfig() {
- ConnectionConfig newConnectionConfig = new ConnectionConfig(host, port);
- return newConnectionConfig;
+ public ClusterManagementServiceBuilder setConnectionConfig(
+ ConnectionConfig connectionConfig) {
+ this.connectionConfig = connectionConfig;
+ return this;
}
}
diff --git a/geode-management/src/main/java/org/apache/geode/management/internal/api/BaseManagementServiceBuilder.java b/geode-management/src/main/java/org/apache/geode/management/internal/api/BaseManagementServiceBuilder.java
deleted file mode 100644
index 9d2c0d1..0000000
--- a/geode-management/src/main/java/org/apache/geode/management/internal/api/BaseManagementServiceBuilder.java
+++ /dev/null
@@ -1,106 +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.api;
-
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.SSLContext;
-
-import org.apache.http.conn.ssl.NoopHostnameVerifier;
-
-import org.apache.geode.management.api.ClusterManagementService;
-import org.apache.geode.management.api.ClusterManagementServiceTransport;
-import org.apache.geode.management.api.ConnectionConfig;
-import org.apache.geode.management.api.RestTemplateClusterManagementServiceTransport;
-import org.apache.geode.management.internal.ClientClusterManagementService;
-
-public abstract class BaseManagementServiceBuilder<T extends BaseManagementServiceBuilder> {
-
- private ClusterManagementServiceTransport transport;
-
- private String username = System.getProperty("geode.config.cms.connection.username");
- private String password = System.getProperty("geode.config.cms.connection.password");
- private HostnameVerifier hostnameVerifier = new NoopHostnameVerifier();
- private SSLContext sslContext;
- private String authToken;
- private boolean followRedirects =
- Boolean.parseBoolean(System
- .getProperty("geode.config.cms.connection.follow-redirect", "false"));
-
- /**
- * Build a new {@link ClusterManagementService} instance
- *
- * @return a ClusterManagementService
- */
- public ClusterManagementService build() {
- return new ClientClusterManagementService(configureTransport());
- }
-
- private ClusterManagementServiceTransport configureTransport() {
- if (transport == null) {
- ConnectionConfig connectionConfig = createConnectionConfig();
- connectionConfig = configureConnectionConfig(connectionConfig);
- return new RestTemplateClusterManagementServiceTransport(connectionConfig);
- }
- return transport;
- }
-
- public T setTransport(ClusterManagementServiceTransport transport) {
- this.transport = transport;
- return (T) this;
- }
-
- public T setAuthToken(String token) {
- this.authToken = token;
- return (T) this;
- }
-
- public T setSslContext(SSLContext sslContext) {
- this.sslContext = sslContext;
- return (T) this;
- }
-
- public T setUsername(String username) {
- this.username = username;
- return (T) this;
- }
-
- public T setPassword(String password) {
- this.password = password;
- return (T) this;
- }
-
- public T setHostnameVerifier(HostnameVerifier hostnameVerifier) {
- this.hostnameVerifier = hostnameVerifier;
- return (T) this;
- }
-
- public T setFollowRedirects(boolean followRedirects) {
- this.followRedirects = followRedirects;
- return (T) this;
- }
-
- protected abstract ConnectionConfig createConnectionConfig();
-
- protected ConnectionConfig configureConnectionConfig(ConnectionConfig newConnectionConfig) {
- newConnectionConfig.setAuthToken(authToken);
- newConnectionConfig.setFollowRedirects(followRedirects);
- newConnectionConfig.setHostnameVerifier(hostnameVerifier);
- newConnectionConfig.setUsername(username);
- newConnectionConfig.setPassword(password);
- newConnectionConfig.setSslContext(sslContext);
- return newConnectionConfig;
- }
-}
diff --git a/geode-management/src/test/java/org/apache/geode/management/client/ClusterManagementServiceBuilderTest.java b/geode-management/src/test/java/org/apache/geode/management/client/ClusterManagementServiceBuilderTest.java
index 63531dd..911abce 100644
--- a/geode-management/src/test/java/org/apache/geode/management/client/ClusterManagementServiceBuilderTest.java
+++ b/geode-management/src/test/java/org/apache/geode/management/client/ClusterManagementServiceBuilderTest.java
@@ -25,14 +25,13 @@ import javax.net.ssl.SSLContext;
import org.apache.http.client.RedirectStrategy;
import org.apache.http.impl.client.LaxRedirectStrategy;
-import org.junit.Rule;
import org.junit.Test;
-import org.junit.contrib.java.lang.system.RestoreSystemProperties;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.DefaultUriTemplateHandler;
+import org.apache.geode.management.api.BaseConnectionConfig;
import org.apache.geode.management.api.ClusterManagementService;
public class ClusterManagementServiceBuilderTest {
@@ -40,9 +39,6 @@ public class ClusterManagementServiceBuilderTest {
private static final String HOST = "localhost";
private static final int PORT = 7777;
- @Rule
- public final RestoreSystemProperties restoreSystemProperties = new RestoreSystemProperties();
-
private <T> T getFieldValue(Object target, String fieldName) throws NoSuchFieldException {
Field field = ReflectionUtils.findField(target.getClass(), fieldName);
@@ -60,8 +56,9 @@ public class ClusterManagementServiceBuilderTest {
@Test
public void hostAndPortAreSetCorrectly() throws NoSuchFieldException {
+ BaseConnectionConfig connectionConfig = new BaseConnectionConfig(HOST, PORT);
ClusterManagementService cms =
- new ClusterManagementServiceBuilder().setHost(HOST).setPort(PORT).build();
+ new ClusterManagementServiceBuilder().setConnectionConfig(connectionConfig).build();
RestTemplate restTemplate = getFieldValue(getFieldValue(cms, "transport"), "restTemplate");
assertThat(((DefaultUriTemplateHandler) (restTemplate.getUriTemplateHandler())).getBaseUrl())
@@ -70,12 +67,10 @@ public class ClusterManagementServiceBuilderTest {
@Test
public void settingSSLUsesHTTPS() throws NoSuchAlgorithmException, NoSuchFieldException {
+ BaseConnectionConfig connectionConfig = new BaseConnectionConfig(HOST, PORT);
+ connectionConfig.setSslContext(SSLContext.getDefault());
ClusterManagementService cms =
- new ClusterManagementServiceBuilder()
- .setHost(HOST)
- .setPort(PORT)
- .setSslContext(SSLContext.getDefault())
- .build();
+ new ClusterManagementServiceBuilder().setConnectionConfig(connectionConfig).build();
RestTemplate restTemplate = getFieldValue(getFieldValue(cms, "transport"), "restTemplate");
assertThat(((DefaultUriTemplateHandler) (restTemplate.getUriTemplateHandler())).getBaseUrl())
@@ -84,8 +79,9 @@ public class ClusterManagementServiceBuilderTest {
@Test
public void notSettingSSLUsesHTTP() throws NoSuchAlgorithmException, NoSuchFieldException {
+ BaseConnectionConfig connectionConfig = new BaseConnectionConfig(HOST, PORT);
ClusterManagementService cms =
- new ClusterManagementServiceBuilder().setHost(HOST).setPort(PORT).build();
+ new ClusterManagementServiceBuilder().setConnectionConfig(connectionConfig).build();
RestTemplate restTemplate = getFieldValue(getFieldValue(cms, "transport"), "restTemplate");
assertThat(((DefaultUriTemplateHandler) (restTemplate.getUriTemplateHandler())).getBaseUrl())
@@ -94,12 +90,10 @@ public class ClusterManagementServiceBuilderTest {
@Test
public void followRedirectsIsSetWhenEnabled() throws NoSuchFieldException {
+ BaseConnectionConfig connectionConfig = new BaseConnectionConfig(HOST, PORT);
+ connectionConfig.setFollowRedirects(true);
ClusterManagementService cms =
- new ClusterManagementServiceBuilder()
- .setFollowRedirects(true)
- .setHost(HOST)
- .setPort(PORT)
- .build();
+ new ClusterManagementServiceBuilder().setConnectionConfig(connectionConfig).build();
RestTemplate restTemplate = getFieldValue(getFieldValue(cms, "transport"), "restTemplate");
HttpComponentsClientHttpRequestFactory requestFactory =
@@ -112,12 +106,10 @@ public class ClusterManagementServiceBuilderTest {
@Test
public void followRedirectsIsNotSetWhenNotEnabled() throws NoSuchFieldException {
+ BaseConnectionConfig connectionConfig = new BaseConnectionConfig(HOST, PORT);
+ connectionConfig.setFollowRedirects(false);
ClusterManagementService cms =
- new ClusterManagementServiceBuilder()
- .setFollowRedirects(false)
- .setHost(HOST)
- .setPort(PORT)
- .build();
+ new ClusterManagementServiceBuilder().setConnectionConfig(connectionConfig).build();
RestTemplate restTemplate = getFieldValue(getFieldValue(cms, "transport"), "restTemplate");
HttpComponentsClientHttpRequestFactory requestFactory =