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

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


The following commit(s) were added to refs/heads/3.0 by this push:
     new 1aa75d9  Simplify some code (#9074)
1aa75d9 is described below

commit 1aa75d90abc66f085f5432be84980999c319259a
Author: huazhongming <[email protected]>
AuthorDate: Wed Oct 20 19:07:04 2021 +0800

    Simplify some code (#9074)
    
    * simplify the code
    
    * simplify the code
---
 .../java/org/apache/dubbo/common/utils/Assert.java | 11 ++++-
 .../config/context/AbstractConfigManager.java      | 10 +++--
 .../apache/dubbo/config/context/ConfigManager.java |  4 +-
 .../dubbo/config/context/ModuleConfigManager.java  |  2 +
 .../apache/dubbo/rpc/model/MethodDescriptor.java   | 47 +++++++++++++++++++---
 .../org/apache/dubbo/rpc/model/ModuleModel.java    | 22 ++--------
 .../dubbo/rpc/model/ModuleServiceRepository.java   | 18 ++++++---
 .../org/apache/dubbo/rpc/model/ProviderModel.java  |  8 +---
 .../org/apache/dubbo/rpc/model/ScopeModel.java     |  3 +-
 .../model/ScopeModelAwareExtensionProcessor.java   |  4 ++
 .../org/apache/dubbo/rpc/model/ScopeModelUtil.java |  8 ++--
 .../apache/dubbo/rpc/model/ServiceMetadata.java    | 13 ++++--
 12 files changed, 99 insertions(+), 51 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/Assert.java 
b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/Assert.java
index 4169983..42c7166 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/Assert.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/Assert.java
@@ -28,15 +28,22 @@ public abstract class Assert {
         }
     }
 
-    public static void notEmptyString(String str,String message) {
-        if(StringUtils.isEmpty(str)) {
+    public static void notEmptyString(String str, String message) {
+        if (StringUtils.isEmpty(str)) {
             throw new IllegalArgumentException(message);
         }
     }
+
     public static void notNull(Object obj, RuntimeException exception) {
         if (obj == null) {
             throw exception;
         }
     }
 
+    public static void assertTrue(boolean condition, String message) {
+        if (!condition) {
+            throw new IllegalArgumentException(message);
+        }
+    }
+
 }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/config/context/AbstractConfigManager.java
 
b/dubbo-common/src/main/java/org/apache/dubbo/config/context/AbstractConfigManager.java
index 33a5150..01f11af 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/config/context/AbstractConfigManager.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/config/context/AbstractConfigManager.java
@@ -79,7 +79,7 @@ public abstract class AbstractConfigManager extends 
LifecycleAdapter {
     private final Collection<Class<? extends AbstractConfig>> 
supportedConfigTypes;
     private final Environment environment;
     private ConfigValidator configValidator;
-    private AtomicBoolean inited = new AtomicBoolean(false);
+    private final AtomicBoolean initialized = new AtomicBoolean(false);
     protected ConfigMode configMode = ConfigMode.STRICT;
     protected boolean ignoreDuplicatedInterface = false;
 
@@ -105,7 +105,7 @@ public abstract class AbstractConfigManager extends 
LifecycleAdapter {
 
     @Override
     public void initialize() throws IllegalStateException {
-        if (!inited.compareAndSet(false, true)) {
+        if (!initialized.compareAndSet(false, true)) {
             return;
         }
         CompositeConfiguration configuration = 
scopeModel.getModelEnvironment().getConfiguration();
@@ -419,7 +419,7 @@ public abstract class AbstractConfigManager extends 
LifecycleAdapter {
         // exclude isDefault() == false
     }
 
-    protected  <C extends AbstractConfig> Optional<C> 
checkUniqueConfig(Map<String, C> configsMap, C config) {
+    protected <C extends AbstractConfig> Optional<C> 
checkUniqueConfig(Map<String, C> configsMap, C config) {
         if (configsMap.size() > 0 && isUniqueConfig(config)) {
             C oldOne = configsMap.values().iterator().next();
             String configName = oldOne.getClass().getSimpleName();
@@ -649,4 +649,8 @@ public abstract class AbstractConfigManager extends 
LifecycleAdapter {
         this.configIdIndexes.clear();
         this.duplicatedConfigs.clear();
     }
+
+    public boolean isInitialized() {
+        return initialized.get();
+    }
 }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java 
b/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java
index ac4c10a..e8fdc65 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java
@@ -181,6 +181,7 @@ public class ConfigManager extends AbstractConfigManager 
implements ApplicationE
         return getDefaultConfigs(ProtocolConfig.class);
     }
 
+    @Override
     public <C extends AbstractConfig> List<C> getDefaultConfigs(Class<C> cls) {
         return getDefaultConfigs(getConfigsMap(getTagName(cls)));
     }
@@ -215,6 +216,7 @@ public class ConfigManager extends AbstractConfigManager 
implements ApplicationE
     }
 
 
+    @Override
     public void refreshAll() {
         // refresh all configs here,
         getApplication().ifPresent(ApplicationConfig::refresh);
@@ -237,7 +239,7 @@ public class ConfigManager extends AbstractConfigManager 
implements ApplicationE
         // load dubbo.monitors.xxx
         loadConfigsOfTypeFromProps(MonitorConfig.class);
 
-        // load dubbo.metricses.xxx
+        // load dubbo.metrics.xxx
         loadConfigsOfTypeFromProps(MetricsConfig.class);
 
         // load multiple config types:
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/config/context/ModuleConfigManager.java
 
b/dubbo-common/src/main/java/org/apache/dubbo/config/context/ModuleConfigManager.java
index 4c9b2ca..90cadc9 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/config/context/ModuleConfigManager.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/config/context/ModuleConfigManager.java
@@ -156,6 +156,7 @@ public class ModuleConfigManager extends 
AbstractConfigManager {
         return getConfigs(getTagName(ConsumerConfig.class));
     }
 
+    @Override
     public void refreshAll() {
         // refresh all configs here,
         getModule().ifPresent(ModuleConfig::refresh);
@@ -171,6 +172,7 @@ public class ModuleConfigManager extends 
AbstractConfigManager {
         }
     }
 
+    @Override
     public void clear() {
         super.clear();
         this.serviceConfigCache.clear();
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/MethodDescriptor.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/MethodDescriptor.java
index 02fd95f..91c9887 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/MethodDescriptor.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/MethodDescriptor.java
@@ -25,7 +25,9 @@ import org.apache.dubbo.common.utils.ReflectUtils;
 import java.lang.reflect.Method;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
+import java.util.Arrays;
 import java.util.Iterator;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.stream.Stream;
@@ -48,10 +50,10 @@ public class MethodDescriptor {
 
     private static final Logger logger = 
LoggerFactory.getLogger(MethodDescriptor.class);
     private final Method method;
-    //    private final boolean isCallBack;
-    //    private final boolean isFuture;
     private final String paramDesc;
-    // duplicate filed as paramDesc, but with different format.
+    /**
+     * duplicate filed as paramDesc, but with different format.
+     */
     private final String[] compatibleParamSignatures;
     private final Class<?>[] parameterClasses;
     private final Class<?> returnClass;
@@ -62,8 +64,10 @@ public class MethodDescriptor {
     private final RpcType rpcType;
     private final ConcurrentMap<String, Object> attributeMap = new 
ConcurrentHashMap<>();
 
-    // only for tri protocol
-    // support StreamObserver ...
+    /**
+     * only for tri protocol
+     * support StreamObserver
+     */
     private final Class<?>[] realParameterClasses;
     private final Class<?> realReturnClass;
 
@@ -339,4 +343,37 @@ public class MethodDescriptor {
         UNARY, SERVER_STREAM, CLIENT_STREAM, BIDIRECTIONAL_STREAM
     }
 
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        MethodDescriptor that = (MethodDescriptor) o;
+        return generic == that.generic
+            && wrap == that.wrap
+            && rpcType == that.rpcType
+            && Objects.equals(method, that.method)
+            && Objects.equals(paramDesc, that.paramDesc)
+            && Arrays.equals(compatibleParamSignatures, 
that.compatibleParamSignatures)
+            && Arrays.equals(parameterClasses, that.parameterClasses)
+            && Objects.equals(returnClass, that.returnClass)
+            && Arrays.equals(returnTypes, that.returnTypes)
+            && Objects.equals(methodName, that.methodName)
+            && Objects.equals(attributeMap, that.attributeMap)
+            && Arrays.equals(realParameterClasses, that.realParameterClasses)
+            && Objects.equals(realReturnClass, that.realReturnClass);
+    }
+
+    @Override
+    public int hashCode() {
+        int result = Objects.hash(method, paramDesc, returnClass, methodName, 
generic, wrap, rpcType, attributeMap, realReturnClass);
+        result = 31 * result + Arrays.hashCode(compatibleParamSignatures);
+        result = 31 * result + Arrays.hashCode(parameterClasses);
+        result = 31 * result + Arrays.hashCode(returnTypes);
+        result = 31 * result + Arrays.hashCode(realParameterClasses);
+        return result;
+    }
 }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java
index 936261e..d0d5b65 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java
@@ -27,7 +27,6 @@ import org.apache.dubbo.common.utils.Assert;
 import org.apache.dubbo.config.context.ModuleConfigManager;
 
 import java.util.Set;
-import java.util.concurrent.atomic.AtomicLong;
 
 /**
  * Model of a service module
@@ -35,7 +34,6 @@ import java.util.concurrent.atomic.AtomicLong;
 public class ModuleModel extends ScopeModel {
     private static final Logger logger = 
LoggerFactory.getLogger(ModuleModel.class);
 
-    private static final AtomicLong index = new AtomicLong(0);
     public static final String NAME = "ModuleModel";
 
     private final ApplicationModel applicationModel;
@@ -54,7 +52,9 @@ public class ModuleModel extends ScopeModel {
         this.applicationModel = applicationModel;
         applicationModel.addModule(this, isInternal);
         initialize();
-        Assert.notNull(applicationModel, "ApplicationModel can not be null");
+        Assert.notNull(serviceRepository, "ModuleServiceRepository can not be 
null");
+        Assert.notNull(moduleConfigManager, "ModuleConfigManager can not be 
null");
+        Assert.assertTrue(moduleConfigManager.isInitialized(), 
"ModuleConfigManager can not be initialized");
     }
 
     @Override
@@ -151,20 +151,4 @@ public class ModuleModel extends ScopeModel {
     public void setModuleEnvironment(ModuleEnvironment moduleEnvironment) {
         this.moduleEnvironment = moduleEnvironment;
     }
-
-    /**
-     * for ut only
-     */
-    @Deprecated
-    public void setServiceRepository(ModuleServiceRepository 
serviceRepository) {
-        this.serviceRepository = serviceRepository;
-    }
-
-    /**
-     * for ut only
-     */
-    @Deprecated
-    public void setModuleConfigManager(ModuleConfigManager 
moduleConfigManager) {
-        this.moduleConfigManager = moduleConfigManager;
-    }
 }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleServiceRepository.java
 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleServiceRepository.java
index eae0fb0..9710eb55 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleServiceRepository.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleServiceRepository.java
@@ -35,16 +35,22 @@ import java.util.stream.Collectors;
  */
 public class ModuleServiceRepository {
 
-    private ModuleModel moduleModel;
+    private final ModuleModel moduleModel;
 
-    // services
+    /**
+     * services
+     */
     private ConcurrentMap<String, List<ServiceDescriptor>> services = new 
ConcurrentHashMap<>();
 
-    // consumers ( key - group/interface:version value - consumerModel list)
+    /**
+     * consumers ( key - group/interface:version value - consumerModel list)
+     */
     private ConcurrentMap<String, List<ConsumerModel>> consumers = new 
ConcurrentHashMap<>();
 
-    // providers
-    private ConcurrentMap<String, ProviderModel> providers = new 
ConcurrentHashMap<>();
+    /**
+     * providers
+     */
+    private final ConcurrentMap<String, ProviderModel> providers = new 
ConcurrentHashMap<>();
     private final FrameworkServiceRepository frameworkServiceRepository;
 
     public ModuleServiceRepository(ModuleModel moduleModel) {
@@ -96,7 +102,7 @@ public class ModuleServiceRepository {
     public ServiceDescriptor registerService(Class<?> interfaceClazz) {
         ServiceDescriptor serviceDescriptor = new 
ServiceDescriptor(interfaceClazz);
         List<ServiceDescriptor> serviceDescriptors = 
services.computeIfAbsent(interfaceClazz.getName(),
-            _k -> new CopyOnWriteArrayList<>());
+            k -> new CopyOnWriteArrayList<>());
         synchronized (serviceDescriptors) {
             Optional<ServiceDescriptor> previous = serviceDescriptors.stream()
                 .filter(s -> 
s.getServiceInterfaceClass().equals(interfaceClazz)).findFirst();
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 ac452f9..11d5ccd 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
@@ -33,7 +33,7 @@ import java.util.Objects;
  */
 public class ProviderModel extends ServiceModel {
     private final List<RegisterStatedURL> urls;
-    private final Map<String, List<ProviderMethodModel>> methods = new 
HashMap<String, List<ProviderMethodModel>>();
+    private final Map<String, List<ProviderMethodModel>> methods = new 
HashMap<>();
 
     public ProviderModel(String serviceKey,
                          Object serviceInstance,
@@ -158,11 +158,7 @@ public class ProviderModel extends ServiceModel {
         for (Method method : methodsToExport) {
             method.setAccessible(true);
 
-            List<ProviderMethodModel> methodModels = 
methods.get(method.getName());
-            if (methodModels == null) {
-                methodModels = new ArrayList<ProviderMethodModel>();
-                methods.put(method.getName(), methodModels);
-            }
+            List<ProviderMethodModel> methodModels = 
methods.computeIfAbsent(method.getName(), k -> new ArrayList<>());
             methodModels.add(new ProviderMethodModel(method));
         }
     }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModel.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModel.java
index 3e4cd9e..e4bdcfb 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModel.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModel.java
@@ -68,7 +68,7 @@ public abstract class ScopeModel implements ExtensionAccessor 
{
     private List<ScopeModelDestroyListener> destroyListeners;
 
     private Map<String, Object> attributes;
-    private AtomicBoolean destroyed = new AtomicBoolean(false);
+    private final AtomicBoolean destroyed = new AtomicBoolean(false);
 
     public ScopeModel(ScopeModel parent, ExtensionScope scope) {
         this.parent = parent;
@@ -145,6 +145,7 @@ public abstract class ScopeModel implements 
ExtensionAccessor {
         attributes.put(key, value);
     }
 
+    @Override
     public ExtensionDirector getExtensionDirector() {
         return extensionDirector;
     }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelAwareExtensionProcessor.java
 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelAwareExtensionProcessor.java
index f6475cc..bb85e52 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelAwareExtensionProcessor.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelAwareExtensionProcessor.java
@@ -68,18 +68,22 @@ public class ScopeModelAwareExtensionProcessor implements 
ExtensionPostProcessor
         return instance;
     }
 
+    @Override
     public ScopeModel getScopeModel() {
         return scopeModel;
     }
 
+    @Override
     public FrameworkModel getFrameworkModel() {
         return frameworkModel;
     }
 
+    @Override
     public ApplicationModel getApplicationModel() {
         return applicationModel;
     }
 
+    @Override
     public ModuleModel getModuleModel() {
         return moduleModel;
     }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelUtil.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelUtil.java
index bc662e3..cd52c17 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelUtil.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelUtil.java
@@ -21,15 +21,15 @@ import org.apache.dubbo.common.extension.SPI;
 
 public class ScopeModelUtil {
 
-    public static ScopeModel getOrDefault(ScopeModel scopeModel, Class type) {
+    public static <T> ScopeModel getOrDefault(ScopeModel scopeModel, Class<T> 
type) {
         if (scopeModel != null) {
             return scopeModel;
         }
         return getDefaultScopeModel(type);
     }
 
-    private static ScopeModel getDefaultScopeModel(Class type) {
-        SPI spi = (SPI) type.getAnnotation(SPI.class);
+    private static <T>ScopeModel getDefaultScopeModel(Class<T> type) {
+        SPI spi = type.getAnnotation(SPI.class);
         if (spi == null) {
             throw new IllegalArgumentException("SPI annotation not found for 
class: " + type.getName());
         }
@@ -70,7 +70,7 @@ public class ScopeModelUtil {
     }
 
     public static ScopeModel getOrDefaultApplicationModel(ScopeModel 
scopeModel) {
-        if(scopeModel == null) {
+        if (scopeModel == null) {
             return ApplicationModel.defaultModel();
         }
         return scopeModel;
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceMetadata.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceMetadata.java
index 5f551b5..65ee092 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceMetadata.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceMetadata.java
@@ -35,10 +35,14 @@ public class ServiceMetadata extends BaseServiceMetadata {
 
     private Object target;
 
-    /* will be transferred to remote side */
-    private final Map<String, Object> attachments = new 
ConcurrentHashMap<String, Object>();
-    /* used locally*/
-    private final Map<String, Object> attributeMap = new 
ConcurrentHashMap<String, Object>();
+    /**
+     * will be transferred to remote side
+     */
+    private final Map<String, Object> attachments = new ConcurrentHashMap<>();
+    /**
+     * used locally
+     */
+    private final Map<String, Object> attributeMap = new ConcurrentHashMap<>();
 
     public ServiceMetadata(String serviceInterfaceName, String group, String 
version, Class<?> serviceType) {
         this.serviceInterfaceName = serviceInterfaceName;
@@ -52,6 +56,7 @@ public class ServiceMetadata extends BaseServiceMetadata {
     public ServiceMetadata() {
     }
 
+    @Override
     public String getServiceKey() {
         return serviceKey;
     }

Reply via email to