Repository: camel Updated Branches: refs/heads/master e16773d3e -> 9bbdb5b50
CAMEL-9541: Component docs. Catalog should find component docs if using alternative scheme Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9bbdb5b5 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9bbdb5b5 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9bbdb5b5 Branch: refs/heads/master Commit: 9bbdb5b50d7825d841e1c16c821c0eaa1456cb97 Parents: e16773d Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Aug 18 09:28:33 2016 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Aug 18 09:28:33 2016 +0200 ---------------------------------------------------------------------- .../camel/catalog/DefaultCamelCatalog.java | 30 ++++++++++++++++++++ .../apache/camel/catalog/CamelCatalogTest.java | 11 +++++++ 2 files changed, 41 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/9bbdb5b5/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java ---------------------------------------------------------------------- diff --git a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java index 367fdae..fac41ae 100644 --- a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java +++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java @@ -552,6 +552,36 @@ public class DefaultCamelCatalog implements CamelCatalog { @Override public String componentAsciiDoc(String name) { + String answer = doComponentAsciiDoc(name); + if (answer == null) { + // maybe the name is an alternative scheme name, and then we need to find the component that + // has the name as alternative, and use the first scheme as the name to find the documentation + List<String> names = findComponentNames(); + for (String alternative : names) { + String schemes = getAlternativeComponentName(alternative); + if (schemes != null && schemes.contains(name)) { + String first = schemes.split(",")[0]; + return componentAsciiDoc(first); + } + } + } + return answer; + } + + private String getAlternativeComponentName(String componentName) { + String json = componentJSonSchema(componentName); + if (json != null) { + List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("component", json, false); + for (Map<String, String> row : rows) { + if (row.containsKey("alternativeSchemes")) { + return row.get("alternativeSchemes"); + } + } + } + return null; + } + + private String doComponentAsciiDoc(String name) { String file = DOC_DIR + "/" + name + "-component.adoc"; String answer = null; http://git-wip-us.apache.org/repos/asf/camel/blob/9bbdb5b5/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java ---------------------------------------------------------------------- diff --git a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java index 2a1e941..d695b11 100644 --- a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java +++ b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java @@ -799,6 +799,17 @@ public class CamelCatalogTest { } @Test + public void testAlternativeComponentAsciiDoc() throws Exception { + String doc = catalog.componentAsciiDoc("solr"); + assertNotNull(doc); + assertTrue(doc.contains("Solr Component")); + + String doc2 = catalog.componentAsciiDoc("solrCloud"); + assertNotNull(doc2); + assertEquals(doc, doc2); + } + + @Test public void testDataFormatAsciiDoc() throws Exception { String doc = catalog.dataFormatAsciiDoc("json-jackson"); assertNotNull(doc);