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 2b5d2e530c5 CAMEL-18151: camel-jbang - export add support for 
3rd-party maven repos.
2b5d2e530c5 is described below

commit 2b5d2e530c5d2b1a7d746da0d242a8b114c8a9cb
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Tue Jun 7 20:52:41 2022 +0200

    CAMEL-18151: camel-jbang - export add support for 3rd-party maven repos.
---
 .../dsl/jbang/core/commands/ExportCamelMain.java   | 25 ++++++++++++++++++++--
 .../dsl/jbang/core/commands/ExportQuarkus.java     | 25 ++++++++++++++++++++--
 .../dsl/jbang/core/commands/ExportSpringBoot.java  | 25 ++++++++++++++++++++--
 .../src/main/resources/templates/main-pom.tmpl     |  2 ++
 .../src/main/resources/templates/quarkus-pom.tmpl  |  2 ++
 .../main/resources/templates/spring-boot-pom.tmpl  |  3 ++-
 6 files changed, 75 insertions(+), 7 deletions(-)

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 8dfc162766d..c660863554d 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
@@ -17,6 +17,7 @@
 package org.apache.camel.dsl.jbang.core.commands;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.util.Set;
@@ -26,6 +27,7 @@ import org.apache.camel.catalog.DefaultCamelCatalog;
 import org.apache.camel.main.MavenGav;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.OrderedProperties;
 import org.apache.commons.io.FileUtils;
 import picocli.CommandLine;
 
