CAMEL-7999: Add label to @UriEndpoint so we can group endpoints.

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

Branch: refs/heads/master
Commit: 636cbb5bf3441a57f50b0671eac03c79cdc85863
Parents: 6b07fa8
Author: Claus Ibsen <davscl...@apache.org>
Authored: Fri Nov 14 10:03:16 2014 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Fri Nov 14 13:02:05 2014 +0100

----------------------------------------------------------------------
 .../camel/component/bean/BeanEndpoint.java      |  2 +-
 .../component/beanclass/ClassEndpoint.java      |  2 +-
 .../component/binding/BindingEndpoint.java      |  2 +-
 .../camel/component/browse/BrowseEndpoint.java  |  2 +-
 .../controlbus/ControlBusEndpoint.java          |  2 +-
 .../dataformat/DataFormatEndpoint.java          |  2 +-
 .../component/dataset/DataSetEndpoint.java      |  2 +-
 .../camel/component/direct/DirectEndpoint.java  |  2 +-
 .../component/directvm/DirectVmEndpoint.java    |  2 +-
 .../camel/component/file/FileEndpoint.java      |  2 +-
 .../component/language/LanguageEndpoint.java    |  2 +-
 .../apache/camel/component/log/LogEndpoint.java |  2 +-
 .../camel/component/mock/MockEndpoint.java      |  2 +-
 .../apache/camel/component/ref/RefEndpoint.java |  2 +-
 .../camel/component/rest/RestEndpoint.java      |  2 +-
 .../camel/component/seda/SedaEndpoint.java      |  2 +-
 .../camel/component/stub/StubEndpoint.java      |  2 +-
 .../camel/component/test/TestEndpoint.java      |  2 +-
 .../camel/component/timer/TimerEndpoint.java    |  2 +-
 .../component/validator/ValidatorEndpoint.java  |  2 +-
 .../apache/camel/component/vm/VmEndpoint.java   |  2 +-
 .../camel/component/xslt/XsltEndpoint.java      |  2 +-
 .../tools/apt/EndpointAnnotationProcessor.java  | 36 ++++++++++++++++----
 .../java/org/apache/camel/spi/UriEndpoint.java  | 14 +++++++-
 24 files changed, 64 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
index c7b6de5..6b4605e 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
@@ -29,7 +29,7 @@ import org.apache.camel.spi.UriPath;
  *
  * @version 
  */
