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 2024/06/06 20:31:39 UTC

(camel) branch main updated: CAMEL-20848: camel-jbang - Export should only jib if no jkube is in use

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 f0ee72721c6 CAMEL-20848: camel-jbang - Export should only jib if no jkube is in use
f0ee72721c6 is described below

commit f0ee72721c669de9dfd5e99c24809f45dd936ed7
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jun 6 22:31:22 2024 +0200

    CAMEL-20848: camel-jbang - Export should only jib if no jkube is in use
---
 .../modules/ROOT/pages/camel-jbang.adoc            |  2 +-
 .../dsl/jbang/core/commands/ExportBaseCommand.java | 16 +++++++++++++--
 .../dsl/jbang/core/commands/ExportCamelMain.java   | 18 +++++++++++++----
 ...uth-pom.tmpl => main-docker-from-auth-pom.tmpl} |  0
 .../main/resources/templates/main-docker-pom.tmpl  | 21 ++++++++++++++++++++
 ...-auth-pom.tmpl => main-docker-to-auth-pom.tmpl} |  0
 .../resources/templates/main-kubernetes-pom.tmpl   | 23 +---------------------
 .../src/main/resources/templates/main-pom.tmpl     |  8 ++++----
 8 files changed, 55 insertions(+), 33 deletions(-)

diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
index be1c7b0b037..6aa1297e9c6 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
@@ -3480,7 +3480,7 @@ For example, the following can be used for a general Camel based application to
 ----
 label.runtime=app.kubernetes.io/runtime
 jib.to.image=demo/myapp:1.0
