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/03/22 19:42:33 UTC

[camel] 02/04: CAMEL-19187: camel-jbang - dependency list should use user configured 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

commit 0f9d78d60f0dcc46af001c2d116bbe65ec6aa40e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Mar 22 20:30:09 2023 +0100

    CAMEL-19187: camel-jbang - dependency list should use user configured version
---
 .../apache/camel/dsl/jbang/core/commands/DependencyCopy.java | 12 ++++++++++--
 .../apache/camel/dsl/jbang/core/commands/DependencyList.java |  8 +++++++-
 .../org/apache/camel/dsl/jbang/core/commands/Export.java     |  2 ++
 .../camel/dsl/jbang/core/commands/ExportBaseCommand.java     |  8 +++++++-
 .../camel/dsl/jbang/core/commands/ExportCamelMain.java       |  6 ++++--
 .../java/org/apache/camel/dsl/jbang/core/commands/Run.java   |  4 +++-
 6 files changed, 33 insertions(+), 7 deletions(-)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyCopy.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyCopy.java
index bd033fa954f..02cfde7a9b1 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyCopy.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyCopy.java
@@ -40,9 +40,13 @@ public class DependencyCopy extends Export {
     }
 
     @Override
-    protected Integer export() throws Exception {
+    public Integer doCall() throws Exception {
         this.quiet = true; // be quiet and generate from fresh data to ensure the output is up-to-date
+        return super.doCall();
+    }
 
+    @Override
+    protected Integer export() throws Exception {
         Integer answer = doExport();
         if (answer == 0) {
             File buildDir = new File(EXPORT_DIR);
@@ -51,10 +55,13 @@ public class DependencyCopy extends Export {
                           + outputDirectory,
                             null,
                             buildDir);
-            boolean done = p.waitFor(30, TimeUnit.SECONDS);
+            boolean done = p.waitFor(60, TimeUnit.SECONDS);
             if (!done) {
                 answer = 1;
             }
+            if (p.exitValue() != 0) {
+                answer = p.exitValue();
+            }
             // cleanup dir after complete
             FileUtil.removeDir(buildDir);
         }
@@ -75,6 +82,7 @@ public class DependencyCopy extends Export {
             }
             // allow configuring versions from profile
             this.javaVersion = prop.getProperty("camel.jbang.javaVersion", this.javaVersion);
+            this.camelVersion = prop.getProperty("camel.jbang.camelVersion", this.camelVersion);
             this.kameletsVersion = prop.getProperty("camel.jbang.kameletsVersion", this.kameletsVersion);
             this.localKameletDir = prop.getProperty("camel.jbang.localKameletDir", this.localKameletDir);
             this.quarkusGroupId = prop.getProperty("camel.jbang.quarkusGroupId", this.quarkusGroupId);
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyList.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyList.java
index 517c692a54a..a8d4512edcd 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyList.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyList.java
@@ -49,9 +49,13 @@ public class DependencyList extends Export {
     }
 
     @Override
-    protected Integer export() throws Exception {
+    public Integer doCall() throws Exception {
         this.quiet = true; // be quiet and generate from fresh data to ensure the output is up-to-date
+        return super.doCall();
+    }
 
+    @Override
+    protected Integer export() throws Exception {
         if (!"gav".equals(output) && !"maven".equals(output)) {
             System.err.println("--output must be either gav or maven, was: " + output);
             return 1;
@@ -176,6 +180,7 @@ public class DependencyList extends Export {
             }
             // allow configuring versions from profile
             this.javaVersion = prop.getProperty("camel.jbang.javaVersion", this.javaVersion);
+            this.camelVersion = prop.getProperty("camel.jbang.camelVersion", this.camelVersion);
             this.kameletsVersion = prop.getProperty("camel.jbang.kameletsVersion", this.kameletsVersion);
             this.localKameletDir = prop.getProperty("camel.jbang.localKameletDir", this.localKameletDir);
             this.quarkusGroupId = prop.getProperty("camel.jbang.quarkusGroupId", this.quarkusGroupId);
@@ -193,6 +198,7 @@ public class DependencyList extends Export {
             runtime = "camel-main";
         }
 
+        // turn off noise
         if ("spring-boot".equals(runtime) || "camel-spring-boot".equals(runtime)) {
             return export(new ExportSpringBoot(getMain()));
         } else if ("quarkus".equals(runtime) || "camel-quarkus".equals(runtime)) {
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
index b9752cbe61e..a6d85a34fb2 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
@@ -48,6 +48,7 @@ public class Export extends ExportBaseCommand {
             }
             // allow configuring versions from profile
             this.javaVersion = prop.getProperty("camel.jbang.javaVersion", this.javaVersion);
+            this.camelVersion = prop.getProperty("camel.jbang.camelVersion", this.camelVersion);
             this.kameletsVersion = prop.getProperty("camel.jbang.kameletsVersion", this.kameletsVersion);
             this.localKameletDir = prop.getProperty("camel.jbang.localKameletDir", this.localKameletDir);
             this.quarkusGroupId = prop.getProperty("camel.jbang.quarkusGroupId", this.quarkusGroupId);
@@ -93,6 +94,7 @@ public class Export extends ExportBaseCommand {
         cmd.exportDir = this.exportDir;
         cmd.fresh = this.fresh;
         cmd.javaVersion = this.javaVersion;
+        cmd.camelVersion = this.camelVersion;
         cmd.kameletsVersion = this.kameletsVersion;
         cmd.localKameletDir = this.localKameletDir;
         cmd.logging = this.logging;
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 8479ca0bc28..48cc7c1954d 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
@@ -88,6 +88,10 @@ abstract class ExportBaseCommand extends CamelCommand {
     @CommandLine.Option(names = { "--java-version" }, description = "Java version (11 or 17)", defaultValue = "11")
     protected String javaVersion;
 
+    @CommandLine.Option(names = { "--camel-version" },
+                        description = "To export using a different Camel version than the default version.")
+    protected String camelVersion;
+
     @CommandLine.Option(names = {
             "--kamelets-version" }, description = "Apache Camel Kamelets version", defaultValue = "3.20.2")
     protected String kameletsVersion;
@@ -163,7 +167,9 @@ abstract class ExportBaseCommand extends CamelCommand {
             RuntimeUtil.configureLog("off", false, false, false, true);
         }
 
-        printConfigurationValues("Exporting integration with the following configuration:");
+        if (!quiet) {
+            printConfigurationValues("Exporting integration with the following configuration:");
+        }
         // export
         return export();
     }
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 2197099df8e..edc00d4742e 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
@@ -130,8 +130,10 @@ class ExportCamelMain extends Export {
         String context = IOHelper.loadText(is);
         IOHelper.close(is);
 
-        CamelCatalog catalog = new DefaultCamelCatalog();
-        String camelVersion = catalog.getCatalogVersion();
+        if (camelVersion == null) {
+            CamelCatalog catalog = new DefaultCamelCatalog();
+            camelVersion = catalog.getCatalogVersion();
+        }
 
         context = context.replaceFirst("\\{\\{ \\.GroupId }}", ids[0]);
         context = context.replaceFirst("\\{\\{ \\.ArtifactId }}", ids[1]);
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index 603d134c2a0..991433ba07a 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -222,7 +222,9 @@ public class Run extends CamelCommand {
 
     @Override
     public Integer doCall() throws Exception {
-        printConfigurationValues("Running integration with the following configuration:");
+        if (!silentRun) {
+            printConfigurationValues("Running integration with the following configuration:");
+        }
         // run
         return run();
     }