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 3633ff1bb8390622dc582fdfa475a7aa334a8270 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Dec 14 19:04:13 2020 +0100 CAMEL-15946: Fix endpoint and component dsl to output source with valid javadoc that needs to be XML escaped. --- .../dsl/component/ComponentDslBuilderFactoryGenerator.java | 5 ++++- .../dsl/component/ComponentDslInnerBuilderGenerator.java | 11 +++++++---- .../dsl/component/ComponentsBuilderFactoryGenerator.java | 6 +++++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentDslBuilderFactoryGenerator.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentDslBuilderFactoryGenerator.java index 6640ba1..05d22d3 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentDslBuilderFactoryGenerator.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentDslBuilderFactoryGenerator.java @@ -138,6 +138,9 @@ public final class ComponentDslBuilderFactoryGenerator { method.addAnnotation(Deprecated.class); } - method.getJavaDoc().setFullText(DslHelper.getMainDescriptionWithoutPathOptions(componentModel)); + String doc = DslHelper.getMainDescriptionWithoutPathOptions(componentModel); + // must xml encode description as in some rare cases it contains & chars which is invalid javadoc + doc = JavadocHelper.xmlEncode(doc); + method.getJavaDoc().setText(doc); } } diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentDslInnerBuilderGenerator.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentDslInnerBuilderGenerator.java index 5271019..dbb3db1 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentDslInnerBuilderGenerator.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentDslInnerBuilderGenerator.java @@ -18,6 +18,7 @@ package org.apache.camel.maven.packaging.dsl.component; import org.apache.camel.maven.packaging.dsl.DslHelper; import org.apache.camel.tooling.model.ComponentModel; +import org.apache.camel.tooling.util.JavadocHelper; import org.apache.camel.tooling.util.srcgen.JavaClass; import org.apache.camel.tooling.util.srcgen.Method; import org.apache.commons.lang3.StringUtils; @@ -81,24 +82,26 @@ public final class ComponentDslInnerBuilderGenerator { if (componentOptionModel.isDeprecated()) { method.addAnnotation(Deprecated.class); } - method.getJavaDoc().setFullText(generateOptionDescription(componentOptionModel)); + method.getJavaDoc().setText(generateOptionDescription(componentOptionModel)); }); } private String generateOptionDescription(final ComponentModel.ComponentOptionModel componentOptionModel) { - String desc = componentOptionModel.getDescription(); + String desc = JavadocHelper.xmlEncode(componentOptionModel.getDescription()); if (!desc.endsWith(".")) { desc += "."; } desc += "\n"; - desc += "\nThe option is a: <code>" + componentOptionModel.getJavaType() + "</code> type."; + desc += "\nThe option is a: <code>" + JavadocHelper.xmlEncode(componentOptionModel.getJavaType()) + "</code> type."; desc += "\n"; if ("parameter".equals(componentOptionModel.getKind()) && componentOptionModel.isRequired()) { desc += "\nRequired: true"; } // include default value (if any) if (componentOptionModel.getDefaultValue() != null) { - desc += "\nDefault: " + componentOptionModel.getDefaultValue(); + // must xml encode description as in some rare cases it contains & chars which is invalid javadoc + String text = JavadocHelper.xmlEncode(componentOptionModel.getDefaultValue().toString()); + desc += "\nDefault: " + text; } desc += "\nGroup: " + componentOptionModel.getGroup(); diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentsBuilderFactoryGenerator.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentsBuilderFactoryGenerator.java index 64ef599..f420e3d 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentsBuilderFactoryGenerator.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentsBuilderFactoryGenerator.java @@ -25,6 +25,7 @@ import org.apache.camel.maven.packaging.AbstractGeneratorMojo; import org.apache.camel.maven.packaging.ComponentDslMojo; import org.apache.camel.maven.packaging.dsl.DslHelper; import org.apache.camel.tooling.model.ComponentModel; +import org.apache.camel.tooling.util.JavadocHelper; import org.apache.camel.tooling.util.srcgen.JavaClass; import org.apache.camel.tooling.util.srcgen.Method; @@ -121,7 +122,10 @@ public final class ComponentsBuilderFactoryGenerator { componentEntryMethod.addAnnotation(Deprecated.class); } - componentEntryMethod.getJavaDoc().setFullText(DslHelper.getMainDescriptionWithoutPathOptions(componentModel)); + String doc = DslHelper.getMainDescriptionWithoutPathOptions(componentModel); + // must xml encode description as in some rare cases it contains & chars which is invalid javadoc + doc = JavadocHelper.xmlEncode(doc); + componentEntryMethod.getJavaDoc().setText(doc); }); } }