This is an automated email from the ASF dual-hosted git repository. zregvart pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 54b06503acd8d29a673d1e713cba512f5e2361f0 Author: nayananga@acerubuntu18.04 <nayanangamuhandi...@gmail.com> AuthorDate: Thu Jul 25 01:53:55 2019 +0530 adding additional escaping logic to the Maven plugin that generates the Asciidoc files --- .../java/org/apache/camel/maven/packaging/MvelHelper.java | 5 ++++- .../org/apache/camel/maven/packaging/MvelHelperTest.java | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MvelHelper.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MvelHelper.java index fa02f40..1d3af19 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MvelHelper.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MvelHelper.java @@ -24,6 +24,8 @@ public final class MvelHelper { private static final Pattern DOLLAR_ESCAPE = Pattern.compile("\\$"); + private static final Pattern CURLY_BRACKET_ESCAPE = Pattern.compile("(\\{[a-zA-Z0-9]+?)\\}"); + private static final Pattern URL_ESCAPE = Pattern.compile("(?<!href=\")(http(:?s)?://|(:?s)?ftp(?:s)?)"); private MvelHelper() { @@ -36,7 +38,8 @@ public final class MvelHelper { } final String escapedDollars = DOLLAR_ESCAPE.matcher(raw).replaceAll("\\\\\\$"); - final String escapedUrls = URL_ESCAPE.matcher(escapedDollars).replaceAll("\\\\$1"); + final String escapedCurlyBrackets = CURLY_BRACKET_ESCAPE.matcher(escapedDollars).replaceAll("\\\\$1\\\\}"); + final String escapedUrls = URL_ESCAPE.matcher(escapedCurlyBrackets).replaceAll("\\\\$1"); return escapedUrls; } diff --git a/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/MvelHelperTest.java b/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/MvelHelperTest.java index 4626260..d3a76dc 100644 --- a/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/MvelHelperTest.java +++ b/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/MvelHelperTest.java @@ -42,6 +42,12 @@ public class MvelHelperTest { } @ParameterizedTest + @MethodSource("curlyBracketEscapeCases") + public void shouldcurlyBracket(final String given, final String expected) { + assertThat(MvelHelper.escape(given)).isEqualTo(expected); + } + + @ParameterizedTest @MethodSource("urlEscapeCases") public void shouldUrls(final String given, final String expected) { assertThat(MvelHelper.escape(given)).isEqualTo(expected); @@ -50,13 +56,18 @@ public class MvelHelperTest { static Stream<Arguments> dollarEscapeCases() { return Stream.of( arguments("$", "\\$"), - arguments("some ${expression} here", "some \\${expression} here")); + arguments("some ${expression} here", "some \\$\\{expression\\} here")); + } + + static Stream<Arguments> curlyBracketEscapeCases() { + return Stream.of( + arguments("some {expression} here", "some \\{expression\\} here")); } static Stream<Arguments> urlEscapeCases() { return Stream.of( arguments("http", "http"), - arguments("some ${expression} here", "some \\${expression} here"), + arguments("some ${expression} here", "some \\$\\{expression\\} here"), arguments("http://example.com", "\\http://example.com"), arguments("some http://example.com here", "some \\http://example.com here"), arguments("https://example.com", "\\https://example.com"),