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 2020/12/14 17:58:22 UTC

[camel] 02/06: CAMEL-15946: Fix endpoint dsl to output default value as valid javadoc

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 351569b4bf29fa819058709df59b967c31f561a7
Author: Claus Ibsen <cl...@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 &lt; to amp later
+        text = text.replace("&", "&amp;");
+        text = text.replace("\"", "&quot;");
+        text = text.replace("<", "&lt;");
+        text = text.replace(">", "&gt;");
+        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();
                 }