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

luigidemasi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-kit.git

commit 065448c191f21f21b5c17f2c7c20b0598a142c31
Author: Jinal Sarvaiya <[email protected]>
AuthorDate: Mon Nov 9 09:32:11 2026 +0000

    fix #99: scan raw config for substitutions, platform-specific managed dir
---
 .../camel/kit/generator/OpenCodeGenerator.java     | 11 ++++---
 .../camel/kit/generator/OpenCodeGeneratorTest.java | 35 +++++++++++++---------
 2 files changed, 28 insertions(+), 18 deletions(-)

diff --git 
a/kit/camel-kit-core/src/main/java/org/apache/camel/kit/generator/OpenCodeGenerator.java
 
b/kit/camel-kit-core/src/main/java/org/apache/camel/kit/generator/OpenCodeGenerator.java
index 5c8a6ac4..2d218e98 100644
--- 
a/kit/camel-kit-core/src/main/java/org/apache/camel/kit/generator/OpenCodeGenerator.java
+++ 
b/kit/camel-kit-core/src/main/java/org/apache/camel/kit/generator/OpenCodeGenerator.java
@@ -119,7 +119,7 @@ public class OpenCodeGenerator extends DefaultGenerator {
     private static boolean collectFromFileWithSubstitutionCheck(Path 
configFile, Set<String> names)
             throws IOException {
         String rawContent = Files.readString(configFile);
-        if (rawContent.startsWith("")) {
+        if (rawContent.startsWith("\uFEFF")) {
             rawContent = rawContent.substring(1);
         }
         boolean hasSubstitution = 
SUBSTITUTION_PATTERN.matcher(rawContent).find();
@@ -229,12 +229,15 @@ public class OpenCodeGenerator extends DefaultGenerator {
     }
 
     Path managedConfigDir() {
-        String os = System.getProperty("os.name", "").toLowerCase(Locale.ROOT);
+        return managedConfigDirForOs(System.getProperty("os.name", ""));
+    }
+
+    static Path managedConfigDirForOs(String osName) {
+        String os = osName.toLowerCase(Locale.ROOT);
         if (os.contains("mac") || os.contains("darwin")) {
             return Path.of("/Library/Application Support/opencode");
         } else if (os.contains("win")) {
-            String programData = System.getenv("ProgramData");
-            return Path.of(programData != null ? programData : 
"C:\\ProgramData", "opencode");
+            return Path.of("C:\\ProgramData", "opencode");
         }
         return Path.of("/etc/opencode");
     }
diff --git 
a/kit/camel-kit-core/src/test/java/org/apache/camel/kit/generator/OpenCodeGeneratorTest.java
 
b/kit/camel-kit-core/src/test/java/org/apache/camel/kit/generator/OpenCodeGeneratorTest.java
index b19b9df0..39712de0 100644
--- 
a/kit/camel-kit-core/src/test/java/org/apache/camel/kit/generator/OpenCodeGeneratorTest.java
+++ 
b/kit/camel-kit-core/src/test/java/org/apache/camel/kit/generator/OpenCodeGeneratorTest.java
@@ -1481,19 +1481,26 @@ class OpenCodeGeneratorTest {
     }
 
     @Test
-    void managedConfigDirIsPlatformSpecific() {
-        OpenCodeGenerator gen = new OpenCodeGenerator();
-        Path dir = gen.managedConfigDir();
-        String os = System.getProperty("os.name", 
"").toLowerCase(java.util.Locale.ROOT);
-        if (os.contains("mac") || os.contains("darwin")) {
-            assertEquals(Path.of("/Library/Application Support/opencode"), dir,
-                    "macOS managed dir must use /Library/Application 
Support/opencode");
-        } else if (os.contains("win")) {
-            assertTrue(dir.toString().endsWith("opencode"),
-                    "Windows managed dir must end with opencode");
-        } else {
-            assertEquals(Path.of("/etc/opencode"), dir,
-                    "Linux managed dir must use /etc/opencode");
-        }
+    void managedConfigDirSelectsLinuxPath() {
+        assertEquals(Path.of("/etc/opencode"),
+                OpenCodeGenerator.managedConfigDirForOs("Linux"),
+                "Linux managed dir must use /etc/opencode");
+    }
+
+    @Test
+    void managedConfigDirSelectsMacOsPath() {
+        assertEquals(Path.of("/Library/Application Support/opencode"),
+                OpenCodeGenerator.managedConfigDirForOs("Mac OS X"),
+                "macOS managed dir must use /Library/Application 
Support/opencode");
+        assertEquals(Path.of("/Library/Application Support/opencode"),
+                OpenCodeGenerator.managedConfigDirForOs("Darwin"),
+                "Darwin managed dir must use /Library/Application 
Support/opencode");
+    }
+
+    @Test
+    void managedConfigDirSelectsWindowsPath() {
+        assertEquals(Path.of("C:\\ProgramData", "opencode"),
+                OpenCodeGenerator.managedConfigDirForOs("Windows 10"),
+                "Windows managed dir must use ProgramData\\opencode");
     }
 }

Reply via email to