@@ -90,7 +90,7 @@ class ClassPathScanner {
9090 Set<Class > scan (Class applicationClass , Collection<String > packageNames , Class<? extends Annotation > annotationFilter ) {
9191 ResourcePatternResolver resourcePatternResolver = new GrailsClasspathIgnoringResourceResolver (applicationClass)
9292
93- return scan(resourcePatternResolver,packageNames, { String annotation ->
93+ return scan(applicationClass . getClassLoader(), resourcePatternResolver, packageNames, { String annotation ->
9494 annotationFilter. name == annotation
9595 })
9696 }
@@ -104,19 +104,31 @@ class ClassPathScanner {
104104 */
105105 Set<Class > scan (Class applicationClass , Collection<String > packageNames , Closure<Boolean > annotationFilter = { String annotation -> annotation. startsWith(' grails.' ) }) {
106106 ResourcePatternResolver resourcePatternResolver = new GrailsClasspathIgnoringResourceResolver (applicationClass)
107-
108- return scan(resourcePatternResolver,packageNames, annotationFilter)
107+ return scan(applicationClass. getClassLoader(), resourcePatternResolver,packageNames, annotationFilter)
109108 }
110109
111110 /**
112- * Scans for classes oin the given package names
111+ * Scans for classes in the given package names
113112 *
114113 * @param resourcePatternResolver The resolver to use
115114 * @param packageNames The package names
116115 * @return The found classes
117116 */
118117 Set<Class > scan (ResourcePatternResolver resourcePatternResolver , Collection<String > packageNames , Closure<Boolean > annotationFilter = { String annotation -> annotation. startsWith(' grails.' ) }) {
119118 ClassLoader classLoader = resourcePatternResolver. getClassLoader()
119+ return scan(classLoader, resourcePatternResolver, packageNames, annotationFilter)
120+ }
121+
122+ /**
123+ * Scans for classes in the given package names
124+ *
125+ * @param classLoader The classloader to use to load classes
126+ * @param resourcePatternResolver The resolver
127+ * @param packageNames The package names
128+ * @param annotationFilter The filter
129+ * @return The classes
130+ */
131+ Set<Class > scan (ClassLoader classLoader , ResourcePatternResolver resourcePatternResolver , Collection<String > packageNames , Closure<Boolean > annotationFilter = { String annotation -> annotation. startsWith(' grails.' ) }) {
120132 Set<Class > classes = []
121133 for (String pkg in packageNames. unique()) {
122134 if (pkg == null ) continue
0 commit comments