This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch quarkus-main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit a1a50e64416af0366df53b005d3b6c234c91ed6e 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 | 14 ++++++++++++++ 1 file changed, 14 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..7f1575c5df 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,19 @@ 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,