@@ -92,7 +94,7 @@ class ExportCamelMain extends BaseExport {
         // gather dependencies
         Set<String> deps = resolveDependencies(settings);
         // create pom
-        createPom(new File(BUILD_DIR, "pom.xml"), deps, packageName);
+        createPom(settings, new File(BUILD_DIR, "pom.xml"), deps, packageName);
 
         if (exportDir.equals(".")) {
             // we export to current dir so prepare for this by cleaning up 
existing files
@@ -112,7 +114,7 @@ class ExportCamelMain extends BaseExport {
         return 0;
     }
 
-    private void createPom(File pom, Set<String> deps, String packageName) 
throws Exception {
+    private void createPom(File settings, File pom, Set<String> deps, String 
packageName) throws Exception {
         String[] ids = gav.split(":");
 
         InputStream is = 
ExportCamelMain.class.getClassLoader().getResourceAsStream("templates/main-pom.tmpl");
@@ -129,6 +131,25 @@ class ExportCamelMain extends BaseExport {
         context = context.replaceAll("\\{\\{ \\.CamelVersion }}", 
camelVersion);
         context = context.replaceAll("\\{\\{ \\.MainClassname }}", packageName 
+ "." + mainClassname);
 
+        OrderedProperties prop = new OrderedProperties();
+        prop.load(new FileInputStream(settings));
+        String repos = prop.getProperty("camel.jbang.repos");
+        if (repos == null) {
+            context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}", 
"");
+        } else {
+            int i = 1;
+            StringBuilder sb = new StringBuilder();
+            sb.append("    <repositories>\n");
+            for (String repo : repos.split(",")) {
+                sb.append("        <repository>\n");
+                sb.append("            
<id>custom").append(i++).append("</id>\n");
+                sb.append("            <url>").append(repo).append("</url>\n");
+                sb.append("        </repository>\n");
+            }
+            sb.append("    </repositories>\n");
+            context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}", 
sb.toString());
+        }
+
         StringBuilder sb = new StringBuilder();
         for (String dep : deps) {
             MavenGav gav = MavenGav.parseGav(null, dep);
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 3e0f5b88cbe..b2d69d6ce25 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
@@ -17,6 +17,7 @@
 package org.apache.camel.dsl.jbang.core.commands;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.util.Set;
@@ -24,6 +25,7 @@ import java.util.Set;
 import org.apache.camel.main.MavenGav;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.OrderedProperties;
 import org.apache.commons.io.FileUtils;
 import picocli.CommandLine;
 
@@ -86,7 +88,7 @@ class ExportQuarkus extends BaseExport {
         // gather dependencies
         Set<String> deps = resolveDependencies(settings);
         // create pom
-        createPom(new File(BUILD_DIR, "pom.xml"), deps);
+        createPom(settings, new File(BUILD_DIR, "pom.xml"), deps);
 
         if (exportDir.equals(".")) {
             // we export to current dir so prepare for this by cleaning up 
existing files
@@ -106,7 +108,7 @@ class ExportQuarkus extends BaseExport {
         return 0;
     }
 
-    private void createPom(File pom, Set<String> deps) throws Exception {
+    private void createPom(File settings, File pom, Set<String> deps) throws 
Exception {
         String[] ids = gav.split(":");
 
         InputStream is = 
ExportQuarkus.class.getClassLoader().getResourceAsStream("templates/quarkus-pom.tmpl");
@@ -119,6 +121,25 @@ class ExportQuarkus extends BaseExport {
         context = context.replaceAll("\\{\\{ \\.QuarkusVersion }}", 
quarkusVersion);
         context = context.replaceFirst("\\{\\{ \\.JavaVersion }}", 
javaVersion);
 
+        OrderedProperties prop = new OrderedProperties();
+        prop.load(new FileInputStream(settings));
+        String repos = prop.getProperty("camel.jbang.repos");
+        if (repos == null) {
+            context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}", 
"");
+        } else {
+            int i = 1;
+            StringBuilder sb = new StringBuilder();
+            sb.append("    <repositories>\n");
+            for (String repo : repos.split(",")) {
+                sb.append("        <repository>\n");
+                sb.append("            
<id>custom").append(i++).append("</id>\n");
+                sb.append("            <url>").append(repo).append("</url>\n");
+                sb.append("        </repository>\n");
+            }
+            sb.append("    </repositories>\n");
+            context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}", 
sb.toString());
+        }
+
         StringBuilder sb = new StringBuilder();
         for (String dep : deps) {
             MavenGav gav = MavenGav.parseGav(null, dep);
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 262a2e2ac40..0b9a4a8e153 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
@@ -17,6 +17,7 @@
 package org.apache.camel.dsl.jbang.core.commands;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
@@ -27,6 +28,7 @@ import org.apache.camel.catalog.DefaultCamelCatalog;
 import org.apache.camel.main.MavenGav;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.OrderedProperties;
 import org.apache.commons.io.FileUtils;
 import picocli.CommandLine;
 
@@ -92,7 +94,7 @@ class ExportSpringBoot extends BaseExport {
         // gather dependencies
         Set<String> deps = resolveDependencies(settings);
         // create pom
-        createPom(new File(BUILD_DIR, "pom.xml"), deps);
+        createPom(settings, new File(BUILD_DIR, "pom.xml"), deps);
 
         if (exportDir.equals(".")) {
             // we export to current dir so prepare for this by cleaning up 
existing files
@@ -112,7 +114,7 @@ class ExportSpringBoot extends BaseExport {
         return 0;
     }
 
-    private void createPom(File pom, Set<String> deps) throws Exception {
+    private void createPom(File settings, File pom, Set<String> deps) throws 
Exception {
         String[] ids = gav.split(":");
 
         InputStream is = 
ExportSpringBoot.class.getClassLoader().getResourceAsStream("templates/spring-boot-pom.tmpl");
@@ -129,6 +131,25 @@ class ExportSpringBoot extends BaseExport {
         context = context.replaceFirst("\\{\\{ \\.JavaVersion }}", 
javaVersion);
         context = context.replaceFirst("\\{\\{ \\.CamelVersion }}", 
camelVersion);
 
+        OrderedProperties prop = new OrderedProperties();
+        prop.load(new FileInputStream(settings));
+        String repos = prop.getProperty("camel.jbang.repos");
+        if (repos == null) {
+            context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}", 
"");
+        } else {
+            int i = 1;
+            StringBuilder sb = new StringBuilder();
+            sb.append("    <repositories>\n");
+            for (String repo : repos.split(",")) {
+                sb.append("        <repository>\n");
+                sb.append("            
<id>custom").append(i++).append("</id>\n");
+                sb.append("            <url>").append(repo).append("</url>\n");
+                sb.append("        </repository>\n");
+            }
+            sb.append("    </repositories>\n");
+            context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}", 
sb.toString());
+        }
+
         StringBuilder sb = new StringBuilder();
         for (String dep : deps) {
             MavenGav gav = MavenGav.parseGav(null, dep);
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
index 0c08bbbb124..3fb11a91c87 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
@@ -24,6 +24,8 @@
         </dependencies>
     </dependencyManagement>
 
+{{ .MavenRepositories }}
+
     <dependencies>
 
         <dependency>
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-pom.tmpl
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-pom.tmpl
index dc780acc37b..f85db0bf222 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-pom.tmpl
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-pom.tmpl
@@ -39,6 +39,8 @@
         </dependencies>
     </dependencyManagement>
 
+{{ .MavenRepositories }}
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
index 3ba005dfac6..416556690b6 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
@@ -39,8 +39,9 @@
         </dependencies>
     </dependencyManagement>
 
-    <dependencies>
+{{ .MavenRepositories }}
 
+    <dependencies>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>

Reply via email to