-jkube.version=1.16.0
+jkube.version=1.16.2
 jkube.build.strategy=jib
 jkube.skip.build=true
 jkube.namespace=my-namespace
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 04048626157..f366c50f91c 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
@@ -704,11 +704,23 @@ abstract class ExportBaseCommand extends CamelCommand {
         try {
             List<String> lines = RuntimeUtil.loadPropertiesLines(settings);
             return lines.stream().filter(l -> l.startsWith("camel.jbang.jib-maven-plugin-version="))
-                    .map(s -> StringHelper.after(s, "=")).findFirst().orElse("3.4.0");
+                    .map(s -> StringHelper.after(s, "=")).findFirst().orElse("3.4.3");
         } catch (Exception e) {
             // ignore
         }
-        return "3.4.0";
+        return "3.4.3";
+    }
+
+    protected static String jkubeMavenPluginVersion(File settings) {
+        try {
+            List<String> lines = RuntimeUtil.loadPropertiesLines(settings);
+            return lines.stream()
+                    .filter(l -> l.startsWith("camel.jbang.jkube-maven-plugin-version=") || l.startsWith("jkube.version="))
+                    .map(s -> StringHelper.after(s, "=")).findFirst().orElse("1.16.2");
+        } catch (Exception e) {
+            // ignore
+        }
+        return "1.16.2";
     }
 
     protected void safeCopy(File source, File target, boolean override) throws Exception {
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 d833f666416..fd37cf570c0 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
@@ -243,8 +243,10 @@ class ExportCamelMain extends Export {
         if (profile.exists()) {
             RuntimeUtil.loadProperties(prop, profile);
         }
+        boolean jib = prop.stringPropertyNames().stream().anyMatch(s -> s.startsWith("jib."));
         boolean jkube = prop.stringPropertyNames().stream().anyMatch(s -> s.startsWith("jkube."));
-        if (jkube) {
+        // jib is used for docker and kubernetes, jkube is only used for kubernetes
+        if (jib || jkube) {
             // include all jib/jkube/label properties
             String fromImage = null;
             for (String key : prop.stringPropertyNames()) {
@@ -263,7 +265,7 @@ class ExportCamelMain extends Export {
                 sb1.append(String.format("        <%s>%s</%s>%n", "jib.from.image", fromImage, "jib.from.image"));
             }
 
-            InputStream is = ExportCamelMain.class.getClassLoader().getResourceAsStream("templates/main-kubernetes-pom.tmpl");
+            InputStream is = ExportCamelMain.class.getClassLoader().getResourceAsStream("templates/main-docker-pom.tmpl");
             String context2 = IOHelper.loadText(is);
             IOHelper.close(is);
 
@@ -272,14 +274,14 @@ class ExportCamelMain extends Export {
             // image from/to auth
             String auth = "";
             if (prop.stringPropertyNames().stream().anyMatch(s -> s.startsWith("jib.from.auth."))) {
-                is = ExportCamelMain.class.getClassLoader().getResourceAsStream("templates/main-kubernetes-from-auth-pom.tmpl");
+                is = ExportCamelMain.class.getClassLoader().getResourceAsStream("templates/main-docker-from-auth-pom.tmpl");
                 auth = IOHelper.loadText(is);
                 IOHelper.close(is);
             }
             context2 = context2.replace("{{ .JibFromImageAuth }}", auth);
             auth = "";
             if (prop.stringPropertyNames().stream().anyMatch(s -> s.startsWith("jib.to.auth."))) {
-                is = ExportCamelMain.class.getClassLoader().getResourceAsStream("templates/main-kubernetes-to-auth-pom.tmpl");
+                is = ExportCamelMain.class.getClassLoader().getResourceAsStream("templates/main-docker-to-auth-pom.tmpl");
                 auth = IOHelper.loadText(is);
                 IOHelper.close(is);
             }
@@ -291,6 +293,14 @@ class ExportCamelMain extends Export {
             }
             context2 = context2.replaceFirst("\\{\\{ \\.Port }}", String.valueOf(port));
             sb2.append(context2);
+            // jkube is only used for kubernetes
+            if (jkube) {
+                is = ExportCamelMain.class.getClassLoader().getResourceAsStream("templates/main-kubernetes-pom.tmpl");
+                String context3 = IOHelper.loadText(is);
+                IOHelper.close(is);
+                context3 = context3.replaceFirst("\\{\\{ \\.JkubeMavenPluginVersion }}", jkubeMavenPluginVersion(settings));
+                sb2.append(context3);
+            }
         }
 
         context = context.replace("{{ .CamelKubernetesProperties }}", sb1.toString());
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-from-auth-pom.tmpl b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-docker-from-auth-pom.tmpl
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-from-auth-pom.tmpl
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-docker-from-auth-pom.tmpl
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-docker-pom.tmpl b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-docker-pom.tmpl
new file mode 100644
index 00000000000..cb11e0d6d18
--- /dev/null
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-docker-pom.tmpl
@@ -0,0 +1,21 @@
+            <plugin>
+                <groupId>com.google.cloud.tools</groupId>
+                <artifactId>jib-maven-plugin</artifactId>
+                <version>{{ .JibMavenPluginVersion }}</version>
+                <configuration>
+                    <from>
+                        <image>${jib.from.image}</image>
+{{ .JibFromImageAuth }}
+                    </from>
+                    <to>
+                        <image>${jib.to.image}</image>
+{{ .JibToImageAuth }}
+                    </to>
+                    <containerizingMode>packaged</containerizingMode>
+                    <container>
+                        <ports>
+                            <port>{{ .Port }}</port>
+                        </ports>
+                    </container>
+                </configuration>
+            </plugin>
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-to-auth-pom.tmpl b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-docker-to-auth-pom.tmpl
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-kubernetes-to-auth-pom.tmpl
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-docker-to-auth-pom.tmpl
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 5046b334e23..e016f531a14 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,28 +1,7 @@
-            <plugin>
-                <groupId>com.google.cloud.tools</groupId>
-                <artifactId>jib-maven-plugin</artifactId>
-                <version>{{ .JibMavenPluginVersion }}</version>
-                <configuration>
-                    <from>
-                        <image>${jib.from.image}</image>
-{{ .JibFromImageAuth }}
-                    </from>
-                    <to>
-                        <image>${jib.to.image}</image>
-{{ .JibToImageAuth }}
-                    </to>
-                    <containerizingMode>packaged</containerizingMode>
-                    <container>
-                        <ports>
-                            <port>{{ .Port }}</port>
-                        </ports>
-                    </container>
-                </configuration>
-            </plugin>
             <plugin>
                 <groupId>org.eclipse.jkube</groupId>
                 <artifactId>kubernetes-maven-plugin</artifactId>
-                <version>${jkube.version}</version>
+                <version>{{ .JkubeMavenPluginVersion }}</version>
                 <configuration>
                     <images>
                         <image>
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
index f78ba27f3a4..90d0c852fb4 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
@@ -48,17 +48,17 @@
         <dependency>
             <groupId>org.apache.logging.log4j</groupId>
             <artifactId>log4j-api</artifactId>
-            <version>2.22.0</version>
+            <version>2.23.1</version>
         </dependency>
         <dependency>
             <groupId>org.apache.logging.log4j</groupId>
             <artifactId>log4j-slf4j2-impl</artifactId>
-            <version>2.22.0</version>
+            <version>2.23.1</version>
         </dependency>
         <dependency>
             <groupId>org.apache.logging.log4j</groupId>
             <artifactId>log4j-core</artifactId>
-            <version>2.22.0</version>
+            <version>2.23.1</version>
         </dependency>
 
         <dependency>
@@ -100,7 +100,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-assembly-plugin</artifactId>
-                <version>3.7.0</version>
+                <version>3.7.1</version>
                 <configuration>
                     <descriptors>
                         <descriptor>src/main/resources/assembly/runner.xml</descriptor>