-@UriEndpoint(scheme = "bean")
+@UriEndpoint(scheme = "bean", label = "core,java")
 public class BeanEndpoint extends ProcessorEndpoint {
     private BeanHolder beanHolder;
     @UriPath

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java
index dd4783b..3607192 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.UriEndpoint;
 /**
  * Endpoint for the class component.
  */
-@UriEndpoint(scheme = "class")
+@UriEndpoint(scheme = "class", label = "core,java")
 public class ClassEndpoint extends BeanEndpoint {
 
     public ClassEndpoint(String endpointUri, Component component) {

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java
index f5ec434..b20afa7 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java
@@ -35,7 +35,7 @@ import org.apache.camel.util.ServiceHelper;
  * before its sent to the endpoint and processes messages received by the 
endpoint consumer before its passed
  * to the real consumer.
  */
-@UriEndpoint(scheme = "binding", consumerClass = 
BindingConsumerProcessor.class)
+@UriEndpoint(scheme = "binding", consumerClass = 
BindingConsumerProcessor.class, label = "core,transformation")
 public class BindingEndpoint extends DefaultEndpoint implements HasBinding {
     private final Binding binding;
     private final Endpoint delegate;

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
index 73c4b6b..a0a8391 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
@@ -39,7 +39,7 @@ import org.apache.camel.spi.UriPath;
  *
  * @version 
  */
-@UriEndpoint(scheme = "browse")
+@UriEndpoint(scheme = "browse", label = "core,monitoring")
 public class BrowseEndpoint extends DefaultEndpoint implements 
BrowsableEndpoint {
 
     @UriPath(description = "A name which can be any string to uniquely 
identify the endpoint")

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
index 467affd..951efed 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
@@ -32,7 +32,7 @@ import org.apache.camel.util.CamelLogger;
 /**
  * The control bus endpoint.
  */
-@UriEndpoint(scheme = "controlbus")
+@UriEndpoint(scheme = "controlbus", label = "core,monitoring")
 public class ControlBusEndpoint extends DefaultEndpoint {
 
     @UriPath(description = "Command can be either route or language")

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
index 14599d2..2dbe86a 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
@@ -32,7 +32,7 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.ServiceHelper;
 
-@UriEndpoint(scheme = "dataformat")
+@UriEndpoint(scheme = "dataformat", label = "core,transformation")
 public class DataFormatEndpoint extends DefaultEndpoint {
 
     private MarshalProcessor marshal;

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
index c64d6df..7ed8e77 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
@@ -41,7 +41,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-@UriEndpoint(scheme = "dataset", consumerClass = DataSetConsumer.class)
+@UriEndpoint(scheme = "dataset", consumerClass = DataSetConsumer.class, label 
= "core,testing")
 public class DataSetEndpoint extends MockEndpoint implements Service {
     private final transient Logger log;
     @UriPath(name = "name", description = "name of DataSet to lookup in the 
registry")

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
index b6986d8..8075b7d 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
@@ -35,7 +35,7 @@ import org.apache.camel.util.ObjectHelper;
  *
  * @version 
  */
-@UriEndpoint(scheme = "direct", consumerClass = DirectConsumer.class)
+@UriEndpoint(scheme = "direct", consumerClass = DirectConsumer.class, 
label="core,java,endpoint")
 public class DirectEndpoint extends DefaultEndpoint {
 
     @UriPath(description = "Name of direct endpoint")

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmEndpoint.java
index c5c3af4..17fec96 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmEndpoint.java
@@ -28,7 +28,7 @@ import org.apache.camel.spi.UriPath;
 /**
  * The direct-vm endpoint.
  */
-@UriEndpoint(scheme = "direct-vm", consumerClass = DirectConsumer.class)
+@UriEndpoint(scheme = "direct-vm", consumerClass = DirectConsumer.class, label 
= "core,endpoint")
 public class DirectVmEndpoint extends DefaultEndpoint {
 
     @UriPath(description = "Name of direct-vm endpoint")

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
index 645d733..00c2458 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
@@ -32,7 +32,7 @@ import org.apache.camel.util.ObjectHelper;
 /**
  * File endpoint.
  */
-@UriEndpoint(scheme = "file", consumerClass = FileConsumer.class)
+@UriEndpoint(scheme = "file", consumerClass = FileConsumer.class, label = 
"core,file")
 public class FileEndpoint extends GenericFileEndpoint<File> {
 
     private final FileOperations operations = new FileOperations(this);

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
index b025b05..f14088f 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
@@ -41,7 +41,7 @@ import org.apache.camel.util.ResourceHelper;
  *
  * @version 
  */
-@UriEndpoint(scheme = "language")
+@UriEndpoint(scheme = "language", label="core,script")
 public class LanguageEndpoint extends ResourceEndpoint {
     private Language language;
     private Expression expression;

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
index ca3c21e..cbde789 100644
--- a/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 /**
  * Logger endpoint.
  */
-@UriEndpoint(scheme = "log")
+@UriEndpoint(scheme = "log", label="core,monitoring")
 public class LogEndpoint extends ProcessorEndpoint {
 
     private volatile Processor logger;

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
index 71e127e..6ab1931 100644
--- a/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
@@ -87,7 +87,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-@UriEndpoint(scheme = "mock")
+@UriEndpoint(scheme = "mock", label="core,testing")
 public class MockEndpoint extends DefaultEndpoint implements BrowsableEndpoint 
{
     private static final Logger LOG = 
LoggerFactory.getLogger(MockEndpoint.class);
     // must be volatile so changes is visible between the thread which 
performs the assertions

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/ref/RefEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
index e9cc74e..4e0fceb 100644
--- a/camel-core/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.CamelContextHelper;
 
-@UriEndpoint(scheme = "ref")
+@UriEndpoint(scheme = "ref", label = "core,endpoint")
 public class RefEndpoint extends DefaultEndpoint implements DelegateEndpoint {
 
     private volatile Endpoint endpoint;

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
index 1e2aac8..c0e3a6e 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
@@ -32,7 +32,7 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.HostUtils;
 import org.apache.camel.util.ObjectHelper;
 
-@UriEndpoint(scheme = "rest")
+@UriEndpoint(scheme = "rest", label="core,http,rest")
 public class RestEndpoint extends DefaultEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
index 36ed65a..74dbfa1 100644
--- a/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
@@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory;
  * asynchronous SEDA exchanges on a {@link BlockingQueue} within a CamelContext
  */
 @ManagedResource(description = "Managed SedaEndpoint")
-@UriEndpoint(scheme = "seda", consumerClass = SedaConsumer.class)
+@UriEndpoint(scheme = "seda", consumerClass = SedaConsumer.class, label = 
"core,endpoint")
 public class SedaEndpoint extends DefaultEndpoint implements 
BrowsableEndpoint, MultipleConsumersSupport {
     private static final Logger LOG = 
LoggerFactory.getLogger(SedaEndpoint.class);
     private volatile BlockingQueue<Exchange> queue;

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/stub/StubEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
index 64d75ad..bd12cb1 100644
--- a/camel-core/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
@@ -27,7 +27,7 @@ import org.apache.camel.component.vm.VmConsumer;
 import org.apache.camel.component.vm.VmEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
-@UriEndpoint(scheme = "stub", consumerClass = VmConsumer.class)
+@UriEndpoint(scheme = "stub", consumerClass = VmConsumer.class, label = 
"core,testing")
 public class StubEndpoint extends VmEndpoint {
 
     public StubEndpoint(String endpointUri, Component component, 
BlockingQueue<Exchange> queue) {

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
index 7f2b53a..1f6a013 100644
--- a/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
@@ -38,7 +38,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-@UriEndpoint(scheme = "test")
+@UriEndpoint(scheme = "test", label = "core,testing")
 public class TestEndpoint extends MockEndpoint {
     private static final Logger LOG = 
LoggerFactory.getLogger(TestEndpoint.class);
     private final Endpoint expectedMessageEndpoint;

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
index 8b2621c..2f38c2c 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
@@ -38,7 +38,7 @@ import org.apache.camel.spi.UriPath;
  * @version 
  */
 @ManagedResource(description = "Managed TimerEndpoint")
-@UriEndpoint(scheme = "timer", consumerClass = TimerConsumer.class)
+@UriEndpoint(scheme = "timer", consumerClass = TimerConsumer.class, label = 
"core,scheduling")
 public class TimerEndpoint extends DefaultEndpoint implements 
MultipleConsumersSupport {
     @UriPath
     private String timerName;

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
index 8e260ba..87bc68d 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
@@ -39,7 +39,7 @@ import org.apache.camel.util.ResourceHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@UriEndpoint(scheme = "validator")
+@UriEndpoint(scheme = "validator", label = "core,validation")
 public class ValidatorEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(ValidatorEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/vm/VmEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/vm/VmEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/vm/VmEndpoint.java
index fb94a80..13681e0 100644
--- a/camel-core/src/main/java/org/apache/camel/component/vm/VmEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/vm/VmEndpoint.java
@@ -25,7 +25,7 @@ import org.apache.camel.component.seda.BlockingQueueFactory;
 import org.apache.camel.component.seda.SedaEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
-@UriEndpoint(scheme = "vm", consumerClass = VmConsumer.class)
+@UriEndpoint(scheme = "vm", consumerClass = VmConsumer.class, label = 
"core,endpoint")
 public class VmEndpoint extends SedaEndpoint {
 
     public VmEndpoint(String endpointUri, Component component, 
BlockingQueue<Exchange> queue) {

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
index 0e6b92b..2d4bf1f 100644
--- a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
@@ -43,7 +43,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @ManagedResource(description = "Managed XsltEndpoint")
-@UriEndpoint(scheme = "xslt")
+@UriEndpoint(scheme = "xslt", label = "core,transformation")
 public class XsltEndpoint extends ProcessorEndpoint {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(XsltEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/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 82b4313..0c28119 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
@@ -57,6 +57,7 @@ import org.apache.camel.spi.UriPath;
 import static org.apache.camel.tools.apt.IOHelper.loadText;
 import static org.apache.camel.tools.apt.JsonSchemaHelper.sanitizeDescription;
 import static org.apache.camel.tools.apt.Strings.canonicalClassName;
+import static org.apache.camel.tools.apt.Strings.getOrElse;
 import static org.apache.camel.tools.apt.Strings.isNullOrEmpty;
 
 /**
@@ -83,6 +84,7 @@ public class EndpointAnnotationProcessor extends 
AbstractProcessor {
         final UriEndpoint uriEndpoint = 
classElement.getAnnotation(UriEndpoint.class);
         if (uriEndpoint != null) {
             String scheme = uriEndpoint.scheme();
+            final String label = uriEndpoint.label();
             if (!isNullOrEmpty(scheme)) {
                 // support multiple schemes separated by comma, which maps to 
the exact same component
                 // for example camel-mail has a bunch of component schema 
names that does that
@@ -95,7 +97,7 @@ public class EndpointAnnotationProcessor extends 
AbstractProcessor {
                     Func1<PrintWriter, Void> handler = new Func1<PrintWriter, 
Void>() {
                         @Override
                         public Void call(PrintWriter writer) {
-                            writeHtmlDocumentation(writer, roundEnv, 
classElement, uriEndpoint, alias);
+                            writeHtmlDocumentation(writer, roundEnv, 
classElement, uriEndpoint, alias, label);
                             return null;
                         }
                     };
@@ -106,7 +108,7 @@ public class EndpointAnnotationProcessor extends 
AbstractProcessor {
                     handler = new Func1<PrintWriter, Void>() {
                         @Override
                         public Void call(PrintWriter writer) {
-                            writeJSonSchemeDocumentation(writer, roundEnv, 
classElement, uriEndpoint, alias);
+                            writeJSonSchemeDocumentation(writer, roundEnv, 
classElement, uriEndpoint, alias, label);
                             return null;
                         }
                     };
@@ -116,7 +118,7 @@ public class EndpointAnnotationProcessor extends 
AbstractProcessor {
         }
     }
 
-    protected void writeHtmlDocumentation(PrintWriter writer, RoundEnvironment 
roundEnv, TypeElement classElement, UriEndpoint uriEndpoint, String scheme) {
+    protected void writeHtmlDocumentation(PrintWriter writer, RoundEnvironment 
roundEnv, TypeElement classElement, UriEndpoint uriEndpoint, String scheme, 
String label) {
         writer.println("<html>");
         writer.println("<header>");
         String title = scheme + " endpoint";
@@ -125,6 +127,15 @@ public class EndpointAnnotationProcessor extends 
AbstractProcessor {
         writer.println("<body>");
         writer.println("<h1>" + title + "</h1>");
 
+        if (label != null) {
+            String[] labels = label.split(",");
+            writer.println("<ul>");
+            for (String text : labels) {
+                writer.println("<li>" + text + "</li>");
+            }
+            writer.println("</ul>");
+        }
+
         showDocumentationAndFieldInjections(writer, roundEnv, classElement, 
"");
 
         // This code is not my fault, it seems to honestly be the hacky way to 
find a class name in APT :)
@@ -137,7 +148,7 @@ public class EndpointAnnotationProcessor extends 
AbstractProcessor {
 
         boolean found = false;
         String consumerClassName = null;
-        String consumerPrefix = 
Strings.getOrElse(uriEndpoint.consumerPrefix(), "");
+        String consumerPrefix = getOrElse(uriEndpoint.consumerPrefix(), "");
         if (consumerType != null) {
             consumerClassName = consumerType.toString();
             TypeElement consumerElement = findTypeElement(roundEnv, 
consumerClassName);
@@ -154,9 +165,9 @@ public class EndpointAnnotationProcessor extends 
AbstractProcessor {
         writer.println("</html>");
     }
 
-    protected void writeJSonSchemeDocumentation(PrintWriter writer, 
RoundEnvironment roundEnv, TypeElement classElement, UriEndpoint uriEndpoint, 
String scheme) {
+    protected void writeJSonSchemeDocumentation(PrintWriter writer, 
RoundEnvironment roundEnv, TypeElement classElement, UriEndpoint uriEndpoint, 
String scheme, String label) {
         // gather component information
-        ComponentModel componentModel = findComponentProperties(roundEnv, 
scheme);
+        ComponentModel componentModel = findComponentProperties(roundEnv, 
scheme, label);
 
         // get endpoint information which is divided into paths and options 
(though there should really only be one path)
         Set<EndpointPath> endpointPaths = new LinkedHashSet<>();
@@ -173,6 +184,7 @@ public class EndpointAnnotationProcessor extends 
AbstractProcessor {
         buffer.append("\n \"component\": {");
         buffer.append("\n    \"scheme\": 
\"").append(componentModel.getScheme()).append("\",");
         buffer.append("\n    \"description\": 
\"").append(componentModel.getDescription()).append("\",");
+        buffer.append("\n    \"label\": 
\"").append(getOrElse(componentModel.getLabel(), "")).append("\"");
         buffer.append("\n    \"javaType\": 
\"").append(componentModel.getJavaType()).append("\",");
         buffer.append("\n    \"groupId\": 
\"").append(componentModel.getGroupId()).append("\",");
         buffer.append("\n    \"artifactId\": 
\"").append(componentModel.getArtifactId()).append("\",");
@@ -263,8 +275,9 @@ public class EndpointAnnotationProcessor extends 
AbstractProcessor {
         }
     }
 
-    protected ComponentModel findComponentProperties(RoundEnvironment 
roundEnv, String scheme) {
+    protected ComponentModel findComponentProperties(RoundEnvironment 
roundEnv, String scheme, String label) {
         ComponentModel model = new ComponentModel(scheme);
+        model.setLabel(label);
 
         String data = 
loadResource("META-INF/services/org/apache/camel/component", scheme);
         if (data != null) {
@@ -598,6 +611,7 @@ public class EndpointAnnotationProcessor extends 
AbstractProcessor {
         private String groupId;
         private String artifactId;
         private String versionId;
+        private String label;
 
         private ComponentModel(String scheme) {
             this.scheme = scheme;
@@ -646,6 +660,14 @@ public class EndpointAnnotationProcessor extends 
AbstractProcessor {
         public void setVersionId(String versionId) {
             this.versionId = versionId;
         }
+
+        public String getLabel() {
+            return label;
+        }
+
+        public void setLabel(String label) {
+            this.label = label;
+        }
     }
 
     private static final class EndpointOption {

http://git-wip-us.apache.org/repos/asf/camel/blob/636cbb5b/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 9342431..5b3f3fe 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
@@ -33,7 +33,10 @@ import java.lang.annotation.Target;
 public @interface UriEndpoint {
 
     /**
-     * Represents the URI scheme name of this endpoint
+     * Represents the URI scheme name of this endpoint.
+     * <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.
      */
     String scheme();
 
@@ -47,4 +50,13 @@ public @interface UriEndpoint {
      * properties from the consumer properties
      */
     String consumerPrefix() default "";
+
+    /**
+     * To associate this endpoint with label(s).
+     * <p/>
+     * Multiple labels can be defined as a comma separated value.
+     * <p/>
+     * The labels is intended for grouping the endpoints, such as 
<tt>core</tt>, <tt>file</tt>, <tt>messaging</tt>, <tt>database</tt>, etc.
+     */
+    String label() default "";
 }
\ No newline at end of file

Reply via email to