Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_6_X abb285ee9 -> 5adb3aacd


Minor refactoring: extract method and remove duplicated code

(cherry picked from commit 93ddc57)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/5adb3aac
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/5adb3aac
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/5adb3aac

Branch: refs/heads/GROOVY_2_6_X
Commit: 5adb3aacdc79f52451f3f2b938c44f712c31167b
Parents: abb285e
Author: sunlan <[email protected]>
Authored: Thu Jan 25 08:41:57 2018 +0800
Committer: sunlan <[email protected]>
Committed: Thu Jan 25 11:37:02 2018 +0800

----------------------------------------------------------------------
 .../runtime/m12n/ExtensionModuleRegistry.java   |  7 +--
 .../runtime/m12n/MetaInfExtensionModule.java    | 46 ++++++++------------
 2 files changed, 21 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/5adb3aac/src/main/java/org/codehaus/groovy/runtime/m12n/ExtensionModuleRegistry.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/codehaus/groovy/runtime/m12n/ExtensionModuleRegistry.java 
b/src/main/java/org/codehaus/groovy/runtime/m12n/ExtensionModuleRegistry.java
index e84c4d9..01161ce 100644
--- 
a/src/main/java/org/codehaus/groovy/runtime/m12n/ExtensionModuleRegistry.java
+++ 
b/src/main/java/org/codehaus/groovy/runtime/m12n/ExtensionModuleRegistry.java
@@ -51,10 +51,11 @@ public class ExtensionModuleRegistry {
     }
 
     public boolean hasModule(final String moduleName) {
-        for (ExtensionModule module : modules) {
-            if (module.getName().equals(moduleName)) return true;
+        if (null == getModule(moduleName)) {
+            return false;
         }
-        return false;
+
+        return true;
     }
 
     public ExtensionModule getModule(final String moduleName) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/5adb3aac/src/main/java/org/codehaus/groovy/runtime/m12n/MetaInfExtensionModule.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/codehaus/groovy/runtime/m12n/MetaInfExtensionModule.java 
b/src/main/java/org/codehaus/groovy/runtime/m12n/MetaInfExtensionModule.java
index 39e39ad..10c1fd3 100644
--- a/src/main/java/org/codehaus/groovy/runtime/m12n/MetaInfExtensionModule.java
+++ b/src/main/java/org/codehaus/groovy/runtime/m12n/MetaInfExtensionModule.java
@@ -61,48 +61,36 @@ public class MetaInfExtensionModule extends 
SimpleExtensionModule {
 
     public static MetaInfExtensionModule newModule(final Properties 
properties, final ClassLoader loader) {
         String name = 
properties.getProperty(PropertiesModuleFactory.MODULE_NAME_KEY);
-        if (name==null) throw new GroovyRuntimeException("Module file hasn't 
set the module name using key ["+PropertiesModuleFactory.MODULE_NAME_KEY+"]");
+        if (name == null)
+            throw new GroovyRuntimeException("Module file hasn't set the 
module name using key [" + PropertiesModuleFactory.MODULE_NAME_KEY + "]");
         String version = 
properties.getProperty(PropertiesModuleFactory.MODULE_VERSION_KEY);
-        if (version==null) throw new GroovyRuntimeException("Module file 
hasn't set the module version using key 
["+PropertiesModuleFactory.MODULE_VERSION_KEY+"]");
+        if (version == null)
+            throw new GroovyRuntimeException("Module file hasn't set the 
module version using key [" + PropertiesModuleFactory.MODULE_VERSION_KEY + "]");
         String[] extensionClasses = 
properties.getProperty(MODULE_INSTANCE_CLASSES_KEY, "").trim().split("[,; ]");
         String[] staticExtensionClasses = 
properties.getProperty(MODULE_STATIC_CLASSES_KEY, "").trim().split("[,; ]");
         List<Class> instanceClasses = new 
ArrayList<Class>(extensionClasses.length);
         List<Class> staticClasses = new 
ArrayList<Class>(staticExtensionClasses.length);
         List<String> errors = new LinkedList<String>();
-        for (String extensionClass : extensionClasses) {
-            try {
-                extensionClass = extensionClass.trim();
-                if (extensionClass.length()>0) {
-                    instanceClasses.add(loader.loadClass(extensionClass));
-                }
-            } catch (ClassNotFoundException e) {
-                errors.add(extensionClass);
-            } catch (NoClassDefFoundError e) {
-                errors.add(extensionClass);
-            } catch (UnsupportedClassVersionError e) {
-                errors.add(extensionClass);
+        loadExtensionClass(loader, extensionClasses, instanceClasses, errors);
+        loadExtensionClass(loader, staticExtensionClasses, staticClasses, 
errors);
+        if (!errors.isEmpty()) {
+            for (String error : errors) {
+                LOG.warning("Module [" + name + "] - Unable to load extension 
class [" + error + "]");
             }
         }
-        for (String extensionClass : staticExtensionClasses) {
+        return new MetaInfExtensionModule(name, version, instanceClasses, 
staticClasses);
+    }
+
+    private static void loadExtensionClass(ClassLoader loader, String[] 
extensionClasses, List<Class> instanceClasses, List<String> errors) {
+        for (String extensionClass : extensionClasses) {
             try {
                 extensionClass = extensionClass.trim();
-                if (extensionClass.length()>0) {
-                    staticClasses.add(loader.loadClass(extensionClass));
+                if (extensionClass.length() > 0) {
+                    instanceClasses.add(loader.loadClass(extensionClass));
                 }
-            } catch (ClassNotFoundException e) {
-                errors.add(extensionClass);
-            } catch (NoClassDefFoundError e) {
-                errors.add(extensionClass);
-            } catch (UnsupportedClassVersionError e) {
+            } catch (ClassNotFoundException | NoClassDefFoundError | 
UnsupportedClassVersionError e) {
                 errors.add(extensionClass);
             }
         }
-        if (!errors.isEmpty()) {
-            for (String error : errors) {
-                LOG.warning("Module ["+name+"] - Unable to load extension 
class ["+error+"]");
-            }
-        }
-        return new MetaInfExtensionModule(name, version, instanceClasses, 
staticClasses);
     }
-
 }

Reply via email to