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/06 13:07:30 UTC

[camel] 04/04: CAMEL-18151: camel-jbang - Base command for export

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 <cl...@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);
     }
 
 }