diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml
index 650e46e7..4e7e7249 100644
--- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml
+++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml
@@ -23,6 +23,11 @@
spring-cloud-starter-alibaba-sentinel
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-sentinel-datasource
+
+
org.springframework.boot
spring-boot-starter-web
@@ -36,10 +41,10 @@
spring-boot-starter-thymeleaf
-
-
-
-
+
+ com.alibaba.csp
+ sentinel-datasource-nacos
+
diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/resources/application.properties b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/resources/application.properties
index 959076d2..e9c08593 100644
--- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/resources/application.properties
+++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/resources/application.properties
@@ -15,6 +15,13 @@ spring.cloud.sentinel.web-context-unify=true
#spring.cloud.sentinel.filter.enabled=false
#spring.cloud.sentinel.http-method-specify=false
+#spring.cloud.sentinel.datasource.ds6.nacos.server-addr=127.0.0.1:8848
+#spring.cloud.sentinel.datasource.ds6.nacos.username=nacos
+#spring.cloud.sentinel.datasource.ds6.nacos.password=nacos
+#spring.cloud.sentinel.datasource.ds6.nacos.dataId=flowrule.json
+#spring.cloud.sentinel.datasource.ds6.nacos.data-type=json
+#spring.cloud.sentinel.datasource.ds6.nacos.rule-type=flow
+
spring.cloud.sentinel.datasource.ds1.file.file=classpath: flowrule.json
spring.cloud.sentinel.datasource.ds1.file.data-type=json
spring.cloud.sentinel.datasource.ds1.file.rule-type=flow
diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml
index 690d2031..c6c66a83 100644
--- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml
+++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml
@@ -20,9 +20,10 @@
org.springframework.boot
spring-boot-starter-actuator
+
- org.springframework.boot
- spring-boot-starter-web
+ org.springframework.cloud
+ spring-cloud-starter-gateway
@@ -33,10 +34,6 @@
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
-
- io.projectreactor
- reactor-core
-
org.springframework.boot
diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml
index ce9ac30f..22642a71 100644
--- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml
+++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml
@@ -6,11 +6,13 @@ spring:
username: nacos
password: nacos
discovery:
- server-addr: localhost:8848
+ server-addr: 127.0.0.1:8848
+ group: test
gateway:
discovery:
locator:
enabled: true
+
application:
name: node-service
sidecar:
@@ -18,6 +20,7 @@ sidecar:
ip: 127.0.0.1
# 异构微服务的端口
port: 8060
+
# 异构微服务的健康检查URL
#health-check-url: http://localhost:8060/health.json
management:
diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/NacosDataSourceProperties.java b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/NacosDataSourceProperties.java
index e0aa9e74..08790ac4 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/NacosDataSourceProperties.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/NacosDataSourceProperties.java
@@ -32,6 +32,10 @@ public class NacosDataSourceProperties extends AbstractDataSourceProperties {
private String serverAddr;
+ private String username;
+
+ private String password;
+
@NotEmpty
private String groupId = "DEFAULT_GROUP";
@@ -67,6 +71,22 @@ public class NacosDataSourceProperties extends AbstractDataSourceProperties {
this.serverAddr = serverAddr;
}
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
public String getGroupId() {
return groupId;
}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/factorybean/NacosDataSourceFactoryBean.java b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/factorybean/NacosDataSourceFactoryBean.java
index f94c5fc6..a0eda74e 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/factorybean/NacosDataSourceFactoryBean.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/factorybean/NacosDataSourceFactoryBean.java
@@ -35,6 +35,10 @@ public class NacosDataSourceFactoryBean implements FactoryBean
private String serverAddr;
+ private String username;
+
+ private String password;
+
private String groupId;
private String dataId;
@@ -63,6 +67,8 @@ public class NacosDataSourceFactoryBean implements FactoryBean
if (!StringUtils.isEmpty(this.namespace)) {
properties.setProperty(PropertyKeyConst.NAMESPACE, this.namespace);
}
+ properties.setProperty(PropertyKeyConst.USERNAME, this.username);
+ properties.setProperty(PropertyKeyConst.PASSWORD, this.password);
return new NacosDataSource(properties, groupId, dataId, converter);
}
@@ -79,6 +85,22 @@ public class NacosDataSourceFactoryBean implements FactoryBean
this.serverAddr = serverAddr;
}
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
public String getGroupId() {
return groupId;
}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/parser/NacosDataPropertiesParser.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/parser/NacosDataPropertiesParser.java
index 315caccb..6dec190e 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/parser/NacosDataPropertiesParser.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/parser/NacosDataPropertiesParser.java
@@ -55,7 +55,9 @@ public class NacosDataPropertiesParser extends AbstractNacosDataParser {
log.warn("the config data is invalid {}", dataLine);
continue;
}
- result.put(dataLine.substring(0, index), dataLine.substring(index + 1));
+ String key = dataLine.substring(0, index);
+ String value = dataLine.substring(index + 1);
+ result.put(key.trim(), value.trim());
}
}
return result;
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosDiscoveryProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosDiscoveryProperties.java
index 5b283c9a..afdad4f3 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosDiscoveryProperties.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosDiscoveryProperties.java
@@ -64,8 +64,8 @@ import static com.alibaba.nacos.api.PropertyKeyConst.USERNAME;
* @author xiaojing
* @author Mercy
* @author lyuzb
+ * @author eshun
*/
-
@ConfigurationProperties("spring.cloud.nacos.discovery")
public class NacosDiscoveryProperties {
@@ -211,6 +211,7 @@ public class NacosDiscoveryProperties {
@PostConstruct
public void init() throws SocketException {
+ namingService = null;
metadata.put(PreservedMetadataKeys.REGISTER_SOURCE, "SPRING_CLOUD");
if (secure) {
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosServiceRegistry.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosServiceRegistry.java
index b0974a55..a332038f 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosServiceRegistry.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosServiceRegistry.java
@@ -33,6 +33,7 @@ import static org.springframework.util.ReflectionUtils.rethrowRuntimeException;
/**
* @author xiaojing
* @author Mercy
+ * @author eshun
*/
public class NacosServiceRegistry implements ServiceRegistry {
@@ -40,11 +41,8 @@ public class NacosServiceRegistry implements ServiceRegistry {
private final NacosDiscoveryProperties nacosDiscoveryProperties;
- private final NamingService namingService;
-
public NacosServiceRegistry(NacosDiscoveryProperties nacosDiscoveryProperties) {
this.nacosDiscoveryProperties = nacosDiscoveryProperties;
- this.namingService = nacosDiscoveryProperties.namingServiceInstance();
}
@Override
@@ -55,6 +53,7 @@ public class NacosServiceRegistry implements ServiceRegistry {
return;
}
+ NamingService namingService = namingService();
String serviceId = registration.getServiceId();
String group = nacosDiscoveryProperties.getGroup();
@@ -84,7 +83,7 @@ public class NacosServiceRegistry implements ServiceRegistry {
return;
}
- NamingService namingService = nacosDiscoveryProperties.namingServiceInstance();
+ NamingService namingService = namingService();
String serviceId = registration.getServiceId();
String group = nacosDiscoveryProperties.getGroup();
@@ -165,4 +164,8 @@ public class NacosServiceRegistry implements ServiceRegistry {
return instance;
}
+ private NamingService namingService() {
+ return nacosDiscoveryProperties.namingServiceInstance();
+ }
+
}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarAutoConfiguration.java
index da4bd851..cf5e7982 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarAutoConfiguration.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarAutoConfiguration.java
@@ -18,7 +18,6 @@ package com.alibaba.cloud.sidecar;
import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;
@@ -28,7 +27,6 @@ import org.springframework.web.client.RestTemplate;
* @author www.itmuch.com
*/
@Configuration(proxyBeanMethods = false)
-@EnableConfigurationProperties(SidecarProperties.class)
public class SidecarAutoConfiguration {
@Bean
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java
index 1ba5a381..06448562 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java
@@ -17,12 +17,15 @@
package com.alibaba.cloud.sidecar.nacos;
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
+import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration;
import com.alibaba.cloud.sidecar.SidecarAutoConfiguration;
import com.alibaba.cloud.sidecar.SidecarDiscoveryClient;
+import com.alibaba.cloud.sidecar.SidecarProperties;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -30,15 +33,24 @@ import org.springframework.context.annotation.Configuration;
* @author www.itmuch.com
*/
@Configuration(proxyBeanMethods = false)
-@AutoConfigureBefore(SidecarAutoConfiguration.class)
-@ConditionalOnBean(NacosDiscoveryProperties.class)
+@AutoConfigureBefore({ NacosDiscoveryAutoConfiguration.class,
+ SidecarAutoConfiguration.class })
+@ConditionalOnClass(NacosDiscoveryProperties.class)
+@EnableConfigurationProperties(SidecarProperties.class)
public class SidecarNacosAutoConfiguration {
+ @Bean
+ @ConditionalOnMissingBean
+ public SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties(
+ SidecarProperties sidecarProperties) {
+ return new SidecarNacosDiscoveryProperties(sidecarProperties);
+ }
+
@Bean
@ConditionalOnMissingBean
public SidecarDiscoveryClient sidecarDiscoveryClient(
- NacosDiscoveryProperties nacosDiscoveryProperties) {
- return new SidecarNacosDiscoveryClient(nacosDiscoveryProperties);
+ SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties) {
+ return new SidecarNacosDiscoveryClient(sidecarNacosDiscoveryProperties);
}
}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java
index 92bc65eb..76d4e280 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java
@@ -16,7 +16,6 @@
package com.alibaba.cloud.sidecar.nacos;
-import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.sidecar.SidecarDiscoveryClient;
import com.alibaba.nacos.api.exception.NacosException;
import org.slf4j.Logger;
@@ -30,18 +29,19 @@ public class SidecarNacosDiscoveryClient implements SidecarDiscoveryClient {
private static final Logger log = LoggerFactory
.getLogger(SidecarNacosDiscoveryClient.class);
- private final NacosDiscoveryProperties nacosDiscoveryProperties;
+ private final SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties;
public SidecarNacosDiscoveryClient(
- NacosDiscoveryProperties nacosDiscoveryProperties) {
- this.nacosDiscoveryProperties = nacosDiscoveryProperties;
+ SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties) {
+ this.sidecarNacosDiscoveryProperties = sidecarNacosDiscoveryProperties;
}
@Override
public void registerInstance(String applicationName, String ip, Integer port) {
try {
- this.nacosDiscoveryProperties.namingServiceInstance().registerInstance(
- applicationName, nacosDiscoveryProperties.getGroup(), ip, port);
+ this.sidecarNacosDiscoveryProperties.namingServiceInstance().registerInstance(
+ applicationName, sidecarNacosDiscoveryProperties.getGroup(), ip,
+ port);
}
catch (NacosException e) {
log.warn("nacos exception happens", e);
@@ -51,8 +51,9 @@ public class SidecarNacosDiscoveryClient implements SidecarDiscoveryClient {
@Override
public void deregisterInstance(String applicationName, String ip, Integer port) {
try {
- this.nacosDiscoveryProperties.namingServiceInstance().deregisterInstance(
- applicationName, nacosDiscoveryProperties.getGroup(), ip, port);
+ this.sidecarNacosDiscoveryProperties.namingServiceInstance()
+ .deregisterInstance(applicationName,
+ sidecarNacosDiscoveryProperties.getGroup(), ip, port);
}
catch (NacosException e) {
log.warn("nacos exception happens", e);
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryProperties.java
new file mode 100644
index 00000000..705c0d77
--- /dev/null
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryProperties.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2013-2018 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.cloud.sidecar.nacos;
+
+import java.net.SocketException;
+
+import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
+import com.alibaba.cloud.sidecar.SidecarProperties;
+
+import org.springframework.util.StringUtils;
+
+/**
+ * @author yuhuangbin
+ */
+public class SidecarNacosDiscoveryProperties extends NacosDiscoveryProperties {
+
+ SidecarProperties sidecarProperties;
+
+ public SidecarNacosDiscoveryProperties(SidecarProperties sidecarProperties) {
+ this.sidecarProperties = sidecarProperties;
+ }
+
+ @Override
+ public void init() throws SocketException {
+ super.init();
+
+ String ip = sidecarProperties.getIp();
+ if (!StringUtils.isEmpty(ip)) {
+ this.setIp(ip);
+ }
+
+ Integer port = sidecarProperties.getPort();
+ this.setPort(port);
+ }
+
+}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/DubboProtocolConfigSupplier.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/DubboProtocolConfigSupplier.java
index 1dfb8e73..775d360c 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/DubboProtocolConfigSupplier.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/DubboProtocolConfigSupplier.java
@@ -65,7 +65,6 @@ public class DubboProtocolConfigSupplier implements Supplier {
if (protocolConfig == null) {
protocolConfig = new ProtocolConfig();
protocolConfig.setName(DEFAULT_PROTOCOL);
- protocolConfig.setPort(-1);
}
return protocolConfig;
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/SpringCloudRegistryFactory.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/SpringCloudRegistryFactory.java
index be13cb91..975b076f 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/SpringCloudRegistryFactory.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/SpringCloudRegistryFactory.java
@@ -23,6 +23,7 @@ import com.alibaba.cloud.dubbo.util.JSONUtils;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.registry.Registry;
import org.apache.dubbo.registry.RegistryFactory;
+import org.apache.dubbo.registry.support.AbstractRegistryFactory;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.context.ConfigurableApplicationContext;
@@ -37,7 +38,7 @@ import static java.lang.System.getProperty;
* @see RegistryFactory
* @see SpringCloudRegistry
*/
-public class SpringCloudRegistryFactory implements RegistryFactory {
+public class SpringCloudRegistryFactory extends AbstractRegistryFactory {
/**
* Spring Cloud Protocol.
@@ -65,8 +66,6 @@ public class SpringCloudRegistryFactory implements RegistryFactory {
private DubboGenericServiceFactory dubboGenericServiceFactory;
- private volatile boolean initialized = false;
-
public SpringCloudRegistryFactory() {
}
@@ -76,9 +75,6 @@ public class SpringCloudRegistryFactory implements RegistryFactory {
}
protected void init() {
- if (initialized || applicationContext == null) {
- return;
- }
this.discoveryClient = applicationContext.getBean(DiscoveryClient.class);
this.dubboServiceMetadataRepository = applicationContext
.getBean(DubboServiceMetadataRepository.class);
@@ -90,7 +86,7 @@ public class SpringCloudRegistryFactory implements RegistryFactory {
}
@Override
- public Registry getRegistry(URL url) {
+ public Registry createRegistry(URL url) {
init();
return new SpringCloudRegistry(url, discoveryClient,
dubboServiceMetadataRepository, dubboMetadataConfigServiceProxy,