This is an automated email from the ASF dual-hosted git repository.
albumenj 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 40ed786e8a typo & format extension (#9883)
40ed786e8a is described below
commit 40ed786e8ad0f6ebd2da9486598746ea025f343d
Author: lemonJ <[email protected]>
AuthorDate: Fri Apr 22 15:17:21 2022 +0800
typo & format extension (#9883)
---
.../extension/AdaptiveClassCodeGenerator.java | 8 +-
.../dubbo/common/extension/ExtensionDirector.java | 5 +-
.../dubbo/common/extension/ExtensionLoader.java | 112 +++++++--------------
.../inject/AdaptiveExtensionInjector.java | 23 ++---
.../extension/support/ActivateComparator.java | 10 +-
.../support/MultiInstanceActivateComparator.java | 9 +-
.../extension/support/WrapperComparator.java | 5 +-
7 files changed, 67 insertions(+), 105 deletions(-)
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java
index 61a9a8d3cd..1a4e1f88e2 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java
@@ -39,7 +39,7 @@ public class AdaptiveClassCodeGenerator {
private static final Logger logger =
LoggerFactory.getLogger(AdaptiveClassCodeGenerator.class);
- private static final String CLASSNAME_INVOCATION =
"org.apache.dubbo.rpc.Invocation";
+ private static final String CLASS_NAME_INVOCATION =
"org.apache.dubbo.rpc.Invocation";
private static final String CODE_PACKAGE = "package %s;\n";
@@ -260,7 +260,7 @@ public class AdaptiveClassCodeGenerator {
}
/**
- * generate extName assigment code
+ * generate extName assignment code
*/
private String generateExtNameAssignment(String[] value, boolean
hasInvocation) {
// TODO: refactor it
@@ -333,7 +333,7 @@ public class AdaptiveClassCodeGenerator {
*/
private boolean hasInvocationArgument(Method method) {
Class<?>[] pts = method.getParameterTypes();
- return Arrays.stream(pts).anyMatch(p ->
CLASSNAME_INVOCATION.equals(p.getName()));
+ return Arrays.stream(pts).anyMatch(p ->
CLASS_NAME_INVOCATION.equals(p.getName()));
}
/**
@@ -341,7 +341,7 @@ public class AdaptiveClassCodeGenerator {
*/
private String generateInvocationArgumentNullCheck(Method method) {
Class<?>[] pts = method.getParameterTypes();
- return IntStream.range(0, pts.length).filter(i ->
CLASSNAME_INVOCATION.equals(pts[i].getName()))
+ return IntStream.range(0, pts.length).filter(i ->
CLASS_NAME_INVOCATION.equals(pts[i].getName()))
.mapToObj(i ->
String.format(CODE_INVOCATION_ARGUMENT_NULL_CHECK, i, i))
.findFirst().orElse("");
}
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionDirector.java
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionDirector.java
index ee035175b5..9790be7ae4 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionDirector.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionDirector.java
@@ -63,6 +63,7 @@ public class ExtensionDirector implements ExtensionAccessor {
}
@Override
+ @SuppressWarnings("unchecked")
public <T> ExtensionLoader<T> getExtensionLoader(Class<T> type) {
checkDestroyed();
if (type == null) {
@@ -111,12 +112,11 @@ public class ExtensionDirector implements
ExtensionAccessor {
if (isScopeMatched(type)) {
// if scope is matched, just create it
loader = createExtensionLoader0(type);
- } else {
- // if scope is not matched, ignore it
}
return loader;
}
+ @SuppressWarnings("unchecked")
private <T> ExtensionLoader<T> createExtensionLoader0(Class<T> type) {
checkDestroyed();
ExtensionLoader<T> loader;
@@ -139,7 +139,6 @@ public class ExtensionDirector implements ExtensionAccessor
{
}
public void removeAllCachedLoader() {
- // extensionLoadersMap.clear();
}
public void destroy() {
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
index 6fc4d69c56..195908a2c4 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
@@ -19,8 +19,6 @@ package org.apache.dubbo.common.extension;
import org.apache.dubbo.common.Extension;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.beans.support.InstantiationStrategy;
-import org.apache.dubbo.common.config.Environment;
-import org.apache.dubbo.common.context.ApplicationExt;
import org.apache.dubbo.common.context.Lifecycle;
import org.apache.dubbo.common.extension.support.ActivateComparator;
import org.apache.dubbo.common.extension.support.WrapperComparator;
@@ -30,7 +28,6 @@ import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.resource.Disposable;
import org.apache.dubbo.common.utils.ArrayUtils;
import org.apache.dubbo.common.utils.ClassLoaderResourceLoader;
-import org.apache.dubbo.common.utils.ClassUtils;
import org.apache.dubbo.common.utils.CollectionUtils;
import org.apache.dubbo.common.utils.ConcurrentHashSet;
import org.apache.dubbo.common.utils.ConfigUtils;
@@ -71,7 +68,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.regex.Pattern;
import static java.util.Arrays.asList;
-import static java.util.Collections.sort;
import static java.util.ServiceLoader.load;
import static java.util.stream.StreamSupport.stream;
import static
org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;
@@ -134,7 +130,6 @@ public class ExtensionLoader<T> {
private ExtensionDirector extensionDirector;
private List<ExtensionPostProcessor> extensionPostProcessors;
private InstantiationStrategy instantiationStrategy;
- private Environment environment;
private ActivateComparator activateComparator;
private ScopeModel scopeModel;
private AtomicBoolean destroyed = new AtomicBoolean();
@@ -181,15 +176,11 @@ public class ExtensionLoader<T> {
}
private void initInstantiationStrategy() {
- for (ExtensionPostProcessor extensionPostProcessor :
extensionPostProcessors) {
- if (extensionPostProcessor instanceof ScopeModelAccessor) {
- instantiationStrategy = new
InstantiationStrategy((ScopeModelAccessor) extensionPostProcessor);
- break;
- }
- }
- if (instantiationStrategy == null) {
- instantiationStrategy = new InstantiationStrategy();
- }
+ instantiationStrategy = extensionPostProcessors.stream()
+ .filter(extensionPostProcessor -> extensionPostProcessor
instanceof ScopeModelAccessor)
+ .map(extensionPostProcessor -> new
InstantiationStrategy((ScopeModelAccessor) extensionPostProcessor))
+ .findFirst()
+ .orElse(new InstantiationStrategy());
}
/**
@@ -204,18 +195,8 @@ public class ExtensionLoader<T> {
return
ApplicationModel.defaultModel().getDefaultModule().getExtensionLoader(type);
}
- // For testing purposes only
+ @Deprecated
public static void resetExtensionLoader(Class type) {
-// ExtensionLoader loader = EXTENSION_LOADERS.get(type);
-// if (loader != null) {
-// // Remove all instances associated with this loader as well
-// Map<String, Class<?>> classes = loader.getExtensionClasses();
-// for (Map.Entry<String, Class<?>> entry : classes.entrySet()) {
-// EXTENSION_INSTANCES.remove(entry.getValue());
-// }
-// classes.clear();
-// EXTENSION_LOADERS.remove(type);
-// }
}
public void destroy() {
@@ -256,10 +237,6 @@ public class ExtensionLoader<T> {
}
}
- private static ClassLoader findClassLoader() {
- return ClassUtils.getClassLoader(ExtensionLoader.class);
- }
-
public String getExtensionName(T extensionInstance) {
return getExtensionName(extensionInstance.getClass());
}
@@ -316,6 +293,7 @@ public class ExtensionLoader<T> {
* @return extension list which are activated
* @see org.apache.dubbo.common.extension.Activate
*/
+ @SuppressWarnings("deprecation")
public List<T> getActivateExtension(URL url, String[] values, String
group) {
checkDestroyed();
// solve the bug of using @SPI's wrapper method to report a null
pointer exception.
@@ -378,31 +356,32 @@ public class ExtensionLoader<T> {
// will affect order
// `ext1,default,ext2` means ext1 will happens before all of the
default extensions while ext2 will after them
ArrayList<T> extensionsResult = new
ArrayList<>(activateExtensionsMap.size() + names.size());
- for (int i = 0; i < names.size(); i++) {
- String name = names.get(i);
- if (!name.startsWith(REMOVE_VALUE_PREFIX)
- && !namesSet.contains(REMOVE_VALUE_PREFIX + name)) {
- if (!DEFAULT_KEY.equals(name)) {
- if (containsExtension(name)) {
- extensionsResult.add(getExtension(name));
- }
- } else {
-
extensionsResult.addAll(activateExtensionsMap.values());
- }
+ for (String name : names) {
+ if (name.startsWith(REMOVE_VALUE_PREFIX)
+ || namesSet.contains(REMOVE_VALUE_PREFIX + name)) {
+ continue;
+ }
+ if (DEFAULT_KEY.equals(name)) {
+ extensionsResult.addAll(activateExtensionsMap.values());
+ continue;
+ }
+ if (containsExtension(name)) {
+ extensionsResult.add(getExtension(name));
}
}
return extensionsResult;
} else {
// add extensions, will be sorted by its order
- for (int i = 0; i < names.size(); i++) {
- String name = names.get(i);
- if (!name.startsWith(REMOVE_VALUE_PREFIX)
- && !namesSet.contains(REMOVE_VALUE_PREFIX + name)) {
- if (!DEFAULT_KEY.equals(name)) {
- if (containsExtension(name)) {
- activateExtensionsMap.put(getExtensionClass(name),
getExtension(name));
- }
- }
+ for (String name : names) {
+ if (name.startsWith(REMOVE_VALUE_PREFIX)
+ || namesSet.contains(REMOVE_VALUE_PREFIX + name)) {
+ continue;
+ }
+ if (DEFAULT_KEY.equals(name)) {
+ continue;
+ }
+ if (containsExtension(name)) {
+ activateExtensionsMap.put(getExtensionClass(name),
getExtension(name));
}
}
return new ArrayList<>(activateExtensionsMap.values());
@@ -503,6 +482,7 @@ public class ExtensionLoader<T> {
return Collections.unmodifiableSet(new
TreeSet<>(cachedInstances.keySet()));
}
+ @SuppressWarnings("unchecked")
public List<T> getLoadedExtensionInstances() {
checkDestroyed();
List<T> instances = new ArrayList<>();
@@ -510,15 +490,10 @@ public class ExtensionLoader<T> {
return instances;
}
- public Object getLoadedAdaptiveExtensionInstances() {
- return cachedAdaptiveInstance.get();
- }
-
/**
* Find the extension with the given name. If the specified name is not
found, then {@link IllegalStateException}
* will be thrown.
*/
- @SuppressWarnings("unchecked")
public T getExtension(String name) {
T extension = getExtension(name, true);
if (extension == null) {
@@ -527,6 +502,7 @@ public class ExtensionLoader<T> {
return extension;
}
+ @SuppressWarnings("unchecked")
public T getExtension(String name, boolean wrap) {
checkDestroyed();
if (StringUtils.isEmpty(name)) {
@@ -599,7 +575,7 @@ public class ExtensionLoader<T> {
}
}
// sort the Prioritized instances
- sort(instances, Prioritized.COMPARATOR);
+ instances.sort(Prioritized.COMPARATOR);
return new LinkedHashSet<>(instances);
}
@@ -798,6 +774,7 @@ public class ExtensionLoader<T> {
return instantiationStrategy.instantiate(type);
}
+ @SuppressWarnings("unchecked")
private T postProcessBeforeInitialization(T instance, String name) throws
Exception {
if (extensionPostProcessors != null) {
for (ExtensionPostProcessor processor : extensionPostProcessors) {
@@ -807,6 +784,7 @@ public class ExtensionLoader<T> {
return instance;
}
+ @SuppressWarnings("unchecked")
private T postProcessAfterInitialization(T instance, String name) throws
Exception {
if (instance instanceof ExtensionAccessorAware) {
((ExtensionAccessorAware)
instance).setExtensionAccessor(extensionDirector);
@@ -824,7 +802,6 @@ public class ExtensionLoader<T> {
}
private T injectExtension(T instance) {
-
if (injector == null) {
return instance;
}
@@ -855,7 +832,6 @@ public class ExtensionLoader<T> {
logger.error("Failed to inject via method " +
method.getName()
+ " of interface " + type.getName() + ": " +
e.getMessage(), e);
}
-
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
@@ -921,6 +897,7 @@ public class ExtensionLoader<T> {
/**
* synchronized in getExtensionClasses
*/
+ @SuppressWarnings("deprecation")
private Map<String, Class<?>> loadExtensionClasses() {
checkDestroyed();
cacheDefaultExtensionName();
@@ -969,10 +946,6 @@ public class ExtensionLoader<T> {
}
}
- private void loadDirectory(Map<String, Class<?>> extensionClasses, String
dir, String type) {
- loadDirectory(extensionClasses, dir, type, false, false, new
String[]{}, new String[]{}, new String[]{});
- }
-
private void loadDirectory(Map<String, Class<?>> extensionClasses, String
dir, String type,
boolean extensionLoaderClassLoaderFirst,
boolean overridden, String[] includedPackages,
String[] excludedPackages, String[]
onlyExtensionClassLoaderPackages) {
@@ -1003,9 +976,8 @@ public class ExtensionLoader<T> {
}
Map<ClassLoader, Set<java.net.URL>> resources =
ClassLoaderResourceLoader.loadResources(fileName, classLoadersToLoad);
- resources.forEach(((classLoader, urls) -> {
- loadFromClass(extensionClasses, overridden, urls, classLoader,
includedPackages, excludedPackages, onlyExtensionClassLoaderPackages);
- }));
+ resources.forEach(((classLoader, urls) ->
+ loadFromClass(extensionClasses, overridden, urls, classLoader,
includedPackages, excludedPackages, onlyExtensionClassLoaderPackages)));
} catch (Throwable t) {
logger.error("Exception occurred when loading extension class
(interface: " +
type + ", description file: " + fileName + ").", t);
@@ -1100,7 +1072,7 @@ public class ExtensionLoader<T> {
}
private void loadClass(Map<String, Class<?>> extensionClasses,
java.net.URL resourceURL, Class<?> clazz, String name,
- boolean overridden) throws NoSuchMethodException {
+ boolean overridden) {
if (!type.isAssignableFrom(clazz)) {
throw new IllegalStateException("Error occurred when loading
extension class (interface: " +
type + ", class line: " + clazz.getName() + "), class "
@@ -1159,6 +1131,7 @@ public class ExtensionLoader<T> {
* <p>
* for compatibility, also cache class with old alibaba Activate annotation
*/
+ @SuppressWarnings("deprecation")
private void cacheActivateClass(Class<?> clazz, String name) {
Activate activate = clazz.getAnnotation(Activate.class);
if (activate != null) {
@@ -1230,7 +1203,7 @@ public class ExtensionLoader<T> {
try {
T instance = (T) getAdaptiveExtensionClass().newInstance();
instance = postProcessBeforeInitialization(instance, null);
- instance = injectExtension(instance);
+ injectExtension(instance);
instance = postProcessAfterInitialization(instance, null);
initExtension(instance);
return instance;
@@ -1263,13 +1236,6 @@ public class ExtensionLoader<T> {
return compiler.compile(type, code, classLoader);
}
- private Environment getEnvironment() {
- if (environment == null) {
- environment = (Environment)
extensionDirector.getExtensionLoader(ApplicationExt.class).getExtension(Environment.NAME);
- }
- return environment;
- }
-
@Override
public String toString() {
return this.getClass().getName() + "[" + type.getName() + "]";
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/inject/AdaptiveExtensionInjector.java
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/inject/AdaptiveExtensionInjector.java
index 1ae03cfeb8..952bf045a4 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/inject/AdaptiveExtensionInjector.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/inject/AdaptiveExtensionInjector.java
@@ -22,9 +22,10 @@ import org.apache.dubbo.common.extension.ExtensionAccessor;
import org.apache.dubbo.common.extension.ExtensionInjector;
import org.apache.dubbo.common.extension.ExtensionLoader;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* AdaptiveExtensionInjector
@@ -47,22 +48,18 @@ public class AdaptiveExtensionInjector implements
ExtensionInjector, Lifecycle {
@Override
public void initialize() throws IllegalStateException {
ExtensionLoader<ExtensionInjector> loader =
extensionAccessor.getExtensionLoader(ExtensionInjector.class);
- List<ExtensionInjector> list = new ArrayList<ExtensionInjector>();
- for (String name : loader.getSupportedExtensions()) {
- list.add(loader.getExtension(name));
- }
- injectors = Collections.unmodifiableList(list);
+ injectors = loader.getSupportedExtensions().stream()
+ .map(loader::getExtension)
+ .collect(Collectors.collectingAndThen(Collectors.toList(),
Collections::unmodifiableList));
}
@Override
public <T> T getInstance(Class<T> type, String name) {
- for (ExtensionInjector injector : injectors) {
- T extension = injector.getInstance(type, name);
- if (extension != null) {
- return extension;
- }
- }
- return null;
+ return injectors.stream()
+ .map(injector -> injector.getInstance(type, name))
+ .filter(Objects::nonNull)
+ .findFirst()
+ .orElse(null);
}
@Override
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/ActivateComparator.java
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/ActivateComparator.java
index 1b08ec2173..8adc4412fc 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/ActivateComparator.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/ActivateComparator.java
@@ -106,17 +106,17 @@ public class ActivateComparator implements
Comparator<Class<?>> {
for (Class<?> intf : clazz.getInterfaces()) {
if (intf.isAnnotationPresent(SPI.class)) {
return intf;
- } else {
- Class<?> result = findSpi(intf);
- if (result != null) {
- return result;
- }
+ }
+ Class<?> result = findSpi(intf);
+ if (result != null) {
+ return result;
}
}
return null;
}
+ @SuppressWarnings("deprecation")
private ActivateInfo parseActivate(Class<?> clazz) {
ActivateInfo info = activateInfoMap.get(clazz);
if (info != null) {
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/MultiInstanceActivateComparator.java
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/MultiInstanceActivateComparator.java
index 5af8ed5f19..9d78914514 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/MultiInstanceActivateComparator.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/MultiInstanceActivateComparator.java
@@ -121,11 +121,10 @@ public class MultiInstanceActivateComparator implements
Comparator<Class<?>> {
for (Class<?> intf : clazz.getInterfaces()) {
if (intf.isAnnotationPresent(SPI.class)) {
return intf;
- } else {
- Class<?> result = findSpi(intf);
- if (result != null) {
- return result;
- }
+ }
+ Class<?> result = findSpi(intf);
+ if (result != null) {
+ return result;
}
}
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/WrapperComparator.java
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/WrapperComparator.java
index 1fd0a50cf8..ced9357221 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/WrapperComparator.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/WrapperComparator.java
@@ -22,7 +22,7 @@ import org.apache.dubbo.common.extension.Wrapper;
import java.util.Comparator;
/**
- * OrderComparator
+ * OrderComparator
* Derived from {@link ActivateComparator}
*/
public class WrapperComparator implements Comparator<Object> {
@@ -46,7 +46,7 @@ public class WrapperComparator implements Comparator<Object> {
Class clazz1 = (Class) o1;
Class clazz2 = (Class) o2;
-
+
OrderInfo a1 = parseOrder(clazz1);
OrderInfo a2 = parseOrder(clazz2);
@@ -56,6 +56,7 @@ public class WrapperComparator implements Comparator<Object> {
return n1 > n2 ? 1 : -1;
}
+ @SuppressWarnings("deprecation")
private OrderInfo parseOrder(Class<?> clazz) {
OrderInfo info = new OrderInfo();
if (clazz.isAnnotationPresent(Activate.class)) {