diff --git a/governator-core/src/main/java/com/netflix/governator/auto/ClassPathModuleListProvider.java b/governator-core/src/main/java/com/netflix/governator/auto/ClassPathModuleListProvider.java index 97236dba..bee42c1d 100644 --- a/governator-core/src/main/java/com/netflix/governator/auto/ClassPathModuleListProvider.java +++ b/governator-core/src/main/java/com/netflix/governator/auto/ClassPathModuleListProvider.java @@ -29,13 +29,14 @@ public ClassPathModuleListProvider(List packages) { public List get() { List modules = new ArrayList<>(); ClassPath classpath; + ClassLoader loader = Thread.currentThread().getContextClassLoader(); for (String pkg : packages) { try { - classpath = ClassPath.from(Thread.currentThread().getContextClassLoader()); + classpath = ClassPath.from(loader); for (ClassPath.ClassInfo classInfo : classpath.getTopLevelClassesRecursive(pkg)) { try { // Include Modules that have at least on Conditional - Class cls = Class.forName(classInfo.getName(), false, ClassLoader.getSystemClassLoader()); + Class cls = Class.forName(classInfo.getName(), false, loader); if (!cls.isInterface() && !Modifier.isAbstract( cls.getModifiers() ) && Module.class.isAssignableFrom(cls)) { if (isAllowed((Class) cls)) { modules.add((Module) cls.newInstance());