Repository: camel
Updated Branches:
  refs/heads/master c8b48821f -> 2acc97b5f


CAMEL-9842: Enrich camel-spring XSD with documentation for the non EIP nodes 
which was not documented before.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/2acc97b5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2acc97b5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2acc97b5

Branch: refs/heads/master
Commit: 2acc97b5fa6ecf373b276335592937c68a5e4229
Parents: c8b4882
Author: Claus Ibsen <davscl...@apache.org>
Authored: Thu Aug 11 12:46:59 2016 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Thu Aug 11 12:46:59 2016 +0200

----------------------------------------------------------------------
 .../maven/EipDocumentationEnricherMojo.java     | 40 ++++++++++++++------
 .../integration/EIPDocumentationMojoTest.java   |  2 +
 2 files changed, 31 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/2acc97b5/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/EipDocumentationEnricherMojo.java
----------------------------------------------------------------------
diff --git 
a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/EipDocumentationEnricherMojo.java
 
b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/EipDocumentationEnricherMojo.java
index d549a39..c2ab1bf 100644
--- 
a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/EipDocumentationEnricherMojo.java
+++ 
b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/EipDocumentationEnricherMojo.java
@@ -22,6 +22,8 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
 import javax.xml.transform.Transformer;
@@ -70,7 +72,13 @@ public class EipDocumentationEnricherMojo extends 
AbstractMojo {
     public File camelCoreDir;
 
     /**
-     * Path to camel core project root directory.
+     * Path to camel core xml project root directory.
+     */
+    @Parameter(defaultValue = 
"${project.build.directory}/../../../components/camel-core-xml")
+    public File camelCoreXmlDir;
+
+    /**
+     * Path to camel spring project root directory.
      */
     @Parameter(defaultValue = 
"${project.build.directory}/../../../components/camel-spring")
     public File camelSpringDir;
@@ -82,6 +90,12 @@ public class EipDocumentationEnricherMojo extends 
AbstractMojo {
     public String pathToModelDir;
 
     /**
+     * Sub path from camel core xml directory to model directory with 
generated json files for components.
+     */
+    @Parameter(defaultValue = "target/classes/org/apache/camel/core/xml")
+    public String pathToCoreXmlModelDir;
+
+    /**
      * Sub path from camel spring directory to model directory with generated 
json files for components.
      */
     @Parameter(defaultValue = "target/classes/org/apache/camel/spring")
@@ -95,8 +109,10 @@ public class EipDocumentationEnricherMojo extends 
AbstractMojo {
         validateExists(inputCamelSchemaFile, "inputCamelSchemaFile");
         validateIsFile(inputCamelSchemaFile, "inputCamelSchemaFile");
         validateExists(camelCoreDir, "camelCoreDir");
+        validateExists(camelCoreXmlDir, "camelCoreXmlDir");
         validateExists(camelSpringDir, "camelSpringDir");
         validateIsDirectory(camelCoreDir, "camelCoreDir");
+        validateIsDirectory(camelCoreXmlDir, "camelCoreXmlDir");
         validateIsDirectory(camelSpringDir, "camelSpringDir");
         try {
             runPlugin();
@@ -111,28 +127,31 @@ public class EipDocumentationEnricherMojo extends 
AbstractMojo {
         DomFinder domFinder = new DomFinder(document, xPath);
         DocumentationEnricher documentationEnricher = new 
DocumentationEnricher(document);
 
-        // include schema files from camel-core, and from camel-spring
+        // include schema files from camel-core, camel-corem-xml and from 
camel-spring
         File rootDir = new File(camelCoreDir, pathToModelDir);
         Map<String, File> jsonFiles = PackageHelper.findJsonFiles(rootDir);
-        File rootDir2 = new File(camelSpringDir, pathToSpringModelDir);
+        File rootDir2 = new File(camelCoreXmlDir, pathToCoreXmlModelDir);
         Map<String, File> jsonFiles2 = PackageHelper.findJsonFiles(rootDir2);
+        File rootDir3 = new File(camelSpringDir, pathToSpringModelDir);
+        Map<String, File> jsonFiles3 = PackageHelper.findJsonFiles(rootDir3);
         // merge the json files together
         jsonFiles.putAll(jsonFiles2);
+        jsonFiles.putAll(jsonFiles3);
 
         NodeList elementsAndTypes = domFinder.findElementsAndTypes();
         
documentationEnricher.enrichTopLevelElementsDocumentation(elementsAndTypes, 
jsonFiles);
         Map<String, String> typeToNameMap = 
buildTypeToNameMap(elementsAndTypes);
-        Set<String> injectedTypes = new HashSet<String>();
+        Set<String> injectedTypes = new LinkedHashSet<String>();
+
+        getLog().info("Found " + typeToNameMap.size() + " models to use when 
enriching the XSD schema");
 
         for (Map.Entry<String, String> entry : typeToNameMap.entrySet()) {
             String elementType = entry.getKey();
             String elementName = entry.getValue();
             if (jsonFileExistsForElement(jsonFiles, elementName)) {
-                injectAttributesDocumentation(domFinder,
-                        documentationEnricher,
-                        jsonFiles.get(elementName),
-                        elementType,
-                        injectedTypes);
+                getLog().debug("Enriching " + elementName);
+                File file = jsonFiles.get(elementName);
+                injectAttributesDocumentation(domFinder, 
documentationEnricher, file, elementType, injectedTypes);
             }
         }
 
@@ -170,7 +189,7 @@ public class EipDocumentationEnricherMojo extends 
AbstractMojo {
     }
 
     private Map<String, String> buildTypeToNameMap(NodeList elementsAndTypes) {
-        Map<String, String> typeToNameMap = new HashMap<String, String>();
+        Map<String, String> typeToNameMap = new LinkedHashMap<String, 
String>();
         for (int i = 0; i < elementsAndTypes.getLength(); i++) {
             Element item = (Element) elementsAndTypes.item(i);
             String name = item.getAttribute(Constants.NAME_ATTRIBUTE_NAME);
@@ -190,7 +209,6 @@ public class EipDocumentationEnricherMojo extends 
AbstractMojo {
         return baseType.replaceAll("tns:", "");
     }
 
-
     private void saveToFile(Document document, File outputFile, Transformer 
transformer) throws FileNotFoundException, TransformerException {
         StreamResult result = new StreamResult(new 
FileOutputStream(outputFile));
         DOMSource source = new DOMSource(document);

http://git-wip-us.apache.org/repos/asf/camel/blob/2acc97b5/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/test/java/org/apache/camel/maven/integration/EIPDocumentationMojoTest.java
----------------------------------------------------------------------
diff --git 
a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/test/java/org/apache/camel/maven/integration/EIPDocumentationMojoTest.java
 
b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/test/java/org/apache/camel/maven/integration/EIPDocumentationMojoTest.java
index ec837f7..0ec163d 100644
--- 
a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/test/java/org/apache/camel/maven/integration/EIPDocumentationMojoTest.java
+++ 
b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/test/java/org/apache/camel/maven/integration/EIPDocumentationMojoTest.java
@@ -49,9 +49,11 @@ public class EIPDocumentationMojoTest {
     @Before
     public void setUp() throws Exception {
         eipDocumentationEnricherMojo.camelCoreDir = 
ResourceUtils.getResourceAsFile("integration/camel-core-integration");
+        eipDocumentationEnricherMojo.camelCoreXmlDir = 
ResourceUtils.getResourceAsFile("integration/camel-core-integration");
         eipDocumentationEnricherMojo.camelSpringDir = 
ResourceUtils.getResourceAsFile("integration/camel-core-integration");
         eipDocumentationEnricherMojo.inputCamelSchemaFile = 
ResourceUtils.getResourceAsFile("integration/camel-spring.xsd");
         eipDocumentationEnricherMojo.pathToModelDir = 
"trgt/classes/org/apache/camel/model";
+        eipDocumentationEnricherMojo.pathToCoreXmlModelDir = 
"trgt/classes/org/apache/camel/model";
         eipDocumentationEnricherMojo.pathToSpringModelDir = 
"trgt/classes/org/apache/camel/model";
         xPath.setNamespaceContext(new CamelSpringNamespace());
         tempFile = File.createTempFile("outputXml", ".xml");

Reply via email to