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,

Reply via email to