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)) {

Reply via email to