You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2023/06/22 06:35:47 UTC

[dubbo] branch 3.3 updated: Service not register to registry if specify register=false (#12584)

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

albumenj pushed a commit to branch 3.3
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.3 by this push:
     new cf2a63580e Service not register to registry if specify register=false (#12584)
cf2a63580e is described below

commit cf2a63580e1719f4c8a17f7d235ad0cd938bfc5e
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Thu Jun 22 14:35:41 2023 +0800

    Service not register to registry if specify register=false (#12584)
---
 .../src/main/java/org/apache/dubbo/config/ServiceConfig.java        | 6 +++++-
 .../java/org/apache/dubbo/config/utils/ConfigValidationUtils.java   | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
index e3d3028a44..bf73508dd5 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
@@ -512,7 +512,8 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
         providerModel.setDestroyRunner(getDestroyRunner());
         repository.registerProvider(providerModel);
 
-        List<URL> registryURLs = ConfigValidationUtils.loadRegistries(this, true);
+        List<URL> registryURLs = !Boolean.FALSE.equals(isRegister()) ?
+            ConfigValidationUtils.loadRegistries(this, true) : Collections.emptyList();
 
         MetricsEventBus.post(RegistryEvent.toRsEvent(module.getApplicationModel(), getUniqueServiceName(), protocols.size() * registryURLs.size()),
             () -> {
@@ -546,6 +547,9 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
 
         processServiceExecutor(url);
 
+        if (CollectionUtils.isEmpty(registryURLs)) {
+            registerType = RegisterTypeEnum.NEVER_REGISTER;
+        }
         exportUrl(url, registryURLs, registerType);
     }
 
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ConfigValidationUtils.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ConfigValidationUtils.java
index 4e9c20d415..7b28528bfb 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ConfigValidationUtils.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ConfigValidationUtils.java
@@ -124,6 +124,7 @@ import static org.apache.dubbo.config.Constants.LAYER_KEY;
 import static org.apache.dubbo.config.Constants.NAME;
 import static org.apache.dubbo.config.Constants.ORGANIZATION;
 import static org.apache.dubbo.config.Constants.OWNER;
+import static org.apache.dubbo.config.Constants.REGISTER_KEY;
 import static org.apache.dubbo.config.Constants.STATUS_KEY;
 import static org.apache.dubbo.monitor.Constants.LOGSTAT_PROTOCOL;
 import static org.apache.dubbo.registry.Constants.REGISTER_IP_KEY;
@@ -225,7 +226,10 @@ public class ConfigValidationUtils {
                             .setScopeModel(interfaceConfig.getScopeModel())
                             .build();
                         // provider delay register state will be checked in RegistryProtocol#export
-                        if (provider || url.getParameter(SUBSCRIBE_KEY, true)) {
+                        if (provider && url.getParameter(REGISTER_KEY, true)) {
+                            registryList.add(url);
+                        }
+                        if (!provider && url.getParameter(SUBSCRIBE_KEY, true)) {
                             registryList.add(url);
                         }
                     }