From 404516de437414f57ef503b54b1ce95398c4e0db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=A6=E7=9B=8F?= Date: Wed, 27 Mar 2019 17:46:11 +0800 Subject: [PATCH 1/2] sync code --- .codecov.yml | 5 - .../cloud/examples/DatabaseConfiguration.java | 2 +- .../cloud/examples/DatabaseConfiguration.java | 3 +- .../cloud/examples/OrderController.java | 126 +++++++++--------- .../cloud/examples/DatabaseConfiguration.java | 2 +- .../cloud/examples/ConsumerApplication.java | 12 +- .../alibaba/nacos/NacosConfigProperties.java | 27 +++- .../nacos/NacosConfigurationTests.java | 8 ++ .../nacos/NacosDiscoveryProperties.java | 37 +++-- ...NacosDiscoveryClientAutoConfiguration.java | 2 + ...itional-spring-configuration-metadata.json | 6 + .../NacosAutoServiceRegistrationTests.java | 8 ++ .../bootstrap/AcmPropertySourceBuilder.java | 1 - .../acm/endpoint/AcmHealthIndicator.java | 1 - 14 files changed, 147 insertions(+), 93 deletions(-) delete mode 100644 .codecov.yml diff --git a/.codecov.yml b/.codecov.yml deleted file mode 100644 index 20ecf1f1..00000000 --- a/.codecov.yml +++ /dev/null @@ -1,5 +0,0 @@ - -coverage: - status: - project: off - patch: off \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/fescar-example/account-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java b/spring-cloud-alibaba-examples/fescar-example/account-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java index 62e11cd6..f3ccf818 100644 --- a/spring-cloud-alibaba-examples/fescar-example/account-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java +++ b/spring-cloud-alibaba-examples/fescar-example/account-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java @@ -52,7 +52,7 @@ public class DatabaseConfiguration { String password = environment.getProperty("mysql.user.password"); DruidDataSource druidDataSource = new DruidDataSource(); - druidDataSource.setUrl("jdbc:mysql://" + ip + ":" + port + "/" + dbName); + druidDataSource.setUrl("jdbc:mysql://" + ip + ":" + port + "/" + dbName + "?serverTimezone=UTC"); druidDataSource.setUsername(userName); druidDataSource.setPassword(password); druidDataSource.setDriverClassName("com.mysql.jdbc.Driver"); diff --git a/spring-cloud-alibaba-examples/fescar-example/order-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java b/spring-cloud-alibaba-examples/fescar-example/order-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java index 8e5c7d87..035eb7ee 100644 --- a/spring-cloud-alibaba-examples/fescar-example/order-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java +++ b/spring-cloud-alibaba-examples/fescar-example/order-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java @@ -51,7 +51,8 @@ public class DatabaseConfiguration { String password = env.getProperty("mysql.user.password"); DruidDataSource druidDataSource = new DruidDataSource(); - druidDataSource.setUrl("jdbc:mysql://" + ip + ":" + port + "/" + dbName); + druidDataSource.setUrl( + "jdbc:mysql://" + ip + ":" + port + "/" + dbName + "?serverTimezone=UTC"); druidDataSource.setUsername(userName); druidDataSource.setPassword(password); druidDataSource.setDriverClassName("com.mysql.jdbc.Driver"); diff --git a/spring-cloud-alibaba-examples/fescar-example/order-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/OrderController.java b/spring-cloud-alibaba-examples/fescar-example/order-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/OrderController.java index 546392d1..d215588d 100644 --- a/spring-cloud-alibaba-examples/fescar-example/order-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/OrderController.java +++ b/spring-cloud-alibaba-examples/fescar-example/order-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/OrderController.java @@ -46,86 +46,86 @@ import java.util.Random; @RestController public class OrderController { - private static final Logger LOGGER = LoggerFactory.getLogger(OrderController.class); - private static final String SUCCESS = "SUCCESS"; - private static final String FAIL = "FAIL"; - private static final String USER_ID = "U100001"; - private static final String COMMODITY_CODE = "C00321"; + private static final Logger LOGGER = LoggerFactory.getLogger(OrderController.class); + private static final String SUCCESS = "SUCCESS"; + private static final String FAIL = "FAIL"; + private static final String USER_ID = "U100001"; + private static final String COMMODITY_CODE = "C00321"; - private final JdbcTemplate jdbcTemplate; - private final RestTemplate restTemplate; - private Random random; + private final JdbcTemplate jdbcTemplate; + private final RestTemplate restTemplate; + private Random random; - public OrderController(JdbcTemplate jdbcTemplate, RestTemplate restTemplate) { - this.jdbcTemplate = jdbcTemplate; - this.restTemplate = restTemplate; - this.random = new Random(); - } + public OrderController(JdbcTemplate jdbcTemplate, RestTemplate restTemplate) { + this.jdbcTemplate = jdbcTemplate; + this.restTemplate = restTemplate; + this.random = new Random(); + } - @RequestMapping(value = "/order", method = RequestMethod.POST, produces = "application/json") - public String order(String userId, String commodityCode, int orderCount) { - LOGGER.info("Order Service Begin ... xid: " + RootContext.getXID()); + @RequestMapping(value = "/order", method = RequestMethod.POST, produces = "application/json") + public String order(String userId, String commodityCode, int orderCount) { + LOGGER.info("Order Service Begin ... xid: " + RootContext.getXID()); - int orderMoney = calculate(commodityCode, orderCount); + int orderMoney = calculate(commodityCode, orderCount); - invokerAccountService(orderMoney); + invokerAccountService(orderMoney); - final Order order = new Order(); - order.userId = userId; - order.commodityCode = commodityCode; - order.count = orderCount; - order.money = orderMoney; + final Order order = new Order(); + order.userId = userId; + order.commodityCode = commodityCode; + order.count = orderCount; + order.money = orderMoney; - KeyHolder keyHolder = new GeneratedKeyHolder(); + KeyHolder keyHolder = new GeneratedKeyHolder(); - int result = jdbcTemplate.update(new PreparedStatementCreator() { + int result = jdbcTemplate.update(new PreparedStatementCreator() { - @Override - public PreparedStatement createPreparedStatement(Connection con) - throws SQLException { - PreparedStatement pst = con.prepareStatement( - "insert into order_tbl (user_id, commodity_code, count, money) values (?, ?, ?, ?)", - PreparedStatement.RETURN_GENERATED_KEYS); - pst.setObject(1, order.userId); - pst.setObject(2, order.commodityCode); - pst.setObject(3, order.count); - pst.setObject(4, order.money); - return pst; - } - }, keyHolder); + @Override + public PreparedStatement createPreparedStatement(Connection con) + throws SQLException { + PreparedStatement pst = con.prepareStatement( + "insert into order_tbl (user_id, commodity_code, count, money) values (?, ?, ?, ?)", + PreparedStatement.RETURN_GENERATED_KEYS); + pst.setObject(1, order.userId); + pst.setObject(2, order.commodityCode); + pst.setObject(3, order.count); + pst.setObject(4, order.money); + return pst; + } + }, keyHolder); - order.id = keyHolder.getKey().longValue(); + order.id = keyHolder.getKey().longValue(); -// if (random.nextBoolean()) { -// throw new RuntimeException("this is a mock Exception"); -// } + if (random.nextBoolean()) { + throw new RuntimeException("this is a mock Exception"); + } - LOGGER.info("Order Service End ... Created " + order); + LOGGER.info("Order Service End ... Created " + order); - if (result == 1) { - return SUCCESS; - } - return FAIL; - } + if (result == 1) { + return SUCCESS; + } + return FAIL; + } - private int calculate(String commodityId, int orderCount) { - return 2 * orderCount; - } + private int calculate(String commodityId, int orderCount) { + return 2 * orderCount; + } - private void invokerAccountService(int orderMoney) { - String url = "http://127.0.0.1:18084/account"; - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + private void invokerAccountService(int orderMoney) { + String url = "http://127.0.0.1:18084/account"; + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - MultiValueMap map = new LinkedMultiValueMap(); + MultiValueMap map = new LinkedMultiValueMap(); - map.add("userId", USER_ID); - map.add("money", orderMoney + ""); + map.add("userId", USER_ID); + map.add("money", orderMoney + ""); - HttpEntity> request = new HttpEntity>( - map, headers); + HttpEntity> request = new HttpEntity>( + map, headers); - ResponseEntity response = restTemplate.postForEntity(url, request, - String.class); - } + ResponseEntity response = restTemplate.postForEntity(url, request, + String.class); + } } diff --git a/spring-cloud-alibaba-examples/fescar-example/storage-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java b/spring-cloud-alibaba-examples/fescar-example/storage-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java index 2973f21a..8e4ccf7d 100644 --- a/spring-cloud-alibaba-examples/fescar-example/storage-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java +++ b/spring-cloud-alibaba-examples/fescar-example/storage-service/src/main/java/org/springframework/cloud/alibaba/cloud/examples/DatabaseConfiguration.java @@ -52,7 +52,7 @@ public class DatabaseConfiguration { String password = environment.getProperty("mysql.user.password"); DruidDataSource druidDataSource = new DruidDataSource(); - druidDataSource.setUrl("jdbc:mysql://" + ip + ":" + port + "/" + dbName); + druidDataSource.setUrl("jdbc:mysql://" + ip + ":" + port + "/" + dbName + "?serverTimezone=UTC"); druidDataSource.setUsername(userName); druidDataSource.setPassword(password); druidDataSource.setDriverClassName("com.mysql.jdbc.Driver"); diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ConsumerApplication.java b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ConsumerApplication.java index 830bf32f..97712312 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ConsumerApplication.java +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ConsumerApplication.java @@ -29,12 +29,12 @@ public class ConsumerApplication { return new RestTemplate(); } - @LoadBalanced - @Bean - @SentinelRestTemplate - public RestTemplate restTemplate1() { - return new RestTemplate(); - } + @LoadBalanced + @Bean + @SentinelRestTemplate + public RestTemplate restTemplate1() { + return new RestTemplate(); + } public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); diff --git a/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/NacosConfigProperties.java b/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/NacosConfigProperties.java index 1518dcff..eb57ad4e 100644 --- a/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/NacosConfigProperties.java +++ b/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/NacosConfigProperties.java @@ -36,6 +36,7 @@ import static com.alibaba.nacos.api.PropertyKeyConst.CLUSTER_NAME; import static com.alibaba.nacos.api.PropertyKeyConst.CONTEXT_PATH; import static com.alibaba.nacos.api.PropertyKeyConst.ENCODE; import static com.alibaba.nacos.api.PropertyKeyConst.ENDPOINT; +import static com.alibaba.nacos.api.PropertyKeyConst.ENDPOINT_PORT; import static com.alibaba.nacos.api.PropertyKeyConst.NAMESPACE; import static com.alibaba.nacos.api.PropertyKeyConst.SECRET_KEY; import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR; @@ -90,6 +91,12 @@ public class NacosConfigProperties { */ private String endpoint; + /** + * endpoint port for Nacos, the domain port of a service, through which the server + * address can be dynamically obtained. + */ + private String endpointPort; + /** * namespace, separation configuration of different environments. */ @@ -265,6 +272,14 @@ public class NacosConfigProperties { this.name = name; } + public String getEndpointPort() { + return endpointPort; + } + + public void setEndpointPort(String endpointPort) { + this.endpointPort = endpointPort; + } + public static class Config { /** * the data id of extended configuration @@ -310,11 +325,12 @@ public class NacosConfigProperties { + ", encode='" + encode + '\'' + ", group='" + group + '\'' + ", prefix='" + prefix + '\'' + ", fileExtension='" + fileExtension + '\'' + ", timeout=" + timeout + ", endpoint='" + endpoint + '\'' - + ", namespace='" + namespace + '\'' + ", accessKey='" + accessKey + '\'' - + ", secretKey='" + secretKey + '\'' + ", contextPath='" + contextPath - + '\'' + ", clusterName='" + clusterName + '\'' + ", name='" + name + '\'' - + ", sharedDataids='" + sharedDataids + '\'' + ", refreshableDataids='" - + refreshableDataids + '\'' + ", extConfig=" + extConfig + '}'; + + ", endpointPort='" + endpointPort + '\'' + ", namespace='" + namespace + + '\'' + ", accessKey='" + accessKey + '\'' + ", secretKey='" + secretKey + + '\'' + ", contextPath='" + contextPath + '\'' + ", clusterName='" + + clusterName + '\'' + ", name='" + name + '\'' + ", sharedDataids='" + + sharedDataids + '\'' + ", refreshableDataids='" + refreshableDataids + + '\'' + ", extConfig=" + extConfig + '}'; } public ConfigService configServiceInstance() { @@ -332,6 +348,7 @@ public class NacosConfigProperties { properties.put(CONTEXT_PATH, Objects.toString(this.contextPath, "")); properties.put(CLUSTER_NAME, Objects.toString(this.clusterName, "")); properties.put(ENDPOINT, Objects.toString(this.endpoint, "")); + properties.put(ENDPOINT_PORT, Objects.toString(this.endpointPort, "")); try { configService = NacosFactory.createConfigService(properties); return configService; diff --git a/spring-cloud-alibaba-nacos-config/src/test/java/org/springframework/cloud/alibaba/nacos/NacosConfigurationTests.java b/spring-cloud-alibaba-nacos-config/src/test/java/org/springframework/cloud/alibaba/nacos/NacosConfigurationTests.java index fc2a3b12..1cc122aa 100644 --- a/spring-cloud-alibaba-nacos-config/src/test/java/org/springframework/cloud/alibaba/nacos/NacosConfigurationTests.java +++ b/spring-cloud-alibaba-nacos-config/src/test/java/org/springframework/cloud/alibaba/nacos/NacosConfigurationTests.java @@ -60,6 +60,7 @@ import org.springframework.test.context.junit4.SpringRunner; "spring.application.name=myTestService1", "spring.profiles.active=dev,test", "spring.cloud.nacos.config.server-addr=127.0.0.1:8848", "spring.cloud.nacos.config.endpoint=test-endpoint", + "spring.cloud.nacos.config.endpoint-port=8081", "spring.cloud.nacos.config.namespace=test-namespace", "spring.cloud.nacos.config.encode=utf-8", "spring.cloud.nacos.config.timeout=1000", @@ -153,6 +154,7 @@ public class NacosConfigurationTests { checkoutNacosConfigServerAddr(); checkoutNacosConfigEndpoint(); + checkoutNacosConfigEndpointPort(); checkoutNacosConfigNamespace(); checkoutNacosConfigClusterName(); checkoutNacosConfigAccessKey(); @@ -181,6 +183,12 @@ public class NacosConfigurationTests { } + private void checkoutNacosConfigEndpointPort() { + assertEquals("NacosConfigProperties endpoint port is wrong", "8081", + properties.getEndpointPort()); + + } + private void checkoutNacosConfigNamespace() { assertEquals("NacosConfigProperties namespace is wrong", "test-namespace", properties.getNamespace()); diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java index 48746f53..cce0a7fc 100644 --- a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java +++ b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java @@ -59,6 +59,12 @@ public class NacosDiscoveryProperties { */ private String endpoint; + /** + * the domain port of a service, through which the server address can be dynamically + * obtained. + */ + private String endpointPort; + /** * namespace, separation registry of different environments. */ @@ -335,18 +341,26 @@ public class NacosDiscoveryProperties { this.watchDelay = watchDelay; } + public String getEndpointPort() { + return endpointPort; + } + + public void setEndpointPort(String endpointPort) { + this.endpointPort = endpointPort; + } + @Override public String toString() { return "NacosDiscoveryProperties{" + "serverAddr='" + serverAddr + '\'' - + ", endpoint='" + endpoint + '\'' + ", namespace='" + namespace + '\'' - + ", watchDelay=" + watchDelay + ", logName='" + logName + '\'' - + ", service='" + service + '\'' + ", weight=" + weight - + ", clusterName='" + clusterName + '\'' + ", namingLoadCacheAtStart='" - + namingLoadCacheAtStart + '\'' + ", metadata=" + metadata - + ", registerEnabled=" + registerEnabled + ", ip='" + ip + '\'' - + ", networkInterface='" + networkInterface + '\'' + ", port=" + port - + ", secure=" + secure + ", accessKey='" + accessKey + '\'' - + ", secretKey='" + secretKey + '\'' + '}'; + + ", endpoint='" + endpoint + '\'' + ", endpointPort='" + endpointPort + + '\'' + ", namespace='" + namespace + '\'' + ", watchDelay=" + watchDelay + + ", logName='" + logName + '\'' + ", service='" + service + '\'' + + ", weight=" + weight + ", clusterName='" + clusterName + '\'' + + ", namingLoadCacheAtStart='" + namingLoadCacheAtStart + '\'' + + ", metadata=" + metadata + ", registerEnabled=" + registerEnabled + + ", ip='" + ip + '\'' + ", networkInterface='" + networkInterface + '\'' + + ", port=" + port + ", secure=" + secure + ", accessKey='" + accessKey + + '\'' + ", secretKey='" + secretKey + '\'' + '}'; } public void overrideFromEnv(Environment env) { @@ -379,6 +393,10 @@ public class NacosDiscoveryProperties { this.setEndpoint( env.resolvePlaceholders("${spring.cloud.nacos.discovery.endpoint:}")); } + if (StringUtils.isEmpty(this.getEndpointPort())) { + this.setEndpointPort(env.resolvePlaceholders( + "${spring.cloud.nacos.discovery.endpoint-port:}")); + } } public NamingService namingServiceInstance() { @@ -392,6 +410,7 @@ public class NacosDiscoveryProperties { properties.put(NAMESPACE, namespace); properties.put(UtilAndComs.NACOS_NAMING_LOG_NAME, logName); properties.put(ENDPOINT, endpoint); + properties.put(ENDPOINT_PORT, endpointPort); properties.put(ACCESS_KEY, accessKey); properties.put(SECRET_KEY, secretKey); properties.put(CLUSTER_NAME, clusterName); diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/NacosDiscoveryClientAutoConfiguration.java b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/NacosDiscoveryClientAutoConfiguration.java index 5fe818b3..2ddb4c34 100644 --- a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/NacosDiscoveryClientAutoConfiguration.java +++ b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/NacosDiscoveryClientAutoConfiguration.java @@ -18,6 +18,7 @@ package org.springframework.cloud.alibaba.nacos.discovery; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.alibaba.nacos.ConditionalOnNacosDiscoveryEnabled; import org.springframework.cloud.alibaba.nacos.NacosDiscoveryProperties; @@ -45,6 +46,7 @@ public class NacosDiscoveryClientAutoConfiguration { @Bean @ConditionalOnMissingBean + @ConditionalOnProperty(value = "spring.cloud.nacos.discovery.watch.enabled", matchIfMissing = true) public NacosWatch nacosWatch(NacosDiscoveryProperties nacosDiscoveryProperties) { return new NacosWatch(nacosDiscoveryProperties); } diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-alibaba-nacos-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 75e8abd4..54c3f79f 100644 --- a/spring-cloud-alibaba-nacos-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-cloud-alibaba-nacos-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -16,5 +16,11 @@ "type": "java.lang.Boolean", "defaultValue": "false", "description": "naming load from local cache at application start ." + }, + { + "name": "spring.cloud.nacos.discovery.watch.enabled", + "type": "java.lang.Boolean", + "defaultValue": "true", + "description": "enable nacos discovery watch or not ." } ]} diff --git a/spring-cloud-alibaba-nacos-discovery/src/test/java/org/springframework/cloud/alibaba/nacos/registry/NacosAutoServiceRegistrationTests.java b/spring-cloud-alibaba-nacos-discovery/src/test/java/org/springframework/cloud/alibaba/nacos/registry/NacosAutoServiceRegistrationTests.java index acd2cbb3..0ed50131 100644 --- a/spring-cloud-alibaba-nacos-discovery/src/test/java/org/springframework/cloud/alibaba/nacos/registry/NacosAutoServiceRegistrationTests.java +++ b/spring-cloud-alibaba-nacos-discovery/src/test/java/org/springframework/cloud/alibaba/nacos/registry/NacosAutoServiceRegistrationTests.java @@ -48,6 +48,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen "spring.application.name=myTestService1", "spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848", "spring.cloud.nacos.discovery.endpoint=test-endpoint", + "spring.cloud.nacos.discovery.endpoint-port=8081", "spring.cloud.nacos.discovery.namespace=test-namespace", "spring.cloud.nacos.discovery.log-name=test-logName", "spring.cloud.nacos.discovery.weight=2", @@ -83,6 +84,7 @@ public class NacosAutoServiceRegistrationTests { checkoutNacosDiscoveryServerAddr(); checkoutNacosDiscoveryEndpoint(); + checkoutNacosDiscoveryEndpointPort(); checkoutNacosDiscoveryNamespace(); checkoutNacosDiscoveryLogName(); checkoutNacosDiscoveryWeight(); @@ -119,6 +121,12 @@ public class NacosAutoServiceRegistrationTests { } + private void checkoutNacosDiscoveryEndpointPort() { + assertEquals("NacosDiscoveryProperties endpoint port was wrong", "8081", + properties.getEndpointPort()); + + } + private void checkoutNacosDiscoveryNamespace() { assertEquals("NacosDiscoveryProperties namespace was wrong", "test-namespace", properties.getNamespace()); diff --git a/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/bootstrap/AcmPropertySourceBuilder.java b/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/bootstrap/AcmPropertySourceBuilder.java index 8a547b41..b4a96a3e 100644 --- a/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/bootstrap/AcmPropertySourceBuilder.java +++ b/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/bootstrap/AcmPropertySourceBuilder.java @@ -18,7 +18,6 @@ package org.springframework.cloud.alicloud.acm.bootstrap; import com.alibaba.edas.acm.ConfigService; import com.alibaba.edas.acm.exception.ConfigException; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; diff --git a/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/endpoint/AcmHealthIndicator.java b/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/endpoint/AcmHealthIndicator.java index 3ae68d70..c6052ae1 100644 --- a/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/endpoint/AcmHealthIndicator.java +++ b/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/endpoint/AcmHealthIndicator.java @@ -17,7 +17,6 @@ package org.springframework.cloud.alicloud.acm.endpoint; import com.alibaba.edas.acm.ConfigService; - import org.springframework.boot.actuate.health.AbstractHealthIndicator; import org.springframework.boot.actuate.health.Health; import org.springframework.cloud.alicloud.acm.AcmPropertySourceRepository; From b061109d3d8a2e9a28956bda123cba09685de071 Mon Sep 17 00:00:00 2001 From: flystar32 Date: Thu, 28 Mar 2019 19:37:41 +0800 Subject: [PATCH 2/2] merge endpoint and endpoint configuration --- .../alibaba/nacos/NacosConfigProperties.java | 42 +++++++--------- .../nacos/NacosConfigurationTests.java | 8 ---- .../nacos/NacosDiscoveryProperties.java | 48 ++++++++----------- .../NacosAutoServiceRegistrationTests.java | 8 ---- 4 files changed, 35 insertions(+), 71 deletions(-) diff --git a/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/NacosConfigProperties.java b/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/NacosConfigProperties.java index eb57ad4e..01b95d5d 100644 --- a/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/NacosConfigProperties.java +++ b/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/NacosConfigProperties.java @@ -21,12 +21,8 @@ import com.alibaba.nacos.api.config.ConfigService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.core.env.Environment; -import javax.annotation.PostConstruct; -import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.Properties; @@ -91,12 +87,6 @@ public class NacosConfigProperties { */ private String endpoint; - /** - * endpoint port for Nacos, the domain port of a service, through which the server - * address can be dynamically obtained. - */ - private String endpointPort; - /** * namespace, separation configuration of different environments. */ @@ -272,14 +262,6 @@ public class NacosConfigProperties { this.name = name; } - public String getEndpointPort() { - return endpointPort; - } - - public void setEndpointPort(String endpointPort) { - this.endpointPort = endpointPort; - } - public static class Config { /** * the data id of extended configuration @@ -325,12 +307,11 @@ public class NacosConfigProperties { + ", encode='" + encode + '\'' + ", group='" + group + '\'' + ", prefix='" + prefix + '\'' + ", fileExtension='" + fileExtension + '\'' + ", timeout=" + timeout + ", endpoint='" + endpoint + '\'' - + ", endpointPort='" + endpointPort + '\'' + ", namespace='" + namespace - + '\'' + ", accessKey='" + accessKey + '\'' + ", secretKey='" + secretKey - + '\'' + ", contextPath='" + contextPath + '\'' + ", clusterName='" - + clusterName + '\'' + ", name='" + name + '\'' + ", sharedDataids='" - + sharedDataids + '\'' + ", refreshableDataids='" + refreshableDataids - + '\'' + ", extConfig=" + extConfig + '}'; + + ", namespace='" + namespace + '\'' + ", accessKey='" + accessKey + '\'' + + ", secretKey='" + secretKey + '\'' + ", contextPath='" + contextPath + + '\'' + ", clusterName='" + clusterName + '\'' + ", name='" + name + '\'' + + ", sharedDataids='" + sharedDataids + '\'' + ", refreshableDataids='" + + refreshableDataids + '\'' + ", extConfig=" + extConfig + '}'; } public ConfigService configServiceInstance() { @@ -347,8 +328,17 @@ public class NacosConfigProperties { properties.put(SECRET_KEY, Objects.toString(this.secretKey, "")); properties.put(CONTEXT_PATH, Objects.toString(this.contextPath, "")); properties.put(CLUSTER_NAME, Objects.toString(this.clusterName, "")); - properties.put(ENDPOINT, Objects.toString(this.endpoint, "")); - properties.put(ENDPOINT_PORT, Objects.toString(this.endpointPort, "")); + + String endpoint = Objects.toString(this.endpoint, ""); + if (endpoint.contains(":")) { + int index = endpoint.indexOf(":"); + properties.put(ENDPOINT, endpoint.substring(0, index)); + properties.put(ENDPOINT_PORT, endpoint.substring(index + 1)); + } + else { + properties.put(ENDPOINT, endpoint); + } + try { configService = NacosFactory.createConfigService(properties); return configService; diff --git a/spring-cloud-alibaba-nacos-config/src/test/java/org/springframework/cloud/alibaba/nacos/NacosConfigurationTests.java b/spring-cloud-alibaba-nacos-config/src/test/java/org/springframework/cloud/alibaba/nacos/NacosConfigurationTests.java index 1cc122aa..fc2a3b12 100644 --- a/spring-cloud-alibaba-nacos-config/src/test/java/org/springframework/cloud/alibaba/nacos/NacosConfigurationTests.java +++ b/spring-cloud-alibaba-nacos-config/src/test/java/org/springframework/cloud/alibaba/nacos/NacosConfigurationTests.java @@ -60,7 +60,6 @@ import org.springframework.test.context.junit4.SpringRunner; "spring.application.name=myTestService1", "spring.profiles.active=dev,test", "spring.cloud.nacos.config.server-addr=127.0.0.1:8848", "spring.cloud.nacos.config.endpoint=test-endpoint", - "spring.cloud.nacos.config.endpoint-port=8081", "spring.cloud.nacos.config.namespace=test-namespace", "spring.cloud.nacos.config.encode=utf-8", "spring.cloud.nacos.config.timeout=1000", @@ -154,7 +153,6 @@ public class NacosConfigurationTests { checkoutNacosConfigServerAddr(); checkoutNacosConfigEndpoint(); - checkoutNacosConfigEndpointPort(); checkoutNacosConfigNamespace(); checkoutNacosConfigClusterName(); checkoutNacosConfigAccessKey(); @@ -183,12 +181,6 @@ public class NacosConfigurationTests { } - private void checkoutNacosConfigEndpointPort() { - assertEquals("NacosConfigProperties endpoint port is wrong", "8081", - properties.getEndpointPort()); - - } - private void checkoutNacosConfigNamespace() { assertEquals("NacosConfigProperties namespace is wrong", "test-namespace", properties.getNamespace()); diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java index cce0a7fc..05ec95c3 100644 --- a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java +++ b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java @@ -59,12 +59,6 @@ public class NacosDiscoveryProperties { */ private String endpoint; - /** - * the domain port of a service, through which the server address can be dynamically - * obtained. - */ - private String endpointPort; - /** * namespace, separation registry of different environments. */ @@ -341,26 +335,18 @@ public class NacosDiscoveryProperties { this.watchDelay = watchDelay; } - public String getEndpointPort() { - return endpointPort; - } - - public void setEndpointPort(String endpointPort) { - this.endpointPort = endpointPort; - } - @Override public String toString() { return "NacosDiscoveryProperties{" + "serverAddr='" + serverAddr + '\'' - + ", endpoint='" + endpoint + '\'' + ", endpointPort='" + endpointPort - + '\'' + ", namespace='" + namespace + '\'' + ", watchDelay=" + watchDelay - + ", logName='" + logName + '\'' + ", service='" + service + '\'' - + ", weight=" + weight + ", clusterName='" + clusterName + '\'' - + ", namingLoadCacheAtStart='" + namingLoadCacheAtStart + '\'' - + ", metadata=" + metadata + ", registerEnabled=" + registerEnabled - + ", ip='" + ip + '\'' + ", networkInterface='" + networkInterface + '\'' - + ", port=" + port + ", secure=" + secure + ", accessKey='" + accessKey - + '\'' + ", secretKey='" + secretKey + '\'' + '}'; + + ", endpoint='" + endpoint + '\'' + ", namespace='" + namespace + '\'' + + ", watchDelay=" + watchDelay + ", logName='" + logName + '\'' + + ", service='" + service + '\'' + ", weight=" + weight + + ", clusterName='" + clusterName + '\'' + ", namingLoadCacheAtStart='" + + namingLoadCacheAtStart + '\'' + ", metadata=" + metadata + + ", registerEnabled=" + registerEnabled + ", ip='" + ip + '\'' + + ", networkInterface='" + networkInterface + '\'' + ", port=" + port + + ", secure=" + secure + ", accessKey='" + accessKey + '\'' + + ", secretKey='" + secretKey + '\'' + '}'; } public void overrideFromEnv(Environment env) { @@ -393,10 +379,6 @@ public class NacosDiscoveryProperties { this.setEndpoint( env.resolvePlaceholders("${spring.cloud.nacos.discovery.endpoint:}")); } - if (StringUtils.isEmpty(this.getEndpointPort())) { - this.setEndpointPort(env.resolvePlaceholders( - "${spring.cloud.nacos.discovery.endpoint-port:}")); - } } public NamingService namingServiceInstance() { @@ -409,8 +391,16 @@ public class NacosDiscoveryProperties { properties.put(SERVER_ADDR, serverAddr); properties.put(NAMESPACE, namespace); properties.put(UtilAndComs.NACOS_NAMING_LOG_NAME, logName); - properties.put(ENDPOINT, endpoint); - properties.put(ENDPOINT_PORT, endpointPort); + + if (endpoint.contains(":")) { + int index = endpoint.indexOf(":"); + properties.put(ENDPOINT, endpoint.substring(0, index)); + properties.put(ENDPOINT_PORT, endpoint.substring(index + 1)); + } + else { + properties.put(ENDPOINT, endpoint); + } + properties.put(ACCESS_KEY, accessKey); properties.put(SECRET_KEY, secretKey); properties.put(CLUSTER_NAME, clusterName); diff --git a/spring-cloud-alibaba-nacos-discovery/src/test/java/org/springframework/cloud/alibaba/nacos/registry/NacosAutoServiceRegistrationTests.java b/spring-cloud-alibaba-nacos-discovery/src/test/java/org/springframework/cloud/alibaba/nacos/registry/NacosAutoServiceRegistrationTests.java index 0ed50131..acd2cbb3 100644 --- a/spring-cloud-alibaba-nacos-discovery/src/test/java/org/springframework/cloud/alibaba/nacos/registry/NacosAutoServiceRegistrationTests.java +++ b/spring-cloud-alibaba-nacos-discovery/src/test/java/org/springframework/cloud/alibaba/nacos/registry/NacosAutoServiceRegistrationTests.java @@ -48,7 +48,6 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen "spring.application.name=myTestService1", "spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848", "spring.cloud.nacos.discovery.endpoint=test-endpoint", - "spring.cloud.nacos.discovery.endpoint-port=8081", "spring.cloud.nacos.discovery.namespace=test-namespace", "spring.cloud.nacos.discovery.log-name=test-logName", "spring.cloud.nacos.discovery.weight=2", @@ -84,7 +83,6 @@ public class NacosAutoServiceRegistrationTests { checkoutNacosDiscoveryServerAddr(); checkoutNacosDiscoveryEndpoint(); - checkoutNacosDiscoveryEndpointPort(); checkoutNacosDiscoveryNamespace(); checkoutNacosDiscoveryLogName(); checkoutNacosDiscoveryWeight(); @@ -121,12 +119,6 @@ public class NacosAutoServiceRegistrationTests { } - private void checkoutNacosDiscoveryEndpointPort() { - assertEquals("NacosDiscoveryProperties endpoint port was wrong", "8081", - properties.getEndpointPort()); - - } - private void checkoutNacosDiscoveryNamespace() { assertEquals("NacosDiscoveryProperties namespace was wrong", "test-namespace", properties.getNamespace());