File tree Expand file tree Collapse file tree 1 file changed +22
-1
lines changed
xtext-gradle-plugin/src/main/java/org/xtext/gradle/tasks/internal Expand file tree Collapse file tree 1 file changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -3,11 +3,17 @@ package org.xtext.gradle.tasks.internal
3
3
import java.util.List
4
4
5
5
class FilteringClassLoader extends ClassLoader {
6
+
7
+ static val char DOT = ' .'
8
+ static val char SLASH = ' /'
9
+
6
10
val List<String > includes
11
+ val List<String > resourceIncludes
7
12
8
13
new (ClassLoader parent, List<String > includes) {
9
14
super (parent)
10
15
this . includes = includes
16
+ this . resourceIncludes = includes. map[replace(DOT ,SLASH )]
11
17
}
12
18
13
19
override loadClass (String name , boolean resolve ) throws ClassNotFoundException {
@@ -27,8 +33,23 @@ class FilteringClassLoader extends ClassLoader {
27
33
}
28
34
}
29
35
36
+ override getResource (String name ) {
37
+ val result = ClassLoader . systemClassLoader. parent? . getResource(name)
38
+ if (result !== null ) {
39
+ return result
40
+ }
41
+ if (name. isValidResource) {
42
+ return super . getResource(name)
43
+ }
44
+ return null
45
+ }
46
+
30
47
private def isValidClass (String name ) {
31
- includes. exists[name. startsWith(it + " ." )]
48
+ includes. exists[name. startsWith(it + DOT )]
49
+ }
50
+
51
+ private def isValidResource (String name ) {
52
+ resourceIncludes. exists[name. startsWith(it + SLASH )]
32
53
}
33
54
34
55
}
You can’t perform that action at this time.
0 commit comments