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>