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 877e6798b96fd2fbbfebb1b4b32ab5566d4d2226 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Jun 6 15:07:06 2022 +0200 CAMEL-18151: camel-jbang - Base command for export --- .../apache/camel/dsl/jbang/core/commands/BaseExport.java | 15 ++++++++------- .../camel/dsl/jbang/core/commands/ExportCamelMain.java | 7 ++++++- .../camel/dsl/jbang/core/commands/ExportQuarkus.java | 6 +++++- .../camel/dsl/jbang/core/commands/ExportSpringBoot.java | 4 ++-- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java index 2d3568f7a8c..f86bc820cfa 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java @@ -12,8 +12,10 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.Set; import java.util.TreeSet; +import java.util.function.Function; import java.util.stream.Collectors; import org.apache.camel.main.MavenGav; @@ -165,7 +167,8 @@ abstract class BaseExport extends CamelCommand { // noop } - protected void copySettingsAndProfile(File settings, File profile, File targetDir, String packageName) throws Exception { + protected void copySettingsAndProfile(File settings, File profile, File targetDir, Function<Properties, Object> customize) + throws Exception { OrderedProperties prop = new OrderedProperties(); prop.load(new FileInputStream(settings)); OrderedProperties prop2 = new OrderedProperties(); @@ -181,10 +184,8 @@ abstract class BaseExport extends CamelCommand { } } - // should have package name set for package scan - if (packageName != null && !prop2.containsKey("camel.main.basePackageScan") - && !prop2.containsKey("camel.main.base-package-scan")) { - prop2.put("camel.main.basePackageScan", packageName); + if (customize != null) { + customize.apply(prop2); } FileOutputStream fos = new FileOutputStream(new File(targetDir, "application.properties"), false); @@ -207,7 +208,7 @@ abstract class BaseExport extends CamelCommand { .collect(Collectors.joining(",")); } if (!v.isBlank()) { - String line = adjustApplicationProperties(k, v); + String line = applicationPropertyLine(k, v); fos.write(line.getBytes(StandardCharsets.UTF_8)); fos.write("\n".getBytes(StandardCharsets.UTF_8)); } @@ -215,7 +216,7 @@ abstract class BaseExport extends CamelCommand { IOHelper.close(fos); } - protected String adjustApplicationProperties(String key, String value) { + protected String applicationPropertyLine(String key, String value) { return key + "=" + value; } 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 9930a6345c6..8dfc162766d 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 @@ -81,7 +81,12 @@ class ExportCamelMain extends BaseExport { srcCamelResourcesDir.mkdirs(); copySourceFiles(settings, profile, srcJavaDir, srcResourcesDir, srcCamelResourcesDir, packageName); // copy from settings to profile - copySettingsAndProfile(settings, profile, srcResourcesDir, packageName); + copySettingsAndProfile(settings, profile, srcResourcesDir, prop -> { + if (!prop.containsKey("camel.main.basePackageScan") && !prop.containsKey("camel.main.base-package-scan")) { + prop.put("camel.main.basePackageScan", packageName); + } + return prop; + }); // create main class createMainClassSource(srcJavaDir, packageName, mainClassname); // gather dependencies 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 0f43e58acb0..3e0f5b88cbe 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 @@ -78,7 +78,11 @@ class ExportQuarkus extends BaseExport { srcCamelResourcesDir.mkdirs(); copySourceFiles(settings, profile, srcJavaDir, srcResourcesDir, srcCamelResourcesDir, packageName); // copy from settings to profile - copySettingsAndProfile(settings, profile, srcResourcesDir, null); + copySettingsAndProfile(settings, profile, srcResourcesDir, prop -> { + // turn off modeline as it is not supported in quarkus + prop.remove("camel.main.modeline"); + return prop; + }); // gather dependencies Set<String> deps = resolveDependencies(settings); // create pom 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 b61735dfc3b..262a2e2ac40 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 @@ -191,12 +191,12 @@ class ExportSpringBoot extends BaseExport { } @Override - protected String adjustApplicationProperties(String key, String value) { + protected String applicationPropertyLine(String key, String value) { // camel.main.x should be renamed to camel.springboot.x if (key.startsWith("camel.main.")) { key = "camel.springboot." + key.substring(11); } - return super.adjustApplicationProperties(key, value); + return super.applicationPropertyLine(key, value); } }