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 683e697689b Fixed Camel 18719 : camel-jbang - Adding the dependency of 
camel-quarkus-core creates two entries in exported POM.xml (#8749)
683e697689b is described below

commit 683e697689baa24983e71f197181f93887be274c
Author: Mrinal Sharma <mrinalsha...@users.noreply.github.com>
AuthorDate: Tue Nov 22 03:27:13 2022 -0500

    Fixed Camel 18719 : camel-jbang - Adding the dependency of 
camel-quarkus-core creates two entries in exported POM.xml (#8749)
    
    * Fixed CAMEL-18719
    
    * Update 
dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java
    
    Co-authored-by: Nicolas Filotto <essob...@users.noreply.github.com>
    
    * Incorporated review comments
    
    * Incorporated more comments
    
    * In case application.properties is missing, getDependencies will throw 
NPE. With the fix, NPE will not be thrown
    
    Co-authored-by: Nicolas Filotto <essob...@users.noreply.github.com>
---
 .../dsl/jbang/core/commands/ExportBaseCommand.java     |  4 ++--
 .../camel/dsl/jbang/core/commands/ExportQuarkus.java   |  5 +++++
 .../org/apache/camel/dsl/jbang/core/commands/Run.java  | 18 +++++++++---------
 .../camel/dsl/jbang/core/common/RuntimeUtil.java       | 16 ++++++++++++++++
 4 files changed, 32 insertions(+), 11 deletions(-)

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 592079b57bc..8219f6438a3 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
@@ -265,8 +265,8 @@ abstract class ExportBaseCommand extends CamelCommand {
         if (profile != null && profile.exists()) {
             Properties prop = new CamelCaseOrderedProperties();
             RuntimeUtil.loadProperties(prop, profile);
-            String deps = prop.getProperty("camel.jbang.dependencies");
-            if (deps != null) {
+            String deps = RuntimeUtil.getDependencies(prop);
+            if (!deps.isBlank()) {
                 for (String d : deps.split(",")) {
                     answer.add(d.trim());
                 }
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 c3941c6822d..a8cf18110dc 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
@@ -354,6 +354,11 @@ class ExportQuarkus extends Export {
 
         StringBuilder sb = new StringBuilder();
         for (MavenGav gav : gavs) {
+            //Special case, quarkus-pom.tmpl already have them included.
+            if ("camel-quarkus-core".equals(gav.getArtifactId()) || 
"camel-quarkus-platform-http".equals(gav.getArtifactId())
+                    || 
"camel-quarkus-microprofile-health".equals(gav.getArtifactId())) {
+                continue;
+            }
             sb.append("        <dependency>\n");
             sb.append("            
<groupId>").append(gav.getGroupId()).append("</groupId>\n");
             sb.append("            
<artifactId>").append(gav.getArtifactId()).append("</artifactId>\n");
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 af75380840e..d0125ec5ef6 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
@@ -342,15 +342,15 @@ class Run extends CamelCommand {
         writeSetting(main, profileProperties, "camel.jbang.console", console ? 
"true" : "false");
         writeSetting(main, profileProperties, 
"camel.main.routesCompileDirectory", WORK_DIR);
         // merge existing dependencies with --deps
-        String dep = profileProperties != null ? 
profileProperties.getProperty("camel.jbang.dependencies") : null;
-        if (dep == null) {
-            dep = dependencies;
-        } else if (dependencies != null && !dependencies.equals(dep)) {
-            dep += "," + dependencies;
-        }
-        if (dep != null) {
-            main.addInitialProperty("camel.jbang.dependencies", dep);
-            writeSettings("camel.jbang.dependencies", dep);
+        String deps = RuntimeUtil.getDependencies(profileProperties);
+        if (deps.isBlank()) {
+            deps = dependencies != null ? dependencies : "";
+        } else if (dependencies != null && !dependencies.equals(deps)) {
+            deps += "," + dependencies;
+        }
+        if (!deps.isBlank()) {
+            main.addInitialProperty("camel.jbang.dependencies", deps);
+            writeSettings("camel.jbang.dependencies", deps);
         }
 
         // command line arguments
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 d496de8a0e0..edd832c98f8 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
@@ -83,4 +83,20 @@ public final class RuntimeUtil {
         }
     }
 
+    public static String getDependencies(Properties properties) {
+        String deps = properties != null ? 
properties.getProperty("camel.jbang.dependencies") : null;
+        if (deps != null) {
+            deps = deps.trim();
+            if (deps.length() > 0 && deps.charAt(0) == ',') {
+                deps = deps.substring(1);
+            }
+            if (deps.length() > 0 && deps.charAt(deps.length() - 1) == ',') {
+                deps = deps.substring(0, deps.lastIndexOf(","));
+            }
+        } else {
+            deps = "";
+        }
+        return deps;
+    }
+
 }

Reply via email to