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();