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/06/14 10:24:52 UTC

[camel] 01/03: CAMEL-19454: camel-jbang - Export should support --open-api

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

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

commit 3b2787a56c672e9285203b15400f824c2ef94220
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jun 14 09:58:12 2023 +0200

    CAMEL-19454: camel-jbang - Export should support --open-api
---
 .../camel/dsl/jbang/core/commands/Export.java      |  2 +
 .../dsl/jbang/core/commands/ExportBaseCommand.java |  7 ++-
 .../dsl/jbang/core/commands/ExportQuarkus.java     |  3 +-
 .../camel/dsl/jbang/core/common/RuntimeUtil.java   | 52 +++++++++++-----------
 4 files changed, 36 insertions(+), 28 deletions(-)

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 ea0e8253ce6..aaeaca73e42 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
@@ -66,6 +66,7 @@ public class Export extends ExportBaseCommand {
                     = "true".equals(prop.getProperty("camel.jbang.secretsRefresh", this.secretsRefresh ? "true" : "false"));
             this.secretsRefreshProviders
                     = prop.getProperty("camel.jbang.secretsRefreshProviders", this.secretsRefreshProviders);
+            this.openapi = prop.getProperty("camel.jbang.openApi", this.openapi);
         }
 
         if (runtime == null) {
@@ -118,6 +119,7 @@ public class Export extends ExportBaseCommand {
         cmd.additionalProperties = this.additionalProperties;
         cmd.secretsRefresh = this.secretsRefresh;
         cmd.secretsRefreshProviders = this.secretsRefreshProviders;
+        cmd.openapi = this.openapi;
         // run export
         return cmd.export();
     }
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 7ead086b366..4c28a7e3419 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
@@ -145,6 +145,9 @@ abstract class ExportBaseCommand extends CamelCommand {
                         description = "Build tool to use (maven or gradle)")
     protected String buildTool;
 
+    @CommandLine.Option(names = { "--open-api" }, description = "Adds an OpenAPI spec from the given file (json or yaml file)")
+    protected String openapi;
+
     @CommandLine.Option(names = {
             "--dir",
             "--directory" }, description = "Directory where the project will be exported", defaultValue = ".")
@@ -254,8 +257,8 @@ abstract class ExportBaseCommand extends CamelCommand {
         run.localKameletDir = localKameletDir;
         run.dependencies = dependencies;
         run.files = files;
-        Integer code = run.runSilent();
-        return code;
+        run.openapi = openapi;
+        return run.runSilent();
     }
 
     protected Set<String> resolveDependencies(File settings, File profile) throws Exception {
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
index 3939eabe67e..aa7cc6bce78 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
@@ -210,8 +210,9 @@ class ExportQuarkus extends Export {
 
     private static String removeScheme(String s) {
         if (s.contains(":")) {
-            return StringHelper.after(s, ":");
+            s = StringHelper.after(s, ":");
         }
+        s = s.replace(".camel-jbang/", "");
         return s;
     }
 
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java
index 45becca7b0d..6465bca201e 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java
@@ -55,32 +55,34 @@ public final class RuntimeUtil {
     }
 
     public static void setRootLoggingLevel(String level) {
-        level = level.toLowerCase();
+        if (level != null) {
+            level = level.toLowerCase();
 
-        switch (level) {
-            case "off":
-                Configurator.setRootLevel(Level.OFF);
-                break;
-            case "trace":
-                Configurator.setRootLevel(Level.TRACE);
-                break;
-            case "debug":
-                Configurator.setRootLevel(Level.DEBUG);
-                break;
-            case "info":
-                Configurator.setRootLevel(Level.INFO);
-                break;
-            case "warn":
-                Configurator.setRootLevel(Level.WARN);
-                break;
-            case "error":
-                Configurator.setRootLevel(Level.ERROR);
-                break;
-            case "fatal":
-                Configurator.setRootLevel(Level.FATAL);
-                break;
-            default: {
-                Configurator.setRootLevel(Level.INFO);
+            switch (level) {
+                case "off":
+                    Configurator.setRootLevel(Level.OFF);
+                    break;
+                case "trace":
+                    Configurator.setRootLevel(Level.TRACE);
+                    break;
+                case "debug":
+                    Configurator.setRootLevel(Level.DEBUG);
+                    break;
+                case "info":
+                    Configurator.setRootLevel(Level.INFO);
+                    break;
+                case "warn":
+                    Configurator.setRootLevel(Level.WARN);
+                    break;
+                case "error":
+                    Configurator.setRootLevel(Level.ERROR);
+                    break;
+                case "fatal":
+                    Configurator.setRootLevel(Level.FATAL);
+                    break;
+                default: {
+                    Configurator.setRootLevel(Level.INFO);
+                }
             }
         }
     }