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 2022/06/14 07:48:27 UTC

[camel] branch main updated (d06ad7daf25 -> 6ba4a704c4a)

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

davsclaus pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


    from d06ad7daf25 camel-jbang - package uber-jar is deprecated in favour of export.
     new e223e03fa56 camel-jbang - Allow to use camel- shorthand for deps
     new 6ba4a704c4a camel-jbang - Add support for camel- dependency syntax. Better error message.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../modules/ROOT/pages/camel-jbang.adoc            | 28 ++++++++++++++++++++++
 .../main/CommandLineDependencyDownloader.java      |  2 +-
 .../java/org/apache/camel/main/DependencyUtil.java |  6 ++---
 .../main/java/org/apache/camel/main/MavenGav.java  | 27 ++++++++++++---------
 4 files changed, 48 insertions(+), 15 deletions(-)


[camel] 02/02: camel-jbang - Add support for camel- dependency syntax. Better error message.

Posted by da...@apache.org.
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 6ba4a704c4aacdf75c4850643d49a8ebca9d433b
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 14 09:48:15 2022 +0200

    camel-jbang - Add support for camel- dependency syntax. Better error message.
---
 .../java/org/apache/camel/main/DependencyUtil.java |  6 ++---
 .../main/java/org/apache/camel/main/MavenGav.java  | 27 +++++++++++++---------
 2 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyUtil.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyUtil.java
index 325edfb2ca2..9ba17846fd2 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyUtil.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyUtil.java
@@ -70,9 +70,9 @@ final class DependencyUtil {
                     })
                     .collect(Collectors.toList());
         } catch (ResolutionException e) {
-            String msg = "Cannot resolve dependencies from maven central";
-            if (customRepos != null) {
-                msg = "Cannot resolve dependencies from " + String.join(", ", customRepos);
+            String msg = "Cannot resolve dependencies in central (https://repo1.maven.org/maven2)";
+            if (customRepos != null && customRepos.size() > 0) {
+                msg = "Cannot resolve dependencies in " + String.join(", ", customRepos);
             }
             throw new DownloadException(msg, e);
         } catch (RuntimeException e) {
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/MavenGav.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/MavenGav.java
index 605e8c8e2aa..e9404452749 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/MavenGav.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/MavenGav.java
@@ -36,7 +36,7 @@ public final class MavenGav {
         if (gav.startsWith("camel:")) {
             answer.setGroupId("org.apache.camel");
             String a = gav.substring(6);
-            // users may mistakenly use quarkus extension but they should just refer to the vanilla component name
+            // users may mistakenly use quarkus extension, but they should just refer to the vanilla component name
             if (a.startsWith("camel-quarkus-")) {
                 a = "camel-" + a.substring(14);
             }
@@ -51,7 +51,7 @@ public final class MavenGav {
             // not really camel-k style but users may mistakenly use camel-file instead of camel:file
             answer.setGroupId("org.apache.camel");
             String a = gav;
-            // users may mistakenly use quarkus extension but they should just refer to the vanilla component name
+            // users may mistakenly use quarkus extension, but they should just refer to the vanilla component name
             if (a.startsWith("camel-quarkus-")) {
                 a = "camel-" + a.substring(14);
             }
@@ -61,21 +61,26 @@ public final class MavenGav {
             }
         } else if (gav.startsWith("org.apache.camel:")) {
             String[] parts = gav.split(":");
-            answer.setGroupId(parts[0]);
-            answer.setArtifactId(parts[1]);
-            if (parts.length == 3) {
+            if (parts.length > 0) {
+                answer.setGroupId(parts[0]);
+            }
+            if (parts.length > 1) {
+                answer.setArtifactId(parts[1]);
+            }
+            if (parts.length > 2) {
                 answer.setVersion(parts[2]);
             } else if (context != null) {
                 answer.setVersion(context.getVersion());
             }
-        } else if (gav.startsWith("github:")) {
-            // TODO: currently not supported
-            return answer;
         } else {
             String[] parts = gav.startsWith("mvn:") ? gav.substring(4).split(":") : gav.split(":");
-            answer.setGroupId(parts[0]);
-            answer.setArtifactId(parts[1]);
-            if (parts.length == 3) {
+            if (parts.length > 0) {
+                answer.setGroupId(parts[0]);
+            }
+            if (parts.length > 1) {
+                answer.setArtifactId(parts[1]);
+            }
+            if (parts.length > 2) {
                 answer.setVersion(parts[2]);
             }
         }


[camel] 01/02: camel-jbang - Allow to use camel- shorthand for deps

Posted by da...@apache.org.
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 e223e03fa56b2d472c5adf4bd69d3626dee418e4
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 14 09:39:31 2022 +0200

    camel-jbang - Allow to use camel- shorthand for deps
---
 .../modules/ROOT/pages/camel-jbang.adoc            | 28 ++++++++++++++++++++++
 .../main/CommandLineDependencyDownloader.java      |  2 +-
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
index cd73748b602..ee3cd5b57b7 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
@@ -174,6 +174,34 @@ If you do not want Camel JBang to download over the internet, you can turn this
 camel run foo.java --download=false
 ----
 
+=== Adding custom JARs
+
+Camel JBang will automatically detect dependencies for Camel components, languages, data formats, etc. that
+from its own release. This means you often do not have to specify which JARs to use.
+
+However, if you need to add 3rd-party custom JARs then you can specify these with `--deps` as CLI argument in Maven
+GAV syntax (`groupId:artifactId:version`), such as:
+
+[source,bash]
+----
+camel run foo.java --deps=com.foo:acme:1.0
+----
+
+In case you need to explicit add a Camel dependency you can use a shorthand syntax (starting with `camel:` or `camel-`)
+such as:
+
+[source,bash]
+----
+camel run foo.java --deps=camel-saxon
+----
+
+You can specify multiple dependencies separated by comma:
+
+[source,bash]
+----
+camel run foo.java --deps=camel-saxon,com.foo:acme:1.0
+----
+
 === Using 3rd-party Maven repositories
 
 Camel JBang will download from local repository first, and then online from Maven Central.
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CommandLineDependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CommandLineDependencyDownloader.java
index 8fbea1a351f..b30540b1acc 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CommandLineDependencyDownloader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CommandLineDependencyDownloader.java
@@ -53,7 +53,7 @@ public class CommandLineDependencyDownloader extends ServiceSupport implements C
         final List<String> gavs = new ArrayList<>();
         for (String dep : dependencies.split(",")) {
             String gav = dep;
-            if (dep.startsWith("camel:")) {
+            if (dep.startsWith("camel:") || dep.startsWith("camel-")) {
                 // it's a known camel component
                 gav = "org.apache.camel:camel-" + dep.substring(6) + ":" + camelContext.getVersion();
             }