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:36 UTC

[camel] branch main 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 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 1587657e25f CAMEL-18690: camel-jbang - export package name with special symbols
1587657e25f is described below

commit 1587657e25f287be82610a09f9b4d72bd7cf4aaf
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 c5529ce532c..ac13cdb0c0a 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 769b24b2f69..2a0fc3495ef 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
@@ -70,7 +70,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 078032b0c15..5c3d94aff34 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
@@ -90,7 +90,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 694bd5e5583..c65bbe34f67 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
@@ -78,7 +78,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");