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/04/11 13:52:05 UTC

[camel] branch main updated (62be8dd9950 -> 4f0c2fb2d05)

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 62be8dd9950 (chores) camel-jms: disabled flaky tests on GH
     new f9701e34bd6 CAMEL-19108: camel-jbang - Export to support local lib JAR via systemPath in Maven pom.xml
     new 4f0c2fb2d05 camel-jbang - Fix jbang export for quarkus for native settings in application.properties

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:
 .../dsl/jbang/core/commands/ExportBaseCommand.java | 46 ++++++++++++++++++++++
 .../dsl/jbang/core/commands/ExportCamelMain.java   | 12 +++++-
 .../dsl/jbang/core/commands/ExportQuarkus.java     | 12 +++++-
 .../dsl/jbang/core/commands/ExportSpringBoot.java  | 10 ++++-
 4 files changed, 76 insertions(+), 4 deletions(-)


[camel] 02/02: camel-jbang - Fix jbang export for quarkus for native settings in application.properties

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 4f0c2fb2d05e3b616e81691023209a4f087cc527
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Apr 11 15:51:46 2023 +0200

    camel-jbang - Fix jbang export for quarkus for native settings in application.properties
---
 .../java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java    | 2 ++
 1 file changed, 2 insertions(+)

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 3db8a35fc0d..af584332a3d 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
@@ -149,6 +149,7 @@ class ExportQuarkus extends Export {
 
             if ("camel.main.routesIncludePattern".equals(k)) {
                 v = Arrays.stream(v.split(","))
+                        .filter(d -> !d.endsWith(".java")) // skip .java as they are in the src/main/java folder
                         .map(ExportQuarkus::removeScheme) // remove scheme and routes are in camel sub-folder
                         .map(s -> "camel/" + s)
                         .collect(Collectors.joining(","));
@@ -157,6 +158,7 @@ class ExportQuarkus extends Export {
             // extra classpath files
             if ("camel.jbang.classpathFiles".equals(k)) {
                 v = Arrays.stream(v.split(","))
+                        .filter(d -> !d.endsWith(".jar")) // skip local lib JARs
                         .map(ExportQuarkus::removeScheme) // remove scheme
                         .collect(Collectors.joining(","));
                 sj2.add(v);


[camel] 01/02: CAMEL-19108: camel-jbang - Export to support local lib JAR via systemPath in Maven pom.xml

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 f9701e34bd6d6874e9bab23f9eb267a5befef2bb
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Apr 11 15:43:53 2023 +0200

    CAMEL-19108: camel-jbang - Export to support local lib JAR via systemPath in Maven pom.xml
---
 .../dsl/jbang/core/commands/ExportBaseCommand.java | 46 ++++++++++++++++++++++
 .../dsl/jbang/core/commands/ExportCamelMain.java   | 12 +++++-
 .../dsl/jbang/core/commands/ExportQuarkus.java     | 10 ++++-
 .../dsl/jbang/core/commands/ExportSpringBoot.java  | 10 ++++-
 4 files changed, 74 insertions(+), 4 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 5fec67896f1..a7aed96deea 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
@@ -290,6 +290,14 @@ abstract class ExportBaseCommand extends CamelCommand {
                         answer.add("org.apache.camel.kamelets:camel-kamelets:" + kameletsVersion);
                     }
                 }
+            } else if (line.startsWith("camel.jbang.classpathFiles")) {
+                String deps = StringHelper.after(line, "camel.jbang.classpathFiles=");
+                for (String d : deps.split(",")) {
+                    // special to include local JARs in export lib folder
+                    if (d.endsWith(".jar")) {
+                        answer.add("lib:" + d.trim());
+                    }
+                }
             } else if (line.startsWith("camel.main.routesIncludePattern=")) {
                 String routes = StringHelper.after(line, "camel.main.routesIncludePattern=");
                 for (String r : routes.split(",")) {
@@ -646,4 +654,42 @@ abstract class ExportBaseCommand extends CamelCommand {
         return matcher.find() ? matcher.group(1) : null;
     }
 
+    protected static MavenGav parseMavenGav(String dep) {
+        MavenGav gav;
+        if (dep.startsWith("lib:")) {
+            // lib:commons-lang3-3.12.0.jar
+            String n = dep.substring(4);
+            if (n.endsWith(".jar")) {
+                n = n.substring(0, n.length() - 4);
+            }
+            String v = "1.0";
+            String a = n;
+            int pos = n.lastIndexOf("-");
+            if (pos != -1) {
+                a = n.substring(0, pos);
+                v = n.substring(pos + 1);
+            }
+            gav = new MavenGav();
+            gav.setGroupId("custom");
+            gav.setArtifactId(a);
+            gav.setVersion(v);
+            gav.setPackaging("lib");
+        } else {
+            gav = MavenGav.parseGav(dep);
+        }
+        return gav;
+    }
+
+    protected void copyLocalLibDependencies(Set<String> deps) throws Exception {
+        for (String d : deps) {
+            if (d.startsWith("lib:")) {
+                File libDir = new File(BUILD_DIR, "lib");
+                libDir.mkdirs();
+                String n = d.substring(4);
+                File source = new File(n);
+                File target = new File(libDir, n);
+                safeCopy(source, target, true);
+            }
+        }
+    }
 }
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 ea1e5b1e603..a62ee79ce46 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
@@ -109,6 +109,8 @@ class ExportCamelMain extends Export {
         createMainClassSource(srcJavaDir, packageName, mainClassname);
         // gather dependencies
         Set<String> deps = resolveDependencies(settings, profile);
+        // copy local lib JARs
+        copyLocalLibDependencies(deps);
         if ("maven".equals(buildTool)) {
             createMavenPom(settings, new File(BUILD_DIR, "pom.xml"), deps, packageName);
             if (mavenWrapper) {
@@ -157,7 +159,7 @@ class ExportCamelMain extends Export {
 
         List<MavenGav> gavs = new ArrayList<>();
         for (String dep : deps) {
-            MavenGav gav = MavenGav.parseGav(dep);
+            MavenGav gav = parseMavenGav(dep);
             String gid = gav.getGroupId();
             if ("org.apache.camel".equals(gid)) {
                 // uses BOM so version should not be included
@@ -177,8 +179,14 @@ class ExportCamelMain extends Export {
             if (gav.getVersion() != null) {
                 sb.append("            <version>").append(gav.getVersion()).append("</version>\n");
             }
-            // special for camel-kamelets-utils
+            // special for lib JARs
+            if ("lib".equals(gav.getPackaging())) {
+                sb.append("            <scope>system</scope>\n");
+                sb.append("            <systemPath>\\$\\{project.basedir}/lib/").append(gav.getArtifactId()).append("-")
+                        .append(gav.getVersion()).append(".jar</systemPath>\n");
+            }
             if ("camel-kamelets-utils".equals(gav.getArtifactId())) {
+                // special for camel-kamelets-utils
                 sb.append("            <exclusions>\n");
                 sb.append("                <exclusion>\n");
                 sb.append("                    <groupId>org.apache.camel</groupId>\n");
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 348f2e0d6c6..3db8a35fc0d 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
@@ -111,6 +111,8 @@ class ExportQuarkus extends Export {
         copyDockerFiles();
         // gather dependencies
         Set<String> deps = resolveDependencies(settings, profile);
+        // copy local lib JARs
+        copyLocalLibDependencies(deps);
         if ("maven".equals(buildTool)) {
             createMavenPom(settings, new File(BUILD_DIR, "pom.xml"), deps);
             if (mavenWrapper) {
@@ -363,7 +365,7 @@ class ExportQuarkus extends Export {
 
         List<MavenGav> gavs = new ArrayList<>();
         for (String dep : deps) {
-            MavenGav gav = MavenGav.parseGav(dep);
+            MavenGav gav = parseMavenGav(dep);
             String gid = gav.getGroupId();
             String aid = gav.getArtifactId();
             // transform to camel-quarkus extension GAV
@@ -399,6 +401,12 @@ class ExportQuarkus extends Export {
             if (gav.getVersion() != null) {
                 sb.append("            <version>").append(gav.getVersion()).append("</version>\n");
             }
+            // special for lib JARs
+            if ("lib".equals(gav.getPackaging())) {
+                sb.append("            <scope>system</scope>\n");
+                sb.append("            <systemPath>\\$\\{project.basedir}/lib/").append(gav.getArtifactId()).append("-")
+                        .append(gav.getVersion()).append(".jar</systemPath>\n");
+            }
             // special for camel-kamelets-utils
             if ("camel-kamelets-utils".equals(gav.getArtifactId())) {
                 sb.append("            <exclusions>\n");
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
index 70a27e3ea7c..784452e07a2 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
@@ -110,6 +110,8 @@ class ExportSpringBoot extends Export {
         createMainClassSource(srcJavaDir, packageName, mainClassname);
         // gather dependencies
         Set<String> deps = resolveDependencies(settings, profile);
+        // copy local lib JARs
+        copyLocalLibDependencies(deps);
         if ("maven".equals(buildTool)) {
             createMavenPom(settings, profile, new File(BUILD_DIR, "pom.xml"), deps);
             if (mavenWrapper) {
@@ -204,7 +206,7 @@ class ExportSpringBoot extends Export {
 
         List<MavenGav> gavs = new ArrayList<>();
         for (String dep : deps) {
-            MavenGav gav = MavenGav.parseGav(dep);
+            MavenGav gav = parseMavenGav(dep);
             String gid = gav.getGroupId();
             String aid = gav.getArtifactId();
             String v = gav.getVersion();
@@ -236,6 +238,12 @@ class ExportSpringBoot extends Export {
             if (gav.getVersion() != null) {
                 sb.append("            <version>").append(gav.getVersion()).append("</version>\n");
             }
+            // special for lib JARs
+            if ("lib".equals(gav.getPackaging())) {
+                sb.append("            <scope>system</scope>\n");
+                sb.append("            <systemPath>\\$\\{project.basedir}/lib/").append(gav.getArtifactId()).append("-")
+                        .append(gav.getVersion()).append(".jar</systemPath>\n");
+            }
             // special for camel-kamelets-utils
             if ("camel-kamelets-utils".equals(gav.getArtifactId())) {
                 sb.append("            <exclusions>\n");