This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-4.4.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.4.x by this push: new b296b289a64 CAMEL-20538: modeline for jbang DEPS should support style that jbang has, and if not found a better error message. b296b289a64 is described below commit b296b289a6461256581b237d3499d9d8bb67710e Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Mar 7 19:14:24 2024 +0100 CAMEL-20538: modeline for jbang DEPS should support style that jbang has, and if not found a better error message. --- .../camel/dsl/modeline/DefaultModelineParser.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/dsl/camel-dsl-modeline/src/main/java/org/apache/camel/dsl/modeline/DefaultModelineParser.java b/dsl/camel-dsl-modeline/src/main/java/org/apache/camel/dsl/modeline/DefaultModelineParser.java index 7d2569d93b4..fba0c68f6ca 100644 --- a/dsl/camel-dsl-modeline/src/main/java/org/apache/camel/dsl/modeline/DefaultModelineParser.java +++ b/dsl/camel-dsl-modeline/src/main/java/org/apache/camel/dsl/modeline/DefaultModelineParser.java @@ -106,6 +106,23 @@ public class DefaultModelineParser implements ModelineParser { // skip @pom continue; } + // in case DEPS uses jbang ${ } style that refer to JVM system properties + if (part.contains("${") && part.contains("}")) { + String target = StringHelper.between(part, "${", "}"); + String value = StringHelper.before(target, ":", target); + if (target.contains(":")) { + String def = StringHelper.after(target, ":"); + value = System.getProperty(value, def); + } else { + String found = System.getProperty(value); + if (found == null) { + throw new IllegalArgumentException( + "Cannot find JVM system property: " + value + " for dependency: " + part); + } + value = found; + } + part = part.replace("${" + target + "}", value); + } CamelContextCustomizer customizer = dep.parseTrait(resource, part); if (customizer != null) { answer.add(customizer);