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

kylixs pushed a commit to branch 3.0-multi-instances
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.0-multi-instances by this 
push:
     new 2bf74de  Fix scope model of reference/service model
2bf74de is described below

commit 2bf74de019a23e5ea5aa9a8b9141742b3668c754
Author: gongdewei <[email protected]>
AuthorDate: Tue Aug 31 11:47:29 2021 +0800

    Fix scope model of reference/service model
---
 .../org/apache/dubbo/config/AbstractMethodConfig.java     | 15 +++++++++++++++
 .../java/org/apache/dubbo/rpc/model/ConsumerModel.java    |  2 +-
 .../java/org/apache/dubbo/rpc/model/ProviderModel.java    |  2 +-
 .../org/apache/dubbo/rpc/model/ServiceRepository.java     |  4 ++--
 .../java/org/apache/dubbo/config/ReferenceConfig.java     | 15 ---------------
 .../main/java/org/apache/dubbo/config/ServiceConfig.java  | 15 ---------------
 6 files changed, 19 insertions(+), 34 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java 
b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java
index 31c7abe..b234d98 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java
@@ -18,6 +18,8 @@ package org.apache.dubbo.config;
 
 import org.apache.dubbo.config.support.Parameter;
 import org.apache.dubbo.rpc.model.ApplicationModel;
+import org.apache.dubbo.rpc.model.ModuleModel;
+import org.apache.dubbo.rpc.model.ScopeModel;
 
 import java.util.Map;
 
@@ -100,6 +102,19 @@ public abstract class AbstractMethodConfig extends 
AbstractConfig {
         super(ApplicationModel.defaultModel().getDefaultModule());
     }
 
