diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AbstractStrategyBootstrap.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AbstractStrategyBootstrap.java index 9ac2085..6821d5d 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AbstractStrategyBootstrap.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AbstractStrategyBootstrap.java @@ -99,7 +99,7 @@ public abstract class AbstractStrategyBootstrap extends Abstract Configuration config = new PropertiesConfiguration(url); canonicalName = config.getString(getConfigKey(), getDefaultClass().getCanonicalName()); - ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); + ClassLoader classLoader = ConfigurationLoader.getClassLoaderForResource(canonicalName); result = (Class) Class.forName(canonicalName, false, classLoader); result.asSubclass(getType()); diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java index bfc9e65..abcbf39 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java @@ -307,20 +307,18 @@ public class ConfigurationLoader implements Serializable { return value; } - public static URL getResourceAsURL(final String resource) throws FileNotFoundException { + public static ClassLoader getClassLoaderForResource(final String resource) throws FileNotFoundException { final String stripped = resource.startsWith("/") ? resource.substring(1) : resource; URL url = null; - final ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); - - if (classLoader != null) { - url = classLoader.getResource(stripped); - } + ClassLoader result = Thread.currentThread().getContextClassLoader(); - if (url == null) { - url = ConfigurationLoader.class.getResource(stripped); + if (result != null) { + url = result.getResource(stripped); } + if (url == null) { + result = ConfigurationLoader.class.getClassLoader(); url = ConfigurationLoader.class.getClassLoader().getResource(stripped); } @@ -328,6 +326,11 @@ public class ConfigurationLoader implements Serializable { throw new FileNotFoundException(resource + " not found."); } - return url; + return result; + } + + public static URL getResourceAsURL(final String resource) throws FileNotFoundException { + ClassLoader classLoader = getClassLoaderForResource(resource); + return classLoader.getResource(resource); } } -- libgit2 0.21.2