[CAMEL-8381] Wraps documentation for easier read in raw file.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/785efef1 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/785efef1 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/785efef1 Branch: refs/heads/master Commit: 785efef16a2d87b9e07b4b6a49cf5a004ee77b01 Parents: cfab63a Author: nkukhar <kukha...@gmail.com> Authored: Sat Mar 7 18:08:15 2015 -0800 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sun Mar 8 08:51:38 2015 +0100 ---------------------------------------------------------------------- .../pom.xml | 5 +++ .../java/org/apache/camel/maven/Constants.java | 6 ++-- .../camel/maven/DocumentationEnricher.java | 37 ++++++++++++++++---- 3 files changed, 38 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/785efef1/tooling/maven/camel-eip-documentation-enricher-maven-plugin/pom.xml ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/pom.xml b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/pom.xml index 19574cc..68295ea 100644 --- a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/pom.xml +++ b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/pom.xml @@ -68,6 +68,11 @@ <artifactId>maven-artifact</artifactId> <version>2.2.1</version> </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>3.3.2</version> + </dependency> <!-- add some logging to the classpath --> <dependency> http://git-wip-us.apache.org/repos/asf/camel/blob/785efef1/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/Constants.java ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/Constants.java b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/Constants.java index 224e6a8..e6e3fbe 100644 --- a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/Constants.java +++ b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/Constants.java @@ -23,6 +23,8 @@ public final class Constants { // Camel core constants. public static final String PATH_TO_MODEL_DIR = "target/classes/org/apache/camel/model"; + public static final String DEFAULT_XML_INTEMSION = " "; + public static final int WRAP_LENGTH = 80; // XML constants. public static final String NAME_ATTRIBUTE_NAME = "name"; @@ -36,7 +38,5 @@ public final class Constants { public static final String DESCRIPTION_ATTRIBUTE_NAME = "description"; public static final String MODEL_ATTRIBUTE_NAME = "model"; - private Constants() { - } - + private Constants() {} } http://git-wip-us.apache.org/repos/asf/camel/blob/785efef1/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/DocumentationEnricher.java ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/DocumentationEnricher.java b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/DocumentationEnricher.java index 7aa1d86..c7054e6 100644 --- a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/DocumentationEnricher.java +++ b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/DocumentationEnricher.java @@ -16,16 +16,19 @@ */ package org.apache.camel.maven; -import java.io.File; -import java.io.IOException; -import java.util.List; -import java.util.Map; - +import org.apache.camel.util.JsonSchemaHelper; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.WordUtils; +import org.w3c.dom.CDATASection; import org.w3c.dom.Document; import org.w3c.dom.Element; +import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import org.apache.camel.util.JsonSchemaHelper; +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.Map; /** * Enriches xml document with documentation from json files. @@ -78,7 +81,8 @@ public class DocumentationEnricher { Element annotation = document.createElement(Constants.XS_ANNOTATION_ELEMENT_NAME); Element documentation = document.createElement(Constants.XS_DOCUMENTATION_ELEMENT_NAME); documentation.setAttribute("xml:lang", "en"); - documentation.setTextContent(textContent); + CDATASection cdataDocumentationText = document.createCDATASection(formatTextContent(item, textContent)); + documentation.appendChild(cdataDocumentationText); annotation.appendChild(documentation); if (item.getFirstChild() != null) { item.insertBefore(annotation, item.getFirstChild()); @@ -86,4 +90,23 @@ public class DocumentationEnricher { item.appendChild(annotation); } } + + private String formatTextContent(Element item, String textContent) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(System.lineSeparator()) + .append(WordUtils.wrap(textContent, Constants.WRAP_LENGTH)) + .append(System.lineSeparator()) + // Fix closing tag intention. + .append(StringUtils.repeat(Constants.DEFAULT_XML_INTEMSION, getNodeDepth(item))); + return stringBuilder.toString(); + } + + private int getNodeDepth(Node item) { + int depth = 1; + while (item.getParentNode() != null) { + depth++; + item = item.getParentNode(); + } + return depth; + } }