This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-3.7.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit 4da620d12b4099355d238577cdf7370eb37ece4f Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Dec 14 16:52:52 2020 +0100 CAMEL-15946: Fix endpoint dsl to output default value as valid javadoc --- .../org/apache/camel/tooling/util/JavadocHelper.java | 19 +++++++++++++++++++ .../apache/camel/maven/packaging/EndpointDslMojo.java | 5 ++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/JavadocHelper.java b/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/JavadocHelper.java index de0ac0c..9a89dcf 100644 --- a/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/JavadocHelper.java +++ b/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/JavadocHelper.java @@ -118,4 +118,23 @@ public final class JavadocHelper { s = s.replaceAll("\\\\(http:|https:)", "$1"); return s.trim(); } + + /** + * Encodes the text into safe XML by replacing < > and & with XML tokens + * + * @param text the text + * @return the encoded text + */ + public static String xmlEncode(String text) { + if (text == null) { + return ""; + } + // must replace amp first, so we dont replace < to amp later + text = text.replace("&", "&"); + text = text.replace("\"", """); + text = text.replace("<", "<"); + text = text.replace(">", ">"); + return text; + } + } diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java index 8ea9846..512806c 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java @@ -48,6 +48,7 @@ import org.apache.camel.spi.UriPath; import org.apache.camel.tooling.model.ComponentModel; import org.apache.camel.tooling.model.ComponentModel.EndpointOptionModel; import org.apache.camel.tooling.model.JsonMapper; +import org.apache.camel.tooling.util.JavadocHelper; import org.apache.camel.tooling.util.PackageHelper; import org.apache.camel.tooling.util.Strings; import org.apache.camel.tooling.util.srcgen.GenericType; @@ -466,7 +467,9 @@ public class EndpointDslMojo extends AbstractGeneratorMojo { } // include default value (if any) if (option.getDefaultValue() != null) { - baseDesc += "\nDefault: " + option.getDefaultValue(); + // must xml encode default value so its valid as javadoc + String value = JavadocHelper.xmlEncode(option.getDefaultValue().toString()); + baseDesc += "\nDefault: " + value; } baseDesc += "\nGroup: " + option.getGroup(); }