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.