-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
Describe the issue
For driving the generation of reflect-config.json et al I'm using the tracing agent in combination with JUnit and TestContainers. In order to not include test-related classes, I've added the following access-filter.json file:
{
"rules": [
{
"excludeClasses": "org.apache.maven.surefire.**"
},
{
"excludeClasses": "org.junit.**"
},
{
"excludeClasses": "org.apiguardian.**"
},
{
"excludeClasses": "org.testcontainers.**"
},
{
"excludeClasses": "com.github.dockerjava.**"
}
]
}The excludes work well, except for the "excludeClasses": "com.github.dockerjava.**".
While it excludes most of the files and directories under com.github.dockerjava, it doesn't exclude com.github.dockerjava.api.model.Bind which shows up in the generated reflect-config.json:
... more stuff
{
"name":"com.github.dockerjava.api.model.Bind[]"
},
... more stuff
This leads to failing the native-image-build because the Bind class is obviously not found (being not part of the CP).
Steps to reproduce the issue
- git clone https://github.com/helpermethod/kafka-connect-offset-reset
- mvn clean package
Describe GraalVM and your environment:
- GraalVM version: CE 21.0.0
- JDK major version: 11
- OS: macOS Catalina
- Architecture: x86_64
More details
Verbose native-image-maven-plugin log output
[INFO] --- native-image-maven-plugin:21.0.0:native-image (default) @ kafka-connect-offset-reset ---
[INFO] ImageClasspath Entry: info.picocli:picocli:jar:4.6.1:compile (file:///Users/oliver.weiler/.m2/repository/info/picocli/picocli/4.6.1/picocli-4.6.1.jar)
[INFO] ImageClasspath Entry: org.apache.kafka:kafka-clients:jar:2.7.0:compile (file:///Users/oliver.weiler/.m2/repository/org/apache/kafka/kafka-clients/2.7.0/kafka-clients-2.7.0.jar)
[INFO] ImageClasspath Entry: com.github.luben:zstd-jni:jar:1.4.5-6:compile (file:///Users/oliver.weiler/.m2/repository/com/github/luben/zstd-jni/1.4.5-6/zstd-jni-1.4.5-6.jar)
[INFO] ImageClasspath Entry: org.lz4:lz4-java:jar:1.7.1:compile (file:///Users/oliver.weiler/.m2/repository/org/lz4/lz4-java/1.7.1/lz4-java-1.7.1.jar)
[INFO] ImageClasspath Entry: org.xerial.snappy:snappy-java:jar:1.1.7.7:compile (file:///Users/oliver.weiler/.m2/repository/org/xerial/snappy/snappy-java/1.1.7.7/snappy-java-1.1.7.7.jar)
[INFO] ImageClasspath Entry: org.slf4j:slf4j-api:jar:1.7.30:compile (file:///Users/oliver.weiler/.m2/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar)
[INFO] ImageClasspath Entry: com.fasterxml.jackson.core:jackson-databind:jar:2.12.0:compile (file:///Users/oliver.weiler/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.12.0/jackson-databind-2.12.0.jar)
[INFO] ImageClasspath Entry: com.fasterxml.jackson.core:jackson-annotations:jar:2.12.0:compile (file:///Users/oliver.weiler/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.12.0/jackson-annotations-2.12.0.jar)
[INFO] ImageClasspath Entry: com.fasterxml.jackson.core:jackson-core:jar:2.12.0:compile (file:///Users/oliver.weiler/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.12.0/jackson-core-2.12.0.jar)
[INFO] ImageClasspath Entry: com.github.helpermethod:kafka-connect-offset-reset:jar:0.0.1-SNAPSHOT (file:///Users/oliver.weiler/git/kafka-connect-offset-reset/target/kafka-connect-offset-reset-0.0.1-SNAPSHOT.jar)
[INFO] Executing: /Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/svm/bin/native-image -cp /Users/oliver.weiler/.m2/repository/info/picocli/picocli/4.6.1/picocli-4.6.1.jar:/Users/oliver.weiler/.m2/repository/org/apache/kafka/kafka-clients/2.7.0/kafka-clients-2.7.0.jar:/Users/oliver.weiler/.m2/repository/com/github/luben/zstd-jni/1.4.5-6/zstd-jni-1.4.5-6.jar:/Users/oliver.weiler/.m2/repository/org/lz4/lz4-java/1.7.1/lz4-java-1.7.1.jar:/Users/oliver.weiler/.m2/repository/org/xerial/snappy/snappy-java/1.1.7.7/snappy-java-1.1.7.7.jar:/Users/oliver.weiler/.m2/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar:/Users/oliver.weiler/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.12.0/jackson-databind-2.12.0.jar:/Users/oliver.weiler/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.12.0/jackson-annotations-2.12.0.jar:/Users/oliver.weiler/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.12.0/jackson-core-2.12.0.jar:/Users/oliver.weiler/git/kafka-connect-offset-reset/target/kafka-connect-offset-reset-0.0.1-SNAPSHOT.jar --verbose -H:Class=com.github.helpermethod.kafka.connect.offset.reset.KafkaConnectOffsetReset -H:Name=kafka-connect-offset-reset
Executing [
/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/bin/java \
-XX:+UseParallelGC \
-XX:+UnlockExperimentalVMOptions \
-XX:+EnableJVMCI \
-Dtruffle.TrustAllTruffleRuntimeProviders=true \
-Dtruffle.TruffleRuntime=com.oracle.truffle.api.impl.DefaultTruffleRuntime \
-Dgraalvm.ForcePolyglotInvalid=true \
-Dgraalvm.locatorDisabled=true \
-Dsubstratevm.IgnoreGraalVersionCheck=true \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.aarch64=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.amd64=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.site=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.stack=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.common=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.sparc=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.runtime=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.services=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.sparc=ALL-UNNAMED \
--add-exports=org.graalvm.truffle/com.oracle.truffle.api=ALL-UNNAMED \
--add-opens=jdk.internal.vm.compiler/org.graalvm.compiler.debug=ALL-UNNAMED \
--add-opens=jdk.internal.vm.compiler/org.graalvm.compiler.nodes=ALL-UNNAMED \
--add-opens=jdk.unsupported/sun.reflect=ALL-UNNAMED \
--add-opens=java.base/jdk.internal.module=ALL-UNNAMED \
--add-opens=java.base/jdk.internal.ref=ALL-UNNAMED \
--add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED \
--add-opens=java.base/java.io=ALL-UNNAMED \
--add-opens=java.base/java.lang=ALL-UNNAMED \
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED \
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED \
--add-opens=java.base/java.lang.ref=ALL-UNNAMED \
--add-opens=java.base/java.net=ALL-UNNAMED \
--add-opens=java.base/java.nio=ALL-UNNAMED \
--add-opens=java.base/java.nio.file=ALL-UNNAMED \
--add-opens=java.base/java.security=ALL-UNNAMED \
--add-opens=java.base/javax.crypto=ALL-UNNAMED \
--add-opens=java.base/java.util=ALL-UNNAMED \
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED \
--add-opens=java.base/sun.security.x509=ALL-UNNAMED \
--add-opens=java.base/jdk.internal.logger=ALL-UNNAMED \
--add-opens=org.graalvm.sdk/org.graalvm.nativeimage.impl=ALL-UNNAMED \
--add-opens=org.graalvm.sdk/org.graalvm.polyglot=ALL-UNNAMED \
--add-opens=org.graalvm.truffle/com.oracle.truffle.polyglot=ALL-UNNAMED \
--add-opens=org.graalvm.truffle/com.oracle.truffle.api.impl=ALL-UNNAMED \
-XX:+UseJVMCINativeLibrary \
-Xss10m \
-Xms1g \
-Xmx13743895344 \
-Duser.country=US \
-Duser.language=en \
-Djava.awt.headless=true \
-Dorg.graalvm.version=21.0.0 \
-Dorg.graalvm.config= \
-Dcom.oracle.graalvm.isaot=true \
-Djava.system.class.loader=com.oracle.svm.hosted.NativeImageSystemClassLoader \
-Xshare:off \
--module-path \
/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/truffle/truffle-api.jar \
-Djdk.internal.lambda.disableEagerInitialization=true \
-Djdk.internal.lambda.eagerlyInitialize=false \
-Djava.lang.invoke.InnerClassLambdaMetafactory.initializeLambdas=false \
-javaagent:/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/svm/builder/svm.jar \
-cp \
/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/svm/builder/llvm-wrapper-shadowed.jar:/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/svm/builder/svm.jar:/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/svm/builder/objectfile.jar:/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/svm/builder/llvm-platform-specific-shadowed.jar:/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/svm/builder/javacpp-shadowed.jar:/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/svm/builder/svm-llvm.jar:/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/svm/builder/pointsto.jar \
'com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus' \
-imagecp \
/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/svm/library-support.jar:/Users/oliver.weiler/.m2/repository/info/picocli/picocli/4.6.1/picocli-4.6.1.jar:/Users/oliver.weiler/.m2/repository/org/apache/kafka/kafka-clients/2.7.0/kafka-clients-2.7.0.jar:/Users/oliver.weiler/.m2/repository/com/github/luben/zstd-jni/1.4.5-6/zstd-jni-1.4.5-6.jar:/Users/oliver.weiler/.m2/repository/org/lz4/lz4-java/1.7.1/lz4-java-1.7.1.jar:/Users/oliver.weiler/.m2/repository/org/xerial/snappy/snappy-java/1.1.7.7/snappy-java-1.1.7.7.jar:/Users/oliver.weiler/.m2/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar:/Users/oliver.weiler/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.12.0/jackson-databind-2.12.0.jar:/Users/oliver.weiler/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.12.0/jackson-annotations-2.12.0.jar:/Users/oliver.weiler/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.12.0/jackson-core-2.12.0.jar:/Users/oliver.weiler/git/kafka-connect-offset-reset/target/kafka-connect-offset-reset-0.0.1-SNAPSHOT.jar \
-H:Path=/Users/oliver.weiler/git/kafka-connect-offset-reset/target \
-H:JNIConfigurationResources=META-INF/native-image/jni-config.json \
-H:ReflectionConfigurationResources=META-INF/native-image/reflect-config.json \
-H:ReflectionConfigurationResources=META-INF/native-image/picocli-generated/com.github.helpermethod/kafka-connect-offset-reset/reflect-config.json \
-H:ResourceConfigurationResources=META-INF/native-image/resource-config.json \
-H:ResourceConfigurationResources=META-INF/native-image/picocli-generated/com.github.helpermethod/kafka-connect-offset-reset/resource-config.json \
-H:DynamicProxyConfigurationResources=META-INF/native-image/proxy-config.json \
-H:DynamicProxyConfigurationResources=META-INF/native-image/picocli-generated/com.github.helpermethod/kafka-connect-offset-reset/proxy-config.json \
-H:SerializationConfigurationResources=META-INF/native-image/serialization-config.json \
-H:Class=com.github.helpermethod.kafka.connect.offset.reset.KafkaConnectOffsetReset \
-H:Name=kafka-connect-offset-reset \
-H:CLibraryPath=/Users/oliver.weiler/.sdkman/candidates/java/21.0.0.r11-grl/lib/svm/clibraries/darwin-amd64 \
]
[kafka-connect-offset-reset:72311] classlist: 1,922.24 ms, 0.96 GB
[kafka-connect-offset-reset:72311] (cap): 3,574.66 ms, 0.96 GB
[kafka-connect-offset-reset:72311] setup: 4,480.42 ms, 0.96 GB
Error: Error parsing reflection configuration in jar:file:/Users/oliver.weiler/git/kafka-connect-offset-reset/target/kafka-connect-offset-reset-0.0.1-SNAPSHOT.jar!/META-INF/native-image/reflect-config.json:
Could not resolve com.github.dockerjava.api.model.Bind[] for reflection configuration. Reason: java.lang.ClassNotFoundException: com.github.dockerjava.api.model.Bind. To allow unresolvable reflection configuration, use option -H:+AllowIncompleteClasspath
Verify that the configuration matches the schema described in the -H:PrintFlags=+ output for option ReflectionConfigurationResources.
Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
Error: Image build request failed with exit status 1
com.oracle.svm.driver.NativeImage$NativeImageError: Image build request failed with exit status 1
at com.oracle.svm.driver.NativeImage.showError(NativeImage.java:1676)
at com.oracle.svm.driver.NativeImage.build(NativeImage.java:1426)
at com.oracle.svm.driver.NativeImage.performBuild(NativeImage.java:1387)
at com.oracle.svm.driver.NativeImage.main(NativeImage.java:1374)
at com.oracle.svm.driver.NativeImage$JDK9Plus.main(NativeImage.java:1858)