Component docs

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

Branch: refs/heads/master
Commit: 6fa5657fe272c8a705bb037515165bbc713058dd
Parents: c68107d
Author: Claus Ibsen <[email protected]>
Authored: Sun Jun 14 15:54:19 2015 +0200
Committer: Claus Ibsen <[email protected]>
Committed: Sun Jun 14 15:54:19 2015 +0200

----------------------------------------------------------------------
 .../atmosphere/websocket/WebsocketEndpoint.java        |  2 +-
 .../apache/camel/tools/apt/DocumentationHelper.java    |  4 ++++
 .../camel/tools/apt/EndpointAnnotationProcessor.java   | 13 ++++++++-----
 3 files changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6fa5657f/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
 
b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
index 77a6306..24d8dcf 100644
--- 
a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
+++ 
b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
@@ -34,7 +34,7 @@ import org.apache.commons.httpclient.params.HttpClientParams;
 /**
  *
  */
-@UriEndpoint(scheme = "atmosphere-websocket", extendsScheme = "websocket", 
title = "Atmosphere Websocket",
+@UriEndpoint(scheme = "atmosphere-websocket", extendsScheme = "servlet", title 
= "Atmosphere Websocket",
         syntax = "atmosphere-websocket:servicePath", consumerClass = 
WebsocketConsumer.class, label = "websocket")
 public class WebsocketEndpoint extends ServletEndpoint {
 

http://git-wip-us.apache.org/repos/asf/camel/blob/6fa5657f/tooling/apt/src/main/java/org/apache/camel/tools/apt/DocumentationHelper.java
----------------------------------------------------------------------
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/DocumentationHelper.java 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/DocumentationHelper.java
index e8e8cf7..f354f38 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/DocumentationHelper.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/DocumentationHelper.java
@@ -96,8 +96,12 @@ public final class DocumentationHelper {
 
         if ("file".equals(extendsScheme)) {
             return new 
File("../../camel-core/target/classes/org/apache/camel/component/file/file.json");
+        } else if ("ahc".equals(extendsScheme)) {
+            return new 
File("../camel-ahc/target/classes/org/apache/camel/component/ahc/ahc.json");
         } else if ("atom".equals(extendsScheme)) {
             return new 
File("../camel-atom/target/classes/org/apache/camel/component/atom/atom.json");
+        } else if ("jms".equals(extendsScheme)) {
+            return new 
File("../camel-jms/target/classes/org/apache/camel/component/jms/jms.json");
         } else if ("http".equals(extendsScheme)) {
             return new 
File("../camel-http/target/classes/org/apache/camel/component/http/http.json");
         } else if ("https".equals(extendsScheme)) {

http://git-wip-us.apache.org/repos/asf/camel/blob/6fa5657f/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
----------------------------------------------------------------------
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
index 1531971..968213a5 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
@@ -75,6 +75,7 @@ public class EndpointAnnotationProcessor extends 
AbstractAnnotationProcessor {
         final UriEndpoint uriEndpoint = 
classElement.getAnnotation(UriEndpoint.class);
         if (uriEndpoint != null) {
             String scheme = uriEndpoint.scheme();
+            String extendsScheme = uriEndpoint.extendsScheme();
             String title = uriEndpoint.title();
             final String label = uriEndpoint.label();
             if (!isNullOrEmpty(scheme)) {
@@ -82,8 +83,10 @@ public class EndpointAnnotationProcessor extends 
AbstractAnnotationProcessor {
                 // for example camel-mail has a bunch of component schema 
names that does that
                 String[] schemes = scheme.split(",");
                 String[] titles = title.split(",");
+                String[] extendsSchemes = extendsScheme != null ? 
extendsScheme.split(",") : null;
                 for (int i = 0; i < schemes.length; i++) {
                     final String alias = schemes[i];
+                    final String extendsAlias = extendsSchemes != null ? (i < 
extendsSchemes.length ? extendsSchemes[i] : extendsSchemes[0]) : null;
                     final String aliasTitle = i < titles.length ? titles[i] : 
titles[0];
                     // write html documentation
                     String name = 
canonicalClassName(classElement.getQualifiedName().toString());
@@ -103,7 +106,7 @@ public class EndpointAnnotationProcessor extends 
AbstractAnnotationProcessor {
                     handler = new Func1<PrintWriter, Void>() {
                         @Override
                         public Void call(PrintWriter writer) {
-                            writeJSonSchemeDocumentation(writer, roundEnv, 
classElement, uriEndpoint, aliasTitle, alias, label);
+                            writeJSonSchemeDocumentation(writer, roundEnv, 
classElement, uriEndpoint, aliasTitle, alias, extendsAlias, label);
                             return null;
                         }
                     };
@@ -162,9 +165,9 @@ public class EndpointAnnotationProcessor extends 
AbstractAnnotationProcessor {
     }
 
     protected void writeJSonSchemeDocumentation(PrintWriter writer, 
RoundEnvironment roundEnv, TypeElement classElement, UriEndpoint uriEndpoint,
-                                                String title, String scheme, 
String label) {
+                                                String title, String scheme, 
final String extendsScheme, String label) {
         // gather component information
-        ComponentModel componentModel = findComponentProperties(roundEnv, 
uriEndpoint, title, scheme, label);
+        ComponentModel componentModel = findComponentProperties(roundEnv, 
uriEndpoint, title, scheme, extendsScheme, label);
 
         // get endpoint information which is divided into paths and options 
(though there should really only be one path)
         Set<EndpointPath> endpointPaths = new LinkedHashSet<EndpointPath>();
@@ -369,13 +372,13 @@ public class EndpointAnnotationProcessor extends 
AbstractAnnotationProcessor {
     }
 
     protected ComponentModel findComponentProperties(RoundEnvironment 
roundEnv, UriEndpoint uriEndpoint,
-                                                     String title, String 
scheme, String label) {
+                                                     String title, String 
scheme, String extendsScheme, String label) {
         ComponentModel model = new ComponentModel(scheme);
 
         // if the scheme is an alias then replace the scheme name from the 
syntax with the alias
         String syntax = scheme + ":" + Strings.after(uriEndpoint.syntax(), 
":");
 
-        model.setExtendsScheme(uriEndpoint.extendsScheme());
+        model.setExtendsScheme(extendsScheme);
         model.setSyntax(syntax);
         model.setTitle(title);
         model.setLabel(label);

Reply via email to