Repository: groovy Updated Branches: refs/heads/GROOVY_2_5_X 64f89a60b -> ec47b91fa
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/ec47b91f Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/ec47b91f Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/ec47b91f Branch: refs/heads/GROOVY_2_5_X Commit: ec47b91fa5f0e96dc08c27dcc8dd2a45da657f50 Parents: 64f89a6 Author: sunlan <[email protected]> Authored: Thu Jan 25 08:41:57 2018 +0800 Committer: sunlan <[email protected]> Committed: Thu Jan 25 11:37:38 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/ec47b91f/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/ec47b91f/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); } - }
