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