You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2020/06/20 07:25:39 UTC
[servicecomb-java-chassis] branch master updated:
[SCB-1986]ServiceRegistryConfig is a bit complicated,
make it easier for extension
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/master by this push:
new f554d58 [SCB-1986]ServiceRegistryConfig is a bit complicated, make it easier for extension
f554d58 is described below
commit f554d5840516c7be90e08b21d53afc8cdf76d2fa
Author: liubao <bi...@qq.com>
AuthorDate: Fri Jun 19 16:17:37 2020 +0800
[SCB-1986]ServiceRegistryConfig is a bit complicated, make it easier for extension
---
.../ServerBServiceCenterConfiguration.java | 34 ++-------------
.../config/ServiceRegistryConfig.java | 50 ----------------------
.../config/ServiceRegistryConfigBuilder.java | 2 -
.../config/ServiceRegistryConfigCustomizer.java | 38 ++++++++++------
.../config/TestServiceRegistryConfig.java | 1 -
5 files changed, 28 insertions(+), 97 deletions(-)
diff --git a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/ServerBServiceCenterConfiguration.java b/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/ServerBServiceCenterConfiguration.java
index 8e73d3c..4d37b0e 100644
--- a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/ServerBServiceCenterConfiguration.java
+++ b/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/ServerBServiceCenterConfiguration.java
@@ -17,45 +17,17 @@
package org.apache.servicecomb.demo.multiServiceCenterClient;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.servicecomb.foundation.common.net.IpPort;
-import org.apache.servicecomb.foundation.common.net.NetUtils;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
+import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfigCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import com.netflix.config.DynamicPropertyFactory;
-
@Configuration
public class ServerBServiceCenterConfiguration {
@Bean("serverBServiceCenterConfig")
public ServiceRegistryConfig serverBServiceCenterConfig() {
ServiceRegistryConfig config = ServiceRegistryConfig.buildFromConfiguration();
- String address = DynamicPropertyFactory.getInstance()
- .getStringProperty("servicecomb.service.registry-serverB.address", null)
- .get();
- if (address == null) {
- throw new IllegalStateException("service center address is required.");
- }
- String[] urls = address.split(",");
- List<String> uriList = Arrays.asList(urls);
- ArrayList<IpPort> ipPortList = new ArrayList<>();
- uriList.forEach(anUriList -> {
- try {
- URI uri = new URI(anUriList.trim());
- if ("https".equals(uri.getScheme())) {
- config.setSsl(true);
- }
- ipPortList.add(NetUtils.parseIpPort(uri));
- } catch (Exception e) {
- throw new IllegalStateException("service center address is required.", e);
- }
- });
- config.setIpPort(ipPortList);
- return config;
+ return ServiceRegistryConfigCustomizer.from(config)
+ .addressListFromConfiguration("servicecomb.service.registry-serverB.address").get();
}
}
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java
index 4afe149..43141bc 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java
@@ -32,8 +32,6 @@ import io.vertx.core.http.HttpVersion;
public class ServiceRegistryConfig {
public static final ServiceRegistryConfig INSTANCE = buildFromConfiguration();
- public static final int DEFAULT_TIMEOUT_IN_MS = 30000;
-
public static final int DEFAULT_TIMEOUT_IN_SECONDS = 30;
public static final int DEFAULT_REQUEST_TIMEOUT_IN_MS = 30000;
@@ -60,10 +58,6 @@ public class ServiceRegistryConfig {
public static final String NO_DOMAIN = "default";
- public static final String SSL_KEY = "sc.consumer";
-
- public static final String PROXY_KEY = "sc.consumer";
-
public static final String VERTICLE_INSTANCES = "servicecomb.service.registry.client.instances";
public static final String EVENT_LOOP_POOL_SIZE = "servicecomb.service.registry.client.eventLoopPoolSize";
@@ -85,8 +79,6 @@ public class ServiceRegistryConfig {
private int idleConnectionTimeout;
- private int idleWatchTimeout;
-
private int requestTimeout;
//Set the timeout of the heartbeat request
@@ -106,8 +98,6 @@ public class ServiceRegistryConfig {
private boolean watch;
- private boolean clientAuthEnabled;
-
private String registryApiVersion;
private String tenantName;
@@ -128,10 +118,6 @@ public class ServiceRegistryConfig {
private String proxyPasswd;
- private String sslConfigTag = SSL_KEY;
-
- private String proxyConfigTag = PROXY_KEY;
-
private List<AuthHeaderProvider> authHeaderProviders;
private Function<ServiceRegistry, ServiceRegistryClient> serviceRegistryClientConstructor =
@@ -216,15 +202,6 @@ public class ServiceRegistryConfig {
return this;
}
- public int getIdleWatchTimeout() {
- return idleWatchTimeout;
- }
-
- public ServiceRegistryConfig setIdleWatchTimeout(int idleWatchTimeout) {
- this.idleWatchTimeout = idleWatchTimeout;
- return this;
- }
-
public int getRequestTimeout() {
return requestTimeout;
}
@@ -306,15 +283,6 @@ public class ServiceRegistryConfig {
return this;
}
- public boolean isClientAuthEnabled() {
- return clientAuthEnabled;
- }
-
- public ServiceRegistryConfig setClientAuthEnabled(boolean clientAuthEnabled) {
- this.clientAuthEnabled = clientAuthEnabled;
- return this;
- }
-
public String getRegistryApiVersion() {
return registryApiVersion;
}
@@ -405,24 +373,6 @@ public class ServiceRegistryConfig {
return this;
}
- public String getSslConfigTag() {
- return sslConfigTag;
- }
-
- public ServiceRegistryConfig setSslConfigTag(String sslConfigTag) {
- this.sslConfigTag = sslConfigTag;
- return this;
- }
-
- public String getProxyConfigTag() {
- return proxyConfigTag;
- }
-
- public ServiceRegistryConfig setProxyConfigTag(String proxyConfigTag) {
- this.proxyConfigTag = proxyConfigTag;
- return this;
- }
-
public List<AuthHeaderProvider> getAuthHeaderProviders() {
return authHeaderProviders;
}
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigBuilder.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigBuilder.java
index 69a55eb..de8d13e 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigBuilder.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigBuilder.java
@@ -52,7 +52,6 @@ class ServiceRegistryConfigBuilder {
.setSsl(isSsl())
.setConnectionTimeout(getConnectionTimeout())
.setIdleConnectionTimeout(getIdleConnectionTimeout())
- .setIdleWatchTimeout(getIdleWatchTimeout())
.setRequestTimeout(getRequestTimeout())
.setHeartBeatRequestTimeout(getHeartBeatRequestTimeout())
.setHeartbeatInterval(getHeartbeatInterval())
@@ -62,7 +61,6 @@ class ServiceRegistryConfigBuilder {
.setAlwaysOverrideSchema(isAlwaysOverrideSchema())
.setPreferIpAddress(isPreferIpAddress())
.setWatch(isWatch())
- .setClientAuthEnabled(isClientAuthEnabled())
.setRegistryApiVersion(getRegistryApiVersion())
.setTenantName(getTenantName())
.setDomainName(getDomainName())
diff --git a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/ServerBServiceCenterConfiguration.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigCustomizer.java
similarity index 68%
copy from demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/ServerBServiceCenterConfiguration.java
copy to service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigCustomizer.java
index 8e73d3c..b45db80 100644
--- a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/ServerBServiceCenterConfiguration.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigCustomizer.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.servicecomb.demo.multiServiceCenterClient;
+package org.apache.servicecomb.serviceregistry.config;
import java.net.URI;
import java.util.ArrayList;
@@ -24,19 +24,26 @@ import java.util.List;
import org.apache.servicecomb.foundation.common.net.IpPort;
import org.apache.servicecomb.foundation.common.net.NetUtils;
-import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
import com.netflix.config.DynamicPropertyFactory;
-@Configuration
-public class ServerBServiceCenterConfiguration {
- @Bean("serverBServiceCenterConfig")
- public ServiceRegistryConfig serverBServiceCenterConfig() {
- ServiceRegistryConfig config = ServiceRegistryConfig.buildFromConfiguration();
+/**
+ * easier way to have new customized copies of ServiceRegistryConfig
+ */
+public class ServiceRegistryConfigCustomizer {
+ private ServiceRegistryConfig original;
+
+ private ServiceRegistryConfigCustomizer(ServiceRegistryConfig original) {
+ this.original = original;
+ }
+
+ public static ServiceRegistryConfigCustomizer from(ServiceRegistryConfig original) {
+ return new ServiceRegistryConfigCustomizer(original);
+ }
+
+ public ServiceRegistryConfigCustomizer addressListFromConfiguration(String configuration) {
String address = DynamicPropertyFactory.getInstance()
- .getStringProperty("servicecomb.service.registry-serverB.address", null)
+ .getStringProperty(configuration, null)
.get();
if (address == null) {
throw new IllegalStateException("service center address is required.");
@@ -48,14 +55,19 @@ public class ServerBServiceCenterConfiguration {
try {
URI uri = new URI(anUriList.trim());
if ("https".equals(uri.getScheme())) {
- config.setSsl(true);
+ this.original.setSsl(true);
}
ipPortList.add(NetUtils.parseIpPort(uri));
} catch (Exception e) {
throw new IllegalStateException("service center address is required.", e);
}
});
- config.setIpPort(ipPortList);
- return config;
+ this.original.setIpPort(ipPortList);
+
+ return this;
+ }
+
+ public ServiceRegistryConfig get() {
+ return original;
}
}
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestServiceRegistryConfig.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestServiceRegistryConfig.java
index 6687a11..3b807e1 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestServiceRegistryConfig.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestServiceRegistryConfig.java
@@ -56,7 +56,6 @@ public class TestServiceRegistryConfig {
Assert.assertNotEquals(null, oConfig.getResendHeartBeatTimes());
Assert.assertFalse(oConfig.isPreferIpAddress());
Assert.assertTrue(oConfig.isWatch());
- Assert.assertFalse(oConfig.isClientAuthEnabled());
Assert.assertEquals(ServiceRegistryConfig.NO_TENANT, oConfig.getTenantName());
Assert.assertNull(oConfig.getSecretKey());
List<IpPort> ipPorts = oConfig.getIpPort();