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/12/04 19:10:47 UTC

(camel) branch main updated: CAMEL-20186: camel-jbang - dependency list to output in jbang style.

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 eccc0d6296a CAMEL-20186: camel-jbang - dependency list to output in jbang style.
eccc0d6296a is described below

commit eccc0d6296ace8b8323853c80d46729c105fb779
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Dec 4 20:10:32 2023 +0100

    CAMEL-20186: camel-jbang - dependency list to output in jbang style.
---
 .../dsl/jbang/core/commands/DependencyCopy.java     |  2 +-
 .../dsl/jbang/core/commands/DependencyList.java     | 21 ++++++++++++++++-----
 2 files changed, 17 insertions(+), 6 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 57f60553f09..e27ded4c1ff 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
@@ -66,7 +66,7 @@ public class DependencyCopy extends DependencyList {
     }
 
     @Override
-    protected void outputGav(MavenGav gav) {
+    protected void outputGav(MavenGav gav, int index) {
         try {
             List<MavenArtifact> artifacts = getDownloader().resolveArtifacts(
                     List.of(gav.toString()), Set.of(), true, gav.getVersion().contains("SNAPSHOT"));
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 a8d4512edcd..919c3eadd10 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
@@ -41,7 +41,7 @@ public class DependencyList extends Export {
 
     protected static final String EXPORT_DIR = ".camel-jbang/export";
 
-    @CommandLine.Option(names = { "--output" }, description = "Output format (gav or maven)", defaultValue = "gav")
+    @CommandLine.Option(names = { "--output" }, description = "Output format (gav, maven, jbang)", defaultValue = "gav")
     protected String output;
 
     public DependencyList(CamelJBangMain main) {
@@ -56,7 +56,7 @@ public class DependencyList extends Export {
 
     @Override
     protected Integer export() throws Exception {
-        if (!"gav".equals(output) && !"maven".equals(output)) {
+        if (!"gav".equals(output) && !"maven".equals(output) && !"jbang".equals(output)) {
             System.err.println("--output must be either gav or maven, was: " + output);
             return 1;
         }
@@ -143,8 +143,10 @@ public class DependencyList extends Export {
                 }
                 // sort GAVs
                 gavs.sort(mavenGavComparator());
+                int i = 0;
                 for (MavenGav gav : gavs) {
-                    outputGav(gav);
+                    outputGav(gav, i);
+                    i++;
                 }
             }
             // cleanup dir after complete
@@ -154,15 +156,24 @@ public class DependencyList extends Export {
         return answer;
     }
 
-    protected void outputGav(MavenGav gav) {
+    protected void outputGav(MavenGav gav, int index) {
         if ("gav".equals(output)) {
-            System.out.println(gav.toString());
+            System.out.println(gav);
         } else if ("maven".equals(output)) {
             System.out.println("<dependency>");
             System.out.printf("    <groupId>%s</groupId>%n", gav.getGroupId());
             System.out.printf("    <artifactId>%s</artifactId>%n", gav.getArtifactId());
             System.out.printf("    <version>%s</version>%n", gav.getVersion());
             System.out.println("</dependency>");
+        } else if ("jbang".equals(output)) {
+            if (index == 0) {
+                System.out.println("//DEPS org.apache.camel:camel-bom:" + gav.getVersion() + "@pom");
+            }
+            if (gav.getGroupId().equals("org.apache.camel")) {
+                // jbang has version in @pom so we should remove this
+                gav.setVersion(null);
+            }
+            System.out.println("//DEPS " + gav);
         }
     }