You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/10/21 10:09:53 UTC

[camel] branch main updated: CAMEL-20026: camel-jbang - Export camel-main allow to configure jib-maven-plugin version

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 52564b245c5 CAMEL-20026: camel-jbang - Export camel-main allow to configure jib-maven-plugin version
52564b245c5 is described below

commit 52564b245c510d82870ef99c6d1255e20f97e005
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Oct 21 12:09:38 2023 +0200

    CAMEL-20026: camel-jbang - Export camel-main allow to configure jib-maven-plugin version
---
 docs/user-manual/modules/ROOT/pages/camel-jbang.adoc          |  5 +++++
 .../camel/dsl/jbang/core/commands/ExportBaseCommand.java      | 11 +++++++++++
 .../apache/camel/dsl/jbang/core/commands/ExportCamelMain.java |  4 +++-
 .../src/main/resources/templates/main-kubernetes-pom.tmpl     |  2 +-
 4 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
index 314bd99da6b..3b5f07b7595 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
@@ -2382,6 +2382,8 @@ jkube.enricher.jkube-service.port=8080
 jkube.recreate=true
 ----
 
+TIP: You can specify the jib-maven-plugin version using the `camel.jbang.jib-maven-plugin-version` property in `application.properties`.
+
 You can find more details in the https://eclipse.dev/jkube/docs/[Eclipse JKube] and https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin[Jib] documentations.
 
 ===== Resource fragments
@@ -2546,6 +2548,9 @@ The follow options related to _exporting_, can be configured in `application.pro
 |`camel.jbang.ignoreLoadingError`
 | Whether to ignore route loading and compilation errors (use this with care!)
 
+|`camel.jbang.jib-maven-plugin-version`
+| Version to use for jib-maven-plugin if exporting to camel-main and have Kubernetes enabled (jkube.xxx options).
+
 |===
 
 NOTE: These are options from the export command, so you can see mor details and default values using `camel export --help`.
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
index 4d6f3ccd518..a473a91f8d9 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
@@ -681,6 +681,17 @@ abstract class ExportBaseCommand extends CamelCommand {
         return -1;
     }
 
+    protected static String jibMavenPluginVersion(File settings) {
+        try {
+            List<String> lines = Files.readAllLines(settings.toPath());
+            return lines.stream().filter(l -> l.startsWith("camel.jbang.jib-maven-plugin-version="))
+                    .map(s -> StringHelper.after(s, "=")).findFirst().orElse("3.4.0");
+        } catch (Exception e) {
+            // ignore
+        }
+        return "3.4.0";
+    }
+
     protected static void safeCopy(File source, File target, boolean override) throws Exception {
         if (!source.exists()) {
             return;
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
index f081c8d90d6..bb9110b3ff0 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
@@ -255,7 +255,9 @@ class ExportCamelMain extends Export {
             if (port == -1) {
                 port = 8080;
             }
-            sb2.append(context2.replaceFirst("\\{\\{ \\.Port }}", String.valueOf(port)));
+            context2 = context2.replaceFirst("\\{\\{ \\.Port }}", String.valueOf(port));
+            context2 = context2.replaceFirst("\\{\\{ \\.JibMavenPluginVersion }}", jibMavenPluginVersion(settings));
+            sb2.append(context2);
         }
 
         context = context.replace("{{ .CamelKubernetesProperties }}", sb1.toString());
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-pom.tmpl b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-pom.tmpl
index ac6a1e70f91..0623bd06a0b 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-pom.tmpl
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-pom.tmpl
@@ -1,7 +1,7 @@
             <plugin>
                 <groupId>com.google.cloud.tools</groupId>
                 <artifactId>jib-maven-plugin</artifactId>
-                <version>3.3.2</version>
+                <version>{{ .JibMavenPluginVersion }}</version>
                 <configuration>
                     <container>
                         <ports>