This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit 2de2ffed23481c099b3610e4a72aeee9f85dcd31
Author: weichao666 <weicha...@huawei.com>
AuthorDate: Thu Apr 19 09:46:07 2018 +0800

    [SCB-498] when use ip address, need to config default port
---
 .../servicecomb/config/client/ConfigCenterConfig.java     | 12 +-----------
 .../servicecomb/config/client/TestConfigCenterConfig.java |  2 --
 .../config-cc/src/test/resources/microservice.yaml        |  2 +-
 .../servicecomb/foundation/common/net/NetUtils.java       | 15 ++++++++++++++-
 .../servicecomb/foundation/common/net/TestNetUtils.java   |  4 ++++
 5 files changed, 20 insertions(+), 15 deletions(-)

diff --git 
a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterConfig.java
 
b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterConfig.java
index 42b1c28..c38f252 100644
--- 
a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterConfig.java
+++ 
b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterConfig.java
@@ -175,21 +175,11 @@ public final class ConfigCenterConfig {
     String[] result = finalConfig.getStringArray(SERVER_URL_KEY);
     List<String> configCenterUris = new ArrayList<>(result.length);
     for (int i = 0; i < result.length; i++) {
-      if (!result[i].substring(result[i].indexOf(":") + 1, 
result[i].length()).contains(":")) {
-        configCenterUris.add(useDefaultPort(result[i]));
-      } else {
-        configCenterUris.add(result[i]);
-      }
+      configCenterUris.add(result[i]);
     }
     return configCenterUris;
   }
 
-  private String useDefaultPort(String result) {
-    if (result.startsWith("https"))
-      return new StringBuffer(result).append(":443").toString();
-    return new StringBuffer(result).append(":80").toString();
-  }
-
   public boolean getAutoDiscoveryEnabled() {
     return finalConfig.getBoolean(AUTO_DISCOVERY_ENABLED, false);
   }
diff --git 
a/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/client/TestConfigCenterConfig.java
 
b/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/client/TestConfigCenterConfig.java
index d09e4af..1624f5a 100644
--- 
a/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/client/TestConfigCenterConfig.java
+++ 
b/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/client/TestConfigCenterConfig.java
@@ -35,8 +35,6 @@ public class TestConfigCenterConfig {
     List<String> servers = ConfigCenterConfig.INSTANCE.getServerUri();
     Assert.assertEquals("https://172.16.8.7:30103";, servers.get(0));
     Assert.assertEquals("https://172.16.8.7:30103";, servers.get(1));
-    Assert.assertEquals("http://172.16.8.7:80";, servers.get(2));
-    Assert.assertEquals("https://172.16.8.7:443";, servers.get(3));
   }
 
   @Test
diff --git a/dynamic-config/config-cc/src/test/resources/microservice.yaml 
b/dynamic-config/config-cc/src/test/resources/microservice.yaml
index 4452250..445cfa6 100644
--- a/dynamic-config/config-cc/src/test/resources/microservice.yaml
+++ b/dynamic-config/config-cc/src/test/resources/microservice.yaml
@@ -46,7 +46,7 @@ cse:
   config:
     client:
       serviceName: testDemo
-      serverUri: 
https://172.16.8.7:30103,https://${host.name}:30103,http://172.16.8.7,https://172.16.8.7
+      serverUri: https://172.16.8.7:30103,https://${host.name}:30103
       tenantName: csetest
       refreshMode: 1
       refresh_interval: 10000
diff --git 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/NetUtils.java
 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/NetUtils.java
index 3fbee27..66b5181 100644
--- 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/NetUtils.java
+++ 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/NetUtils.java
@@ -145,12 +145,25 @@ public final class NetUtils {
     try {
       URI uri = new URI(uriAddress);
       String authority = uri.getAuthority();
-      return parseIpPort(authority);
+      return parseIpPort(uri.getScheme(), authority);
     } catch (URISyntaxException e) {
       return null;
     }
   }
 
+  private static IpPort parseIpPort(String scheme, String authority) {
+    if (authority == null)
+      return null;
+    int idx = authority.indexOf(':');
+    if (idx != -1)
+      return parseIpPort(authority);
+    if (scheme.equals("http"))
+      return parseIpPort(new StringBuffer(authority).append(":80").toString());
+    if (scheme.equals("https"))
+      return parseIpPort(new 
StringBuffer(authority).append(":443").toString());
+    return parseIpPort(authority);
+  }
+
   /**
    * 对于配置为0.0.0.0的地址,let it go
    * schema, e.g. http
diff --git 
a/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/net/TestNetUtils.java
 
b/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/net/TestNetUtils.java
index ce6cc08..654f543 100644
--- 
a/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/net/TestNetUtils.java
+++ 
b/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/net/TestNetUtils.java
@@ -49,6 +49,10 @@ public class TestNetUtils {
     Assert.assertEquals(NetUtils.parseIpPortFromURI(null), null);
     Assert.assertEquals(NetUtils.parseIpPortFromURI("ss"), null);
     
Assert.assertEquals(NetUtils.parseIpPortFromURI("rest://127.0.0.1:8080").getHostOrIp(),
 "127.0.0.1");
+    
Assert.assertEquals(NetUtils.parseIpPortFromURI("http://127.0.0.1:8080";).getPort(),
 8080);
+    
Assert.assertEquals(NetUtils.parseIpPortFromURI("http://127.0.0.1";).getPort(), 
80);
+    
Assert.assertEquals(NetUtils.parseIpPortFromURI("https://127.0.0.1:8080";).getPort(),
 8080);
+    
Assert.assertEquals(NetUtils.parseIpPortFromURI("https://127.0.0.1";).getPort(), 
443);
   }
 
   @Test

-- 
To stop receiving notification emails like this one, please contact
wuji...@apache.org.

Reply via email to