Camel apt improved html doc generation. And working on generating json schema 
as well.


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

Branch: refs/heads/master
Commit: 2695c399456118a1cfb1fe81e9eabb469c589817
Parents: ae8dc87
Author: Claus Ibsen <davscl...@apache.org>
Authored: Thu Nov 6 11:24:13 2014 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Fri Nov 7 13:25:18 2014 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/camel/CamelContext.java    |  7 ++++++-
 .../org/apache/camel/impl/DefaultCamelContext.java  | 16 ++++++++++++++++
 .../camel/tools/apt/util/JsonSchemaHelper.java      |  7 ++-----
 3 files changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/2695c399/camel-core/src/main/java/org/apache/camel/CamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/CamelContext.java 
b/camel-core/src/main/java/org/apache/camel/CamelContext.java
index 23ba36d..d765b54 100644
--- a/camel-core/src/main/java/org/apache/camel/CamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/CamelContext.java
@@ -1346,11 +1346,16 @@ public interface CamelContext extends 
SuspendableService, RuntimeConfiguration {
     Map<String, Properties> findComponents() throws LoadPropertiesException, 
IOException;
 
     /**
-     * Returns the HTML documentation for the given camel component
+     * Returns the HTML documentation for the given Camel component
      */
     String getComponentDocumentation(String componentName) throws IOException;
 
     /**
+     * Returns the JSON schema representation of the endpoint parameters for 
the given component name
+     */
+    String getComponentParameterJsonSchema(String componentName) throws 
IOException;
+
+    /**
      * Creates a JSON representation of all the <b>static</b> and 
<b>dynamic</b> configured endpoints defined in the given route(s).
      *
      * @param routeId for a particular route, or <tt>null</tt> for all routes

http://git-wip-us.apache.org/repos/asf/camel/blob/2695c399/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index ffe4b59..77c6668 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -1087,6 +1087,22 @@ public class DefaultCamelContext extends ServiceSupport 
implements ModelCamelCon
         return null;
     }
 
+    public String getComponentParameterJsonSchema(String componentName) throws 
IOException {
+        String packageName = sanitizeComponentName(componentName);
+        String path = CamelContextHelper.COMPONENT_DOCUMENTATION_PREFIX + 
packageName + "/" + componentName + ".json";
+        ClassResolver resolver = getClassResolver();
+        InputStream inputStream = resolver.loadResourceAsStream(path);
+        log.debug("Loading component JSON Schema for: {} using class resolver: 
{} -> {}", new Object[]{componentName, resolver, inputStream});
+        if (inputStream != null) {
+            try {
+                return IOHelper.loadText(inputStream);
+            } finally {
+                IOHelper.close(inputStream);
+            }
+        }
+        return null;
+    }
+
     /**
      * Sanitizes the component name by removing dash (-) in the name, when 
using the component name to load
      * resources from the classpath.

http://git-wip-us.apache.org/repos/asf/camel/blob/2695c399/tooling/apt/src/main/java/org/apache/camel/tools/apt/util/JsonSchemaHelper.java
----------------------------------------------------------------------
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/util/JsonSchemaHelper.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/util/JsonSchemaHelper.java
index 5d17118..217b002 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/util/JsonSchemaHelper.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/util/JsonSchemaHelper.java
@@ -158,11 +158,8 @@ public final class JsonSchemaHelper {
                 continue;
             }
 
-            // replace some known html tags
-            javadoc = javadoc.replaceAll("\\<tt\\>", "");
-            javadoc = javadoc.replaceAll("\\</tt\\>", "");
-            javadoc = javadoc.replaceAll("\\<code\\>", "");
-            javadoc = javadoc.replaceAll("\\</code\\>", "");
+            // remove all HTML tags
+            line = line.replaceAll("\\</?\\w+\\/?>", "");
 
             // we are starting from a new line, so add a whitespace
             if (!first) {

Reply via email to