Repository: camel Updated Branches: refs/heads/master 722a588e7 -> e20ae861b
Component docs Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/be755208 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/be755208 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/be755208 Branch: refs/heads/master Commit: be7552085c875dc8871ce5f39c61e615163ef185 Parents: 722a588 Author: Claus Ibsen <davscl...@apache.org> Authored: Sun Jun 14 09:46:35 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sun Jun 14 13:08:06 2015 +0200 ---------------------------------------------------------------------- .../camel/component/ahc/ws/WsEndpoint.java | 3 +- .../camel/component/amqp/AMQPEndpoint.java | 3 +- .../atmosphere/websocket/WebsocketEndpoint.java | 3 +- .../component/file/remote/FtpEndpoint.java | 3 +- .../component/file/remote/FtpsEndpoint.java | 3 +- .../component/file/remote/SftpEndpoint.java | 3 +- .../camel/component/gae/http/GHttpEndpoint.java | 3 +- .../camel/component/gae/task/GTaskEndpoint.java | 3 +- .../component/jetty8/JettyHttpEndpoint8.java | 3 +- .../component/jetty9/JettyHttpEndpoint9.java | 3 +- .../apache/camel/component/scp/ScpEndpoint.java | 3 +- .../component/netty/http/NettyHttpEndpoint.java | 3 +- .../netty4/http/NettyHttpEndpoint.java | 3 +- .../apache/camel/component/rss/RssEndpoint.java | 3 +- .../component/servlet/ServletEndpoint.java | 3 +- .../camel/tools/apt/DocumentationHelper.java | 63 ++++++++++++++++++++ .../tools/apt/EndpointAnnotationProcessor.java | 16 +++++ .../java/org/apache/camel/spi/UriEndpoint.java | 11 ++++ 18 files changed, 120 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/WsEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/WsEndpoint.java b/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/WsEndpoint.java index ec37304..e0d0b88 100644 --- a/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/WsEndpoint.java +++ b/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/WsEndpoint.java @@ -38,7 +38,8 @@ import org.apache.camel.spi.UriParam; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@UriEndpoint(scheme = "ahc-ws,ahc-wss", title = "AHC Websocket,AHC Secure Websocket", syntax = "ahc-ws:httpUri", consumerClass = WsConsumer.class, label = "websocket") +@UriEndpoint(scheme = "ahc-ws,ahc-wss", extendsScheme = "ahc,ahc", title = "AHC Websocket,AHC Secure Websocket", + syntax = "ahc-ws:httpUri", consumerClass = WsConsumer.class, label = "websocket") public class WsEndpoint extends AhcEndpoint { private static final transient Logger LOG = LoggerFactory.getLogger(WsEndpoint.class); http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPEndpoint.java b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPEndpoint.java index 109a393..ce630f6 100644 --- a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPEndpoint.java +++ b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPEndpoint.java @@ -20,7 +20,8 @@ import org.apache.camel.component.jms.JmsConsumer; import org.apache.camel.component.jms.JmsEndpoint; import org.apache.camel.spi.UriEndpoint; -@UriEndpoint(scheme = "amqp", title = "AMQP", syntax = "amqp:destinationType:destinationName", consumerClass = JmsConsumer.class, label = "messaging") +@UriEndpoint(scheme = "amqp", extendsScheme = "jms", title = "AMQP", + syntax = "amqp:destinationType:destinationName", consumerClass = JmsConsumer.class, label = "messaging") public class AMQPEndpoint extends JmsEndpoint { } http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/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 9b5abe8..77a6306 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,8 @@ import org.apache.commons.httpclient.params.HttpClientParams; /** * */ -@UriEndpoint(scheme = "atmosphere-websocket", title = "Atmosphere Websocket", syntax = "atmosphere-websocket:servicePath", consumerClass = WebsocketConsumer.class, label = "websocket") +@UriEndpoint(scheme = "atmosphere-websocket", extendsScheme = "websocket", title = "Atmosphere Websocket", + syntax = "atmosphere-websocket:servicePath", consumerClass = WebsocketConsumer.class, label = "websocket") public class WebsocketEndpoint extends ServletEndpoint { private WebSocketStore store; http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java index 19d65f6..24a0d82 100644 --- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java +++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java @@ -34,7 +34,8 @@ import org.apache.commons.net.ftp.FTPFile; /** * FTP endpoint */ -@UriEndpoint(scheme = "ftp", title = "FTP", syntax = "ftp:host:port/directoryName", consumerClass = FtpConsumer.class, label = "file") +@UriEndpoint(scheme = "ftp", extendsScheme = "file", title = "FTP", + syntax = "ftp:host:port/directoryName", consumerClass = FtpConsumer.class, label = "file") public class FtpEndpoint<T extends FTPFile> extends RemoteFileEndpoint<FTPFile> { protected FTPClient ftpClient; http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java index 1e2ab96..ba90af0 100644 --- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java +++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java @@ -41,7 +41,8 @@ import org.apache.commons.net.ftp.FTPSClient; * * @version */ -@UriEndpoint(scheme = "ftps", title = "FTPS", syntax = "ftps:host:port/directoryName", consumerClass = FtpConsumer.class, label = "file") +@UriEndpoint(scheme = "ftps", extendsScheme = "file", title = "FTPS", + syntax = "ftps:host:port/directoryName", consumerClass = FtpConsumer.class, label = "file") public class FtpsEndpoint extends FtpEndpoint<FTPFile> { @UriParam protected FtpsConfiguration configuration; http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java index 9cd33eb..b8f8db3 100644 --- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java +++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java @@ -27,7 +27,8 @@ import org.apache.camel.spi.UriParam; /** * Secure FTP endpoint */ -@UriEndpoint(scheme = "sftp", title = "SFTP", syntax = "sftp:host:port/directoryName", consumerClass = SftpConsumer.class, label = "file") +@UriEndpoint(scheme = "sftp", extendsScheme = "file", title = "SFTP", + syntax = "sftp:host:port/directoryName", consumerClass = SftpConsumer.class, label = "file") public class SftpEndpoint extends RemoteFileEndpoint<ChannelSftp.LsEntry> { @UriParam http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java index a054b6d..897a09b 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java @@ -48,7 +48,8 @@ import org.apache.commons.httpclient.params.HttpClientParams; * Represents a <a href="http://camel.apache.org/ghttp.html">Google App Engine * HTTP endpoint</a>. */ -@UriEndpoint(scheme = "ghttp", title = "Google HTTP", syntax = "ghttp:httpUri", producerOnly = true, label = "cloud") +@UriEndpoint(scheme = "ghttp", extendsScheme = "servlet", title = "Google HTTP", + syntax = "ghttp:httpUri", producerOnly = true, label = "cloud") public class GHttpEndpoint extends ServletEndpoint implements OutboundBindingSupport<GHttpEndpoint, HTTPRequest, HTTPResponse> { public static final String GHTTP_SCHEME = "ghttp"; http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java index 4944083..0e4a801 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java @@ -44,7 +44,8 @@ import org.apache.commons.httpclient.params.HttpClientParams; /** * Represents a <a href="http://camel.apache.org/gtask.html">Google App Engine Task Queueing endpoint</a>. */ -@UriEndpoint(scheme = "gtask", title = "Google Task", syntax = "gtask:queueName", producerOnly = true, label = "cloud") +@UriEndpoint(scheme = "gtask", extendsScheme = "servlet", title = "Google Task", + syntax = "gtask:queueName", producerOnly = true, label = "cloud") public class GTaskEndpoint extends ServletEndpoint implements OutboundBindingSupport<GTaskEndpoint, TaskOptions, Void> { private OutboundBinding<GTaskEndpoint, TaskOptions, Void> outboundBinding; http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-jetty8/src/main/java/org/apache/camel/component/jetty8/JettyHttpEndpoint8.java ---------------------------------------------------------------------- diff --git a/components/camel-jetty8/src/main/java/org/apache/camel/component/jetty8/JettyHttpEndpoint8.java b/components/camel-jetty8/src/main/java/org/apache/camel/component/jetty8/JettyHttpEndpoint8.java index 4810bdc..2efd975 100644 --- a/components/camel-jetty8/src/main/java/org/apache/camel/component/jetty8/JettyHttpEndpoint8.java +++ b/components/camel-jetty8/src/main/java/org/apache/camel/component/jetty8/JettyHttpEndpoint8.java @@ -25,7 +25,8 @@ import org.apache.camel.component.jetty.JettyHttpComponent; import org.apache.camel.component.jetty.JettyHttpEndpoint; import org.apache.camel.spi.UriEndpoint; -@UriEndpoint(scheme = "jetty", title = "Jetty", syntax = "jetty:httpUri", consumerClass = HttpConsumer.class, label = "http") +@UriEndpoint(scheme = "jetty", extendsScheme = "http", title = "Jetty", + syntax = "jetty:httpUri", consumerClass = HttpConsumer.class, label = "http") public class JettyHttpEndpoint8 extends JettyHttpEndpoint { public JettyHttpEndpoint8(JettyHttpComponent component, String uri, URI httpURL) throws URISyntaxException { http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/JettyHttpEndpoint9.java ---------------------------------------------------------------------- diff --git a/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/JettyHttpEndpoint9.java b/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/JettyHttpEndpoint9.java index a29ad1a..342353e 100644 --- a/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/JettyHttpEndpoint9.java +++ b/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/JettyHttpEndpoint9.java @@ -26,7 +26,8 @@ import org.apache.camel.component.jetty.JettyHttpComponent; import org.apache.camel.component.jetty.JettyHttpEndpoint; import org.apache.camel.spi.UriEndpoint; -@UriEndpoint(scheme = "jetty", title = "Jetty 9", syntax = "jetty:httpUri", consumerClass = HttpConsumer.class, label = "http") +@UriEndpoint(scheme = "jetty", extendsScheme = "http", title = "Jetty 9", + syntax = "jetty:httpUri", consumerClass = HttpConsumer.class, label = "http") public class JettyHttpEndpoint9 extends JettyHttpEndpoint { private HttpBinding binding; http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java index 5a143c0..80bb6fb 100644 --- a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java +++ b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java @@ -28,7 +28,8 @@ import org.apache.camel.spi.UriParam; /** * Secure Copy Endpoint */ -@UriEndpoint(scheme = "scp", title = "SCP", syntax = "scp:host:port/directoryName", producerOnly = true, label = "file") +@UriEndpoint(scheme = "scp", extendsScheme = "ftp", title = "SCP", + syntax = "scp:host:port/directoryName", producerOnly = true, label = "file") public class ScpEndpoint extends RemoteFileEndpoint<ScpFile> { @UriParam http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java index 9455be9..c3c253a 100644 --- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java +++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java @@ -39,7 +39,8 @@ import org.slf4j.LoggerFactory; /** * HTTP based {@link NettyEndpoint} */ -@UriEndpoint(scheme = "netty-http", title = "Netty HTTP", syntax = "netty-http:host:port/path", consumerClass = NettyHttpConsumer.class, label = "http") +@UriEndpoint(scheme = "netty-http", extendsScheme = "netty", title = "Netty HTTP", + syntax = "netty-http:host:port/path", consumerClass = NettyHttpConsumer.class, label = "http") public class NettyHttpEndpoint extends NettyEndpoint implements HeaderFilterStrategyAware { private static final Logger LOG = LoggerFactory.getLogger(NettyHttpEndpoint.class); http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpEndpoint.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpEndpoint.java index 310f9d5..ac43fdd 100644 --- a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpEndpoint.java +++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpEndpoint.java @@ -38,7 +38,8 @@ import org.slf4j.LoggerFactory; /** * HTTP based {@link NettyEndpoint} */ -@UriEndpoint(scheme = "netty4-http", title = "Netty4 HTTP", syntax = "netty4-http:host:port/path", consumerClass = NettyHttpConsumer.class, label = "http") +@UriEndpoint(scheme = "netty4-http", extendsScheme = "netty4", title = "Netty4 HTTP", + syntax = "netty4-http:host:port/path", consumerClass = NettyHttpConsumer.class, label = "http") public class NettyHttpEndpoint extends NettyEndpoint implements HeaderFilterStrategyAware { private static final Logger LOG = LoggerFactory.getLogger(NettyHttpEndpoint.class); http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java b/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java index dda7781..c4cc6d0 100644 --- a/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java +++ b/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java @@ -33,7 +33,8 @@ import org.slf4j.LoggerFactory; /** * Is used for polling rss feeds. */ -@UriEndpoint(scheme = "rss", title = "RSS", syntax = "rss:feedUri", consumerOnly = true, consumerClass = RssEntryPollingConsumer.class, label = "feeds") +@UriEndpoint(scheme = "rss", extendsScheme = "atom", title = "RSS", + syntax = "rss:feedUri", consumerOnly = true, consumerClass = RssEntryPollingConsumer.class, label = "feeds") public class RssEndpoint extends FeedEndpoint { protected static final Logger LOG = LoggerFactory.getLogger(RssEndpoint.class); http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java index c897d7a..7c43457 100644 --- a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java +++ b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java @@ -30,7 +30,8 @@ import org.apache.camel.spi.UriPath; import org.apache.commons.httpclient.HttpConnectionManager; import org.apache.commons.httpclient.params.HttpClientParams; -@UriEndpoint(scheme = "servlet", title = "Servlet", syntax = "servlet:servletName", consumerOnly = true, consumerClass = ServletConsumer.class, label = "http") +@UriEndpoint(scheme = "servlet", extendsScheme = "http", title = "Servlet", + syntax = "servlet:servletName", consumerOnly = true, consumerClass = ServletConsumer.class, label = "http") public class ServletEndpoint extends HttpEndpoint { @UriPath @Metadata(required = "true") http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/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 new file mode 100644 index 0000000..93a7ae5 --- /dev/null +++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/DocumentationHelper.java @@ -0,0 +1,63 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.tools.apt; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.LineNumberReader; + +/** + * Helper to find documentation for inherited options when a component extends another. + */ +public final class DocumentationHelper { + + public static String findJavaDoc(String scheme, String fieldName) { + return null; + } + + /** + * Loads the entire stream into memory as a String and returns it. + * <p/> + * <b>Notice:</b> This implementation appends a <tt>\n</tt> as line + * terminator at the of the text. + * <p/> + * Warning, don't use for crazy big streams :) + */ + private static String loadText(InputStream in) throws IOException { + StringBuilder builder = new StringBuilder(); + InputStreamReader isr = new InputStreamReader(in); + try { + BufferedReader reader = new LineNumberReader(isr); + while (true) { + String line = reader.readLine(); + if (line != null) { + builder.append(line); + builder.append("\n"); + } else { + break; + } + } + return builder.toString(); + } finally { + isr.close(); + in.close(); + } + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/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 9e583a0..6cb7973 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 @@ -189,6 +189,7 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor { buffer.append("\n \"component\": {"); buffer.append("\n \"kind\": \"").append("component").append("\","); buffer.append("\n \"scheme\": \"").append(componentModel.getScheme()).append("\","); + buffer.append("\n \"extendsScheme\": \"").append(componentModel.getExtendsScheme()).append("\","); buffer.append("\n \"syntax\": \"").append(componentModel.getSyntax()).append("\","); buffer.append("\n \"title\": \"").append(componentModel.getTitle()).append("\","); buffer.append("\n \"description\": \"").append(componentModel.getDescription()).append("\","); @@ -283,6 +284,11 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor { buffer.append("\n "); // as its json we need to sanitize the docs String doc = entry.getDocumentationWithNotes(); + + if (Strings.isNullOrEmpty(doc)) { + doc = DocumentationHelper.findJavaDoc(componentModel.getScheme(), entry.getName()); + } + doc = sanitizeDescription(doc, false); Boolean required = entry.getRequired() != null ? Boolean.valueOf(entry.getRequired()) : null; String defaultValue = entry.getDefaultValue(); @@ -361,6 +367,7 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor { // 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.setSyntax(syntax); model.setTitle(title); model.setLabel(label); @@ -671,6 +678,7 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor { private static final class ComponentModel { private String scheme; + private String extendsScheme; private String syntax; private String javaType; private String title; @@ -690,6 +698,14 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor { return scheme; } + public String getExtendsScheme() { + return extendsScheme; + } + + public void setExtendsScheme(String extendsScheme) { + this.extendsScheme = extendsScheme; + } + public String getSyntax() { return syntax; } http://git-wip-us.apache.org/repos/asf/camel/blob/be755208/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java ---------------------------------------------------------------------- diff --git a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java index 04997a4..772b140 100644 --- a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java +++ b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java @@ -37,10 +37,21 @@ public @interface UriEndpoint { * <p/> * Multiple scheme names can be defined as a comma separated value. * For example to associate <tt>http</tt> and <tt>https</tt> to the same endpoint implementation. + * <p/> + * The order of the scheme names here should be the same order as in {@link #extendsScheme()} so their are paired. */ String scheme(); /** + * Used when an endpoint is extending another endpoint + * <p/> + * Multiple scheme names can be defined as a comma separated value. + * For example to associate <tt>ftp</tt> and <tt>ftps</tt> to the same endpoint implementation. + * The order of the scheme names here should be the same order as in {@link #scheme()} so their are paired. + */ + String extendsScheme() default ""; + + /** * Represent the URI syntax the endpoint must use. * <p/> * The syntax follows the patterns such as: