Skip to content

Commit d4b5ce3

Browse files
authored
fix class path directroy analyzer (#590)
* fix class path directroy analyzer * add resources-config.json for test * add resources-config.json for test * fix tests * fix tests * fix tests * fix tests * fix tests * fix test
1 parent 08d4a02 commit d4b5ce3

File tree

3 files changed

+35
-9
lines changed

3 files changed

+35
-9
lines changed

common/utils/src/main/java/org/graalvm/buildtools/model/resources/ClassPathDirectoryAnalyzer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOEx
102102

103103
@Override
104104
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
105-
if (inNativeImageDir && relativePathOf(file).endsWith("resource-config.json")) {
105+
if (!ignoreExistingResourcesConfig && inNativeImageDir && relativePathOf(file).endsWith("resource-config.json")) {
106106
hasNativeImageResourceFile = true;
107107
return FileVisitResult.TERMINATE;
108108
}

native-gradle-plugin/src/testFixtures/groovy/org/graalvm/buildtools/gradle/fixtures/AbstractFunctionalTest.groovy

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ abstract class AbstractFunctionalTest extends Specification {
5959
boolean debug
6060
boolean hasConfigurationCache = Boolean.getBoolean("config.cache")
6161

62-
boolean IS_WINDOWS = System.getProperty("os.name", "unknown").contains("Windows");
63-
boolean IS_LINUX = System.getProperty("os.name", "unknown").contains("Linux");
64-
boolean IS_MAC = System.getProperty("os.name", "unknown").contains("Mac");
62+
boolean IS_WINDOWS = System.getProperty("os.name", "unknown").contains("Windows")
63+
boolean IS_LINUX = System.getProperty("os.name", "unknown").contains("Linux")
64+
boolean IS_MAC = System.getProperty("os.name", "unknown").contains("Mac")
6565

6666
private StringWriter outputWriter
6767
private StringWriter errorOutputWriter

native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/JavaApplicationWithResourcesFunctionalTest.groovy

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,35 @@ class JavaApplicationWithResourcesFunctionalTest extends AbstractGraalVMMavenFun
2020
if (!restrictToModules) {
2121
options << '-Dresources.autodetection.restrictToModuleDependencies=false'
2222
}
23+
if (ignoreExistingResourcesConfig) {
24+
options << '-Dresources.autodetection.ignoreExistingResourcesConfig=true'
25+
}
2326
if (detectionExclusionPatterns) {
2427
options << "-Dresources.autodetection.detectionExclusionPatterns=${joinForCliArg(detectionExclusionPatterns)}".toString()
2528
}
2629

2730
when:
31+
def resourcesFile = file("src/main/resources/META-INF/native-image/app/resource-config.json")
32+
resourcesFile.parentFile.mkdirs()
33+
resourcesFile << """
34+
{
35+
"resources" : {
36+
"includes" : [ ],
37+
"excludes" : [ ]
38+
},
39+
"bundles" : [ ]
40+
}
41+
"""
42+
2843
mvn(['-Pnative', '-DquickBuild', '-DskipTests', *options, 'package', 'exec:exec@native'])
2944

3045
then:
3146
buildSucceeded
3247
outputContains "Hello, native!"
3348

3449
and:
35-
matches(file("target/native/generated/generateResourceConfig/resource-config.json").text, '''{
50+
if (ignoreExistingResourcesConfig) {
51+
matches(file("target/native/generated/generateResourceConfig/resource-config.json").text, '''{
3652
"resources" : {
3753
"includes" : [ {
3854
"pattern" : "\\\\Qmessage.txt\\\\E"
@@ -41,12 +57,22 @@ class JavaApplicationWithResourcesFunctionalTest extends AbstractGraalVMMavenFun
4157
},
4258
"bundles" : [ ]
4359
}''')
60+
} else {
61+
matches(file("target/native/generated/generateResourceConfig/resource-config.json").text, '''{
62+
"resources" : {
63+
"includes" : [ ],
64+
"excludes" : [ ]
65+
},
66+
"bundles" : [ ]
67+
}''')
68+
}
4469

4570
where:
46-
detection | includedPatterns | restrictToModules | detectionExclusionPatterns
47-
false | [Pattern.quote("message.txt")] | false | []
48-
true | [] | false | ["META-INF/.*"]
49-
true | [] | true | ["META-INF/.*"]
71+
detection | includedPatterns | restrictToModules | detectionExclusionPatterns | ignoreExistingResourcesConfig
72+
false | [Pattern.quote("message.txt")] | false | [] | true
73+
true | [] | false | ["META-INF/.*"] | true
74+
true | [] | true | ["META-INF/.*"] | true
75+
true | [] | true | [] | false
5076
}
5177

5278
def "can test an application which uses test resources"() {

0 commit comments

Comments
 (0)