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);

Reply via email to