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;
}