+    @Override
+    public void setScopeModel(ScopeModel scopeModel) {
+        if (!(scopeModel instanceof ModuleModel)) {
+            throw new IllegalArgumentException("Invalid scope model, expect to 
be a ModuleModel but got: " + scopeModel);
+        }
+        super.setScopeModel(scopeModel);
+    }
+
+    @Override
+    public ModuleModel getScopeModel() {
+        return (ModuleModel) scopeModel;
+    }
+
     public Integer getForks() {
         return forks;
     }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ConsumerModel.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ConsumerModel.java
index 3158250..701a228 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ConsumerModel.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ConsumerModel.java
@@ -52,7 +52,7 @@ public class ConsumerModel extends ServiceModel {
                          ReferenceConfigBase<?> referenceConfig,
                          Map<String, AsyncMethodInfo> methodConfigs) {
 
-        super(proxyObject, serviceKey, serviceModel, 
ApplicationModel.defaultModel().getDefaultModule(), referenceConfig);
+        super(proxyObject, serviceKey, serviceModel, 
referenceConfig.getScopeModel(), referenceConfig);
         Assert.notEmptyString(serviceKey, "Service name can't be null or 
blank");
 
         this.methodConfigs = methodConfigs == null ? new HashMap<>() : 
methodConfigs;
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java
index 2c506eb..9b0d25b 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java
@@ -38,7 +38,7 @@ public class ProviderModel extends ServiceModel {
                          Object serviceInstance,
                          ServiceDescriptor serviceModel,
                          ServiceConfigBase<?> serviceConfig) {
-        super(serviceInstance, serviceKey, serviceModel, 
ApplicationModel.defaultModel().getDefaultModule(), serviceConfig);
+        super(serviceInstance, serviceKey, serviceModel, 
serviceConfig.getScopeModel(), serviceConfig);
         if (null == serviceInstance) {
             throw new IllegalArgumentException("Service[" + serviceKey + 
"]Target is NULL.");
         }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceRepository.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceRepository.java
index 9b93c7b..8d605f8 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceRepository.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceRepository.java
@@ -111,7 +111,7 @@ public class ServiceRepository extends LifecycleAdapter 
implements FrameworkExt,
                                  Object proxy,
                                  ServiceMetadata serviceMetadata) {
         ConsumerModel consumerModel = new 
ConsumerModel(serviceMetadata.getServiceKey(), proxy, serviceDescriptor, rc,
-            serviceMetadata, 
ApplicationModel.defaultModel().getDefaultModule(), null);
+            serviceMetadata, rc.getScopeModel(), null);
         consumers.putIfAbsent(serviceKey, consumerModel);
     }
 
@@ -132,7 +132,7 @@ public class ServiceRepository extends LifecycleAdapter 
implements FrameworkExt,
                                  ServiceDescriptor serviceModel,
                                  ServiceConfigBase<?> serviceConfig,
                                  ServiceMetadata serviceMetadata) {
-        ProviderModel providerModel = new ProviderModel(serviceKey, 
serviceInstance, serviceModel, 
ApplicationModel.defaultModel().getDefaultModule(),
+        ProviderModel providerModel = new ProviderModel(serviceKey, 
serviceInstance, serviceModel, serviceConfig.getScopeModel(),
             serviceConfig, serviceMetadata);
         providers.putIfAbsent(serviceKey, providerModel);
         providersWithoutGroup.putIfAbsent(keyWithoutGroup(serviceKey), 
providerModel);
diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
index 01e89af..9359e38 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
@@ -40,11 +40,8 @@ import org.apache.dubbo.rpc.cluster.Cluster;
 import org.apache.dubbo.rpc.cluster.directory.StaticDirectory;
 import org.apache.dubbo.rpc.cluster.support.ClusterUtils;
 import org.apache.dubbo.rpc.cluster.support.registry.ZoneAwareCluster;
-import org.apache.dubbo.rpc.model.ApplicationModel;
 import org.apache.dubbo.rpc.model.AsyncMethodInfo;
 import org.apache.dubbo.rpc.model.ConsumerModel;
-import org.apache.dubbo.rpc.model.ModuleModel;
-import org.apache.dubbo.rpc.model.ScopeModel;
 import org.apache.dubbo.rpc.model.ServiceDescriptor;
 import org.apache.dubbo.rpc.model.ServiceRepository;
 import org.apache.dubbo.rpc.protocol.injvm.InjvmProtocol;
@@ -282,18 +279,6 @@ public class ReferenceConfig<T> extends 
ReferenceConfigBase<T> {
         checkInvokerAvailable();
     }
 
-    @Override
-    public ModuleModel getScopeModel() {
-        ScopeModel scopeModel = super.getScopeModel();
-        if (scopeModel instanceof ApplicationModel) {
-            return ((ApplicationModel) scopeModel).getDefaultModule();
-        } else if (scopeModel instanceof ModuleModel) {
-            return (ModuleModel) scopeModel;
-        } else {
-            throw new IllegalStateException("scope model is invalid: " + 
scopeModel);
-        }
-    }
-
     /**
      * convert and aggregate async method info
      *
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 e287452..0d7cc3c 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
@@ -43,10 +43,7 @@ import org.apache.dubbo.rpc.Invoker;
 import org.apache.dubbo.rpc.Protocol;
 import org.apache.dubbo.rpc.ProxyFactory;
 import org.apache.dubbo.rpc.cluster.ConfiguratorFactory;
-import org.apache.dubbo.rpc.model.ApplicationModel;
-import org.apache.dubbo.rpc.model.ModuleModel;
 import org.apache.dubbo.rpc.model.ProviderModel;
-import org.apache.dubbo.rpc.model.ScopeModel;
 import org.apache.dubbo.rpc.model.ServiceDescriptor;
 import org.apache.dubbo.rpc.model.ServiceRepository;
 import org.apache.dubbo.rpc.service.GenericService;
@@ -382,18 +379,6 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> 
{
         }
     }
 
-    @Override
-    public ModuleModel getScopeModel() {
-        ScopeModel scopeModel = super.getScopeModel();
-        if (scopeModel instanceof ApplicationModel) {
-            return ((ApplicationModel) scopeModel).getDefaultModule();
-        } else if (scopeModel instanceof ModuleModel) {
-            return (ModuleModel) scopeModel;
-        } else {
-            throw new IllegalStateException("scope model is invalid: " + 
scopeModel);
-        }
-    }
-
     private void doExportUrlsFor1Protocol(ProtocolConfig protocolConfig, 
List<URL> registryURLs) {
         Map<String, String> map = buildAttributes(protocolConfig);
 

Reply via email to