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/11/05 14:30:53 UTC

[camel] branch camel-3.18.x updated: CAMEL-18690: camel-jbang - export package name with special symbols

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-3.18.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-3.18.x by this push:
     new fc5c5e66e61 CAMEL-18690: camel-jbang - export package name with special symbols
fc5c5e66e61 is described below

commit fc5c5e66e6199a2c6b1ab2626826e4fa1374c441
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Nov 5 15:30:20 2022 +0100

    CAMEL-18690: camel-jbang - export package name with special symbols
---
 .../camel/dsl/jbang/core/commands/ExportBaseCommand.java    | 13 +++++++++++++
 .../camel/dsl/jbang/core/commands/ExportCamelMain.java      |  2 +-
 .../apache/camel/dsl/jbang/core/commands/ExportQuarkus.java |  2 +-
 .../camel/dsl/jbang/core/commands/ExportSpringBoot.java     |  2 +-
 4 files changed, 16 insertions(+), 3 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 bc7351a350f..862c996445f 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
@@ -325,6 +325,19 @@ abstract class ExportBaseCommand extends CamelCommand {
         // noop
     }
 
+    protected String exportPackageName(String groupId, String artifactId) {
+        // for package name it must be in lower-case and alpha/numeric
+        String s = groupId + "." + artifactId;
+        StringBuilder sb = new StringBuilder();
+        for (char ch : s.toCharArray()) {
+            if (ch == '.' || Character.isAlphabetic(ch) || Character.isDigit(ch)) {
+                ch = Character.toLowerCase(ch);
+                sb.append(ch);
+            }
+        }
+        return sb.toString();
+    }
+
     protected void copySettingsAndProfile(
             File settings, File profile, File targetDir,
             Function<Properties, Object> customize)
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 e7512cd8b85..37d3f656511 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
@@ -68,7 +68,7 @@ class ExportCamelMain extends Export {
         buildDir.mkdirs();
 
         // copy source files
-        String packageName = ids[0] + "." + ids[1];
+        String packageName = exportPackageName(ids[0], ids[1]);
         File srcJavaDir = new File(BUILD_DIR, "src/main/java/" + packageName.replace('.', '/'));
         srcJavaDir.mkdirs();
         File srcResourcesDir = new File(BUILD_DIR, "src/main/resources");
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 eaffe07dcb7..946ab483919 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
@@ -88,7 +88,7 @@ class ExportQuarkus extends Export {
         buildDir.mkdirs();
 
         // copy source files
-        String packageName = ids[0] + "." + ids[1];
+        String packageName = exportPackageName(ids[0], ids[1]);
         File srcJavaDir = new File(BUILD_DIR, "src/main/java/" + packageName.replace('.', '/'));
         srcJavaDir.mkdirs();
         File srcResourcesDir = new File(BUILD_DIR, "src/main/resources");
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 befcdf202fc..732177b8474 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
@@ -76,7 +76,7 @@ class ExportSpringBoot extends Export {
         buildDir.mkdirs();
 
         // copy source files
-        String packageName = ids[0] + "." + ids[1];
+        String packageName = exportPackageName(ids[0], ids[1]);
         File srcJavaDir = new File(BUILD_DIR, "src/main/java/" + packageName.replace('.', '/'));
         srcJavaDir.mkdirs();
         File srcResourcesDir = new File(BUILD_DIR, "src/main/resources");