This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch quarkus-main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 0674382e39ff871e6e2256f8899e9df907f6b74b Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Tue Jun 4 13:47:34 2024 +0100 Exclude jline native image configuration from org.jetbrains.kotlin:kotlin-compiler-embeddable #6147 --- .../quarkus/dsl/kotlin/deployment/KotlinDslProcessor.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/extensions/kotlin-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/kotlin/deployment/KotlinDslProcessor.java b/extensions/kotlin-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/kotlin/deployment/KotlinDslProcessor.java index c8f01b2806..a607fef0e3 100644 --- a/extensions/kotlin-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/kotlin/deployment/KotlinDslProcessor.java +++ b/extensions/kotlin-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/kotlin/deployment/KotlinDslProcessor.java @@ -39,6 +39,7 @@ import io.quarkus.deployment.annotations.BuildStep; import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.GeneratedClassBuildItem; import io.quarkus.deployment.builditem.GeneratedResourceBuildItem; +import io.quarkus.deployment.builditem.nativeimage.ExcludeConfigBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import io.quarkus.deployment.dev.CompilationProvider; import io.quarkus.deployment.pkg.builditem.BuildSystemTargetBuildItem; @@ -80,6 +81,18 @@ class KotlinDslProcessor { return new FeatureBuildItem(FEATURE); } + @BuildStep + void excludeJLineNativeImageConfigs(BuildProducer<ExcludeConfigBuildItem> nativeImageExclusions) { + // Exclude various jline native-image.properties, as the required native-image configuration files + // are not shaded into org.jetbrains.kotlin:kotlin-compiler-embeddable. + // See: https://github.com/apache/camel-quarkus/issues/6147 + String nativeResourceTemplate = "/META-INF/native-image/org\\.jline/jline-terminal%s/native-image\\.properties"; + Stream.of("", "-jansi", "-jna", "-jni") + .forEach(module -> { + nativeImageExclusions.produce(new ExcludeConfigBuildItem(".*kotlin-compiler-embeddable.*", nativeResourceTemplate.formatted(module))); + }); + } + @BuildStep(onlyIf = NativeOrNativeSourcesBuild.class) void compileScriptsAOT(BuildProducer<GeneratedClassBuildItem> generatedClass, BuildProducer<GeneratedResourceBuildItem> generatedResource,