You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/06/25 14:44:37 UTC

[camel] branch master updated: camel-main-maven-plugin - Avoid duplicate spring boot groups in the generated metadata json file.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 4dc252f  camel-main-maven-plugin - Avoid duplicate spring boot groups in the generated metadata json file.
4dc252f is described below

commit 4dc252fdee9d14cf8a99496a039117a4cb2c5d17
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 25 16:44:11 2019 +0200

    camel-main-maven-plugin - Avoid duplicate spring boot groups in the generated metadata json file.
---
 .../java/org/apache/camel/maven/GenerateMojo.java  |   6 +-
 .../camel/maven/model/SpringBootGroupData.java     |  19 +
 .../META-INF/spring-configuration-metadata.json    | 950 +--------------------
 .../META-INF/spring-configuration-metadata.json    | 455 ----------
 4 files changed, 69 insertions(+), 1361 deletions(-)

diff --git a/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java b/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
index 876b5c5..142db9d 100644
--- a/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
+++ b/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
@@ -162,7 +162,11 @@ public class GenerateMojo extends AbstractMainMojo {
             if (springBootEnabled) {
                 getLog().debug("Spring Boot option: " + key);
                 propertyData.add(new SpringBootPropertyData(key, springBootJavaType(javaType), description, componentJavaType, defaultValue, deprecated));
-                groupData.add(new SpringBootGroupData("camel.component." + componentName, componentDescription, componentJavaType));
+                // avoid duplicate groups (it has equal/hashCode contract on name only)
+                SpringBootGroupData group = new SpringBootGroupData("camel.component." + componentName, componentDescription, componentJavaType);
+                if (!groupData.contains(group)) {
+                    groupData.add(group);
+                }
             }
 
             // check if we can do automatic autowire to complex singleton objects from classes in the classpath
diff --git a/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/model/SpringBootGroupData.java b/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/model/SpringBootGroupData.java
index 9ecf8f3..57794a8 100644
--- a/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/model/SpringBootGroupData.java
+++ b/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/model/SpringBootGroupData.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.maven.model;
 
+import java.util.Objects;
+
 public final class SpringBootGroupData {
 
     private String name;
@@ -51,4 +53,21 @@ public final class SpringBootGroupData {
     public void setSourceType(String sourceType) {
         this.sourceType = sourceType;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        SpringBootGroupData that = (SpringBootGroupData) o;
+        return name.equals(that.name);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(name);
+    }
 }
diff --git a/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json b/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json
index 7a3f173..ba64ce0 100644
--- a/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json
+++ b/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json
@@ -21,21 +21,6 @@
 			"sourceType":"org.apache.camel.component.bean.BeanComponent"
 		},
 		{
-			"name":"camel.component.bean",
-			"description":"The bean component is for invoking Java beans from Camel.",
-			"sourceType":"org.apache.camel.component.bean.BeanComponent"
-		},
-		{
-			"name":"camel.component.bean",
-			"description":"The bean component is for invoking Java beans from Camel.",
-			"sourceType":"org.apache.camel.component.bean.BeanComponent"
-		},
-		{
-			"name":"camel.component.browse",
-			"description":"The browse component is used for viewing the messages received on endpoints that supports BrowsableEndpoint.",
-			"sourceType":"org.apache.camel.component.browse.BrowseComponent"
-		},
-		{
 			"name":"camel.component.browse",
 			"description":"The browse component is used for viewing the messages received on endpoints that supports BrowsableEndpoint.",
 			"sourceType":"org.apache.camel.component.browse.BrowseComponent"
@@ -46,21 +31,6 @@
 			"sourceType":"org.apache.camel.component.beanclass.ClassComponent"
 		},
 		{
-			"name":"camel.component.class",
-			"description":"The class component is for invoking Java classes (Java beans) from Camel.",
-			"sourceType":"org.apache.camel.component.beanclass.ClassComponent"
-		},
-		{
-			"name":"camel.component.class",
-			"description":"The class component is for invoking Java classes (Java beans) from Camel.",
-			"sourceType":"org.apache.camel.component.beanclass.ClassComponent"
-		},
-		{
-			"name":"camel.component.controlbus",
-			"description":"The controlbus component provides easy management of Camel applications based on the Control Bus EIP pattern.",
-			"sourceType":"org.apache.camel.component.controlbus.ControlBusComponent"
-		},
-		{
 			"name":"camel.component.controlbus",
 			"description":"The controlbus component provides easy management of Camel applications based on the Control Bus EIP pattern.",
 			"sourceType":"org.apache.camel.component.controlbus.ControlBusComponent"
@@ -71,16 +41,6 @@
 			"sourceType":"org.apache.camel.component.dataformat.DataFormatComponent"
 		},
 		{
-			"name":"camel.component.dataformat",
-			"description":"The dataformat component is used for working with Data Formats as if it was a regular Component supporting Endpoints and URIs.",
-			"sourceType":"org.apache.camel.component.dataformat.DataFormatComponent"
-		},
-		{
-			"name":"camel.component.dataset",
-			"description":"The dataset component provides a mechanism to easily perform load & soak testing of your system.",
-			"sourceType":"org.apache.camel.component.dataset.DataSetComponent"
-		},
-		{
 			"name":"camel.component.dataset",
 			"description":"The dataset component provides a mechanism to easily perform load & soak testing of your system.",
 			"sourceType":"org.apache.camel.component.dataset.DataSetComponent"
@@ -91,26 +51,6 @@
 			"sourceType":"org.apache.camel.component.dataset.DataSetTestComponent"
 		},
 		{
-			"name":"camel.component.dataset-test",
-			"description":"The dataset-test component extends the mock component by on startup to pull messages from another endpoint to set the expected message bodies.",
-			"sourceType":"org.apache.camel.component.dataset.DataSetTestComponent"
-		},
-		{
-			"name":"camel.component.direct",
-			"description":"The direct component provides direct, synchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.direct.DirectComponent"
-		},
-		{
-			"name":"camel.component.direct",
-			"description":"The direct component provides direct, synchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.direct.DirectComponent"
-		},
-		{
-			"name":"camel.component.direct",
-			"description":"The direct component provides direct, synchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.direct.DirectComponent"
-		},
-		{
 			"name":"camel.component.direct",
 			"description":"The direct component provides direct, synchronous call to another endpoint from the same CamelContext.",
 			"sourceType":"org.apache.camel.component.direct.DirectComponent"
@@ -121,36 +61,6 @@
 			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
 		},
 		{
-			"name":"camel.component.direct-vm",
-			"description":"The direct-vm component provides direct, synchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
-		},
-		{
-			"name":"camel.component.direct-vm",
-			"description":"The direct-vm component provides direct, synchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
-		},
-		{
-			"name":"camel.component.direct-vm",
-			"description":"The direct-vm component provides direct, synchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
-		},
-		{
-			"name":"camel.component.direct-vm",
-			"description":"The direct-vm component provides direct, synchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
-		},
-		{
-			"name":"camel.component.direct-vm",
-			"description":"The direct-vm component provides direct, synchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
-		},
-		{
-			"name":"camel.component.file",
-			"description":"The file component is used for reading or writing files.",
-			"sourceType":"org.apache.camel.component.file.FileComponent"
-		},
-		{
 			"name":"camel.component.file",
 			"description":"The file component is used for reading or writing files.",
 			"sourceType":"org.apache.camel.component.file.FileComponent"
@@ -161,809 +71,79 @@
 			"sourceType":"org.apache.camel.component.jms.JmsComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.language",
+			"description":"The language component allows you to send a message to an endpoint which executes a script by any of the supported Languages in Camel.",
+			"sourceType":"org.apache.camel.component.language.LanguageComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.log",
+			"description":"The log component logs message exchanges to the underlying logging mechanism.",
+			"sourceType":"org.apache.camel.component.log.LogComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.mock",
+			"description":"The mock component is used for testing routes and mediation rules using mocks.",
+			"sourceType":"org.apache.camel.component.mock.MockComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.properties",
+			"description":"The properties component is used for using property placeholders in endpoint uris.",
+			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.quartz2",
+			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
+			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.ref",
+			"description":"The ref component is used for lookup of existing endpoints bound in the Registry.",
+			"sourceType":"org.apache.camel.component.ref.RefComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.rest",
+			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
+			"sourceType":"org.apache.camel.component.rest.RestComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.rest-api",
+			"description":"The rest-api component is used for providing Swagger API of the REST services which has been defined using the rest-dsl in Camel.",
+			"sourceType":"org.apache.camel.component.rest.RestApiComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.saga",
+			"description":"The saga component provides access to advanced options for managing the flow in the Saga EIP.",
+			"sourceType":"org.apache.camel.component.saga.SagaComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.scheduler",
+			"description":"The scheduler component is used for generating message exchanges when a scheduler fires.",
+			"sourceType":"org.apache.camel.component.scheduler.SchedulerComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.seda",
+			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
+			"sourceType":"org.apache.camel.component.seda.SedaComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.spring-event",
+			"description":"The spring-event component allows to listen for Spring Application Events.",
+			"sourceType":"org.apache.camel.component.event.EventComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.stub",
+			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
+			"sourceType":"org.apache.camel.component.stub.StubComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
+			"name":"camel.component.timer",
+			"description":"The timer component is used for generating message exchanges when a timer fires.",
+			"sourceType":"org.apache.camel.component.timer.TimerComponent"
 		},
 		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.jms",
-			"description":"The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.",
-			"sourceType":"org.apache.camel.component.jms.JmsComponent"
-		},
-		{
-			"name":"camel.component.language",
-			"description":"The language component allows you to send a message to an endpoint which executes a script by any of the supported Languages in Camel.",
-			"sourceType":"org.apache.camel.component.language.LanguageComponent"
-		},
-		{
-			"name":"camel.component.language",
-			"description":"The language component allows you to send a message to an endpoint which executes a script by any of the supported Languages in Camel.",
-			"sourceType":"org.apache.camel.component.language.LanguageComponent"
-		},
-		{
-			"name":"camel.component.log",
-			"description":"The log component logs message exchanges to the underlying logging mechanism.",
-			"sourceType":"org.apache.camel.component.log.LogComponent"
-		},
-		{
-			"name":"camel.component.log",
-			"description":"The log component logs message exchanges to the underlying logging mechanism.",
-			"sourceType":"org.apache.camel.component.log.LogComponent"
-		},
-		{
-			"name":"camel.component.log",
-			"description":"The log component logs message exchanges to the underlying logging mechanism.",
-			"sourceType":"org.apache.camel.component.log.LogComponent"
-		},
-		{
-			"name":"camel.component.mock",
-			"description":"The mock component is used for testing routes and mediation rules using mocks.",
-			"sourceType":"org.apache.camel.component.mock.MockComponent"
-		},
-		{
-			"name":"camel.component.mock",
-			"description":"The mock component is used for testing routes and mediation rules using mocks.",
-			"sourceType":"org.apache.camel.component.mock.MockComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.ref",
-			"description":"The ref component is used for lookup of existing endpoints bound in the Registry.",
-			"sourceType":"org.apache.camel.component.ref.RefComponent"
-		},
-		{
-			"name":"camel.component.ref",
-			"description":"The ref component is used for lookup of existing endpoints bound in the Registry.",
-			"sourceType":"org.apache.camel.component.ref.RefComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest-api",
-			"description":"The rest-api component is used for providing Swagger API of the REST services which has been defined using the rest-dsl in Camel.",
-			"sourceType":"org.apache.camel.component.rest.RestApiComponent"
-		},
-		{
-			"name":"camel.component.rest-api",
-			"description":"The rest-api component is used for providing Swagger API of the REST services which has been defined using the rest-dsl in Camel.",
-			"sourceType":"org.apache.camel.component.rest.RestApiComponent"
-		},
-		{
-			"name":"camel.component.saga",
-			"description":"The saga component provides access to advanced options for managing the flow in the Saga EIP.",
-			"sourceType":"org.apache.camel.component.saga.SagaComponent"
-		},
-		{
-			"name":"camel.component.saga",
-			"description":"The saga component provides access to advanced options for managing the flow in the Saga EIP.",
-			"sourceType":"org.apache.camel.component.saga.SagaComponent"
-		},
-		{
-			"name":"camel.component.scheduler",
-			"description":"The scheduler component is used for generating message exchanges when a scheduler fires.",
-			"sourceType":"org.apache.camel.component.scheduler.SchedulerComponent"
-		},
-		{
-			"name":"camel.component.scheduler",
-			"description":"The scheduler component is used for generating message exchanges when a scheduler fires.",
-			"sourceType":"org.apache.camel.component.scheduler.SchedulerComponent"
-		},
-		{
-			"name":"camel.component.scheduler",
-			"description":"The scheduler component is used for generating message exchanges when a scheduler fires.",
-			"sourceType":"org.apache.camel.component.scheduler.SchedulerComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.spring-event",
-			"description":"The spring-event component allows to listen for Spring Application Events.",
-			"sourceType":"org.apache.camel.component.event.EventComponent"
-		},
-		{
-			"name":"camel.component.spring-event",
-			"description":"The spring-event component allows to listen for Spring Application Events.",
-			"sourceType":"org.apache.camel.component.event.EventComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.timer",
-			"description":"The timer component is used for generating message exchanges when a timer fires.",
-			"sourceType":"org.apache.camel.component.timer.TimerComponent"
-		},
-		{
-			"name":"camel.component.timer",
-			"description":"The timer component is used for generating message exchanges when a timer fires.",
-			"sourceType":"org.apache.camel.component.timer.TimerComponent"
-		},
-		{
-			"name":"camel.component.validator",
-			"description":"Validates the payload of a message using XML Schema and JAXP Validation.",
-			"sourceType":"org.apache.camel.component.validator.ValidatorComponent"
-		},
-		{
-			"name":"camel.component.validator",
-			"description":"Validates the payload of a message using XML Schema and JAXP Validation.",
-			"sourceType":"org.apache.camel.component.validator.ValidatorComponent"
-		},
-		{
-			"name":"camel.component.validator",
-			"description":"Validates the payload of a message using XML Schema and JAXP Validation.",
-			"sourceType":"org.apache.camel.component.validator.ValidatorComponent"
-		},
-		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
-		},
-		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
-		},
-		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
-		},
-		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
-		},
-		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
-		},
-		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
+			"name":"camel.component.validator",
+			"description":"Validates the payload of a message using XML Schema and JAXP Validation.",
+			"sourceType":"org.apache.camel.component.validator.ValidatorComponent"
 		},
 		{
 			"name":"camel.component.vm",
@@ -974,46 +154,6 @@
 			"name":"camel.component.xslt",
 			"description":"Transforms the message using a XSLT template.",
 			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
 		}
 	],
 	"properties":[
diff --git a/examples/camel-example-main/src/main/resources/META-INF/spring-configuration-metadata.json b/examples/camel-example-main/src/main/resources/META-INF/spring-configuration-metadata.json
index 7e338cb..5340af6 100644
--- a/examples/camel-example-main/src/main/resources/META-INF/spring-configuration-metadata.json
+++ b/examples/camel-example-main/src/main/resources/META-INF/spring-configuration-metadata.json
@@ -21,21 +21,6 @@
 			"sourceType":"org.apache.camel.component.bean.BeanComponent"
 		},
 		{
-			"name":"camel.component.bean",
-			"description":"The bean component is for invoking Java beans from Camel.",
-			"sourceType":"org.apache.camel.component.bean.BeanComponent"
-		},
-		{
-			"name":"camel.component.bean",
-			"description":"The bean component is for invoking Java beans from Camel.",
-			"sourceType":"org.apache.camel.component.bean.BeanComponent"
-		},
-		{
-			"name":"camel.component.browse",
-			"description":"The browse component is used for viewing the messages received on endpoints that supports BrowsableEndpoint.",
-			"sourceType":"org.apache.camel.component.browse.BrowseComponent"
-		},
-		{
 			"name":"camel.component.browse",
 			"description":"The browse component is used for viewing the messages received on endpoints that supports BrowsableEndpoint.",
 			"sourceType":"org.apache.camel.component.browse.BrowseComponent"
@@ -46,21 +31,6 @@
 			"sourceType":"org.apache.camel.component.beanclass.ClassComponent"
 		},
 		{
-			"name":"camel.component.class",
-			"description":"The class component is for invoking Java classes (Java beans) from Camel.",
-			"sourceType":"org.apache.camel.component.beanclass.ClassComponent"
-		},
-		{
-			"name":"camel.component.class",
-			"description":"The class component is for invoking Java classes (Java beans) from Camel.",
-			"sourceType":"org.apache.camel.component.beanclass.ClassComponent"
-		},
-		{
-			"name":"camel.component.controlbus",
-			"description":"The controlbus component provides easy management of Camel applications based on the Control Bus EIP pattern.",
-			"sourceType":"org.apache.camel.component.controlbus.ControlBusComponent"
-		},
-		{
 			"name":"camel.component.controlbus",
 			"description":"The controlbus component provides easy management of Camel applications based on the Control Bus EIP pattern.",
 			"sourceType":"org.apache.camel.component.controlbus.ControlBusComponent"
@@ -71,16 +41,6 @@
 			"sourceType":"org.apache.camel.component.dataformat.DataFormatComponent"
 		},
 		{
-			"name":"camel.component.dataformat",
-			"description":"The dataformat component is used for working with Data Formats as if it was a regular Component supporting Endpoints and URIs.",
-			"sourceType":"org.apache.camel.component.dataformat.DataFormatComponent"
-		},
-		{
-			"name":"camel.component.dataset",
-			"description":"The dataset component provides a mechanism to easily perform load & soak testing of your system.",
-			"sourceType":"org.apache.camel.component.dataset.DataSetComponent"
-		},
-		{
 			"name":"camel.component.dataset",
 			"description":"The dataset component provides a mechanism to easily perform load & soak testing of your system.",
 			"sourceType":"org.apache.camel.component.dataset.DataSetComponent"
@@ -91,26 +51,6 @@
 			"sourceType":"org.apache.camel.component.dataset.DataSetTestComponent"
 		},
 		{
-			"name":"camel.component.dataset-test",
-			"description":"The dataset-test component extends the mock component by on startup to pull messages from another endpoint to set the expected message bodies.",
-			"sourceType":"org.apache.camel.component.dataset.DataSetTestComponent"
-		},
-		{
-			"name":"camel.component.direct",
-			"description":"The direct component provides direct, synchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.direct.DirectComponent"
-		},
-		{
-			"name":"camel.component.direct",
-			"description":"The direct component provides direct, synchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.direct.DirectComponent"
-		},
-		{
-			"name":"camel.component.direct",
-			"description":"The direct component provides direct, synchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.direct.DirectComponent"
-		},
-		{
 			"name":"camel.component.direct",
 			"description":"The direct component provides direct, synchronous call to another endpoint from the same CamelContext.",
 			"sourceType":"org.apache.camel.component.direct.DirectComponent"
@@ -121,46 +61,11 @@
 			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
 		},
 		{
-			"name":"camel.component.direct-vm",
-			"description":"The direct-vm component provides direct, synchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
-		},
-		{
-			"name":"camel.component.direct-vm",
-			"description":"The direct-vm component provides direct, synchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
-		},
-		{
-			"name":"camel.component.direct-vm",
-			"description":"The direct-vm component provides direct, synchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
-		},
-		{
-			"name":"camel.component.direct-vm",
-			"description":"The direct-vm component provides direct, synchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
-		},
-		{
-			"name":"camel.component.direct-vm",
-			"description":"The direct-vm component provides direct, synchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.directvm.DirectVmComponent"
-		},
-		{
 			"name":"camel.component.file",
 			"description":"The file component is used for reading or writing files.",
 			"sourceType":"org.apache.camel.component.file.FileComponent"
 		},
 		{
-			"name":"camel.component.file",
-			"description":"The file component is used for reading or writing files.",
-			"sourceType":"org.apache.camel.component.file.FileComponent"
-		},
-		{
-			"name":"camel.component.language",
-			"description":"The language component allows you to send a message to an endpoint which executes a script by any of the supported Languages in Camel.",
-			"sourceType":"org.apache.camel.component.language.LanguageComponent"
-		},
-		{
 			"name":"camel.component.language",
 			"description":"The language component allows you to send a message to an endpoint which executes a script by any of the supported Languages in Camel.",
 			"sourceType":"org.apache.camel.component.language.LanguageComponent"
@@ -171,21 +76,6 @@
 			"sourceType":"org.apache.camel.component.log.LogComponent"
 		},
 		{
-			"name":"camel.component.log",
-			"description":"The log component logs message exchanges to the underlying logging mechanism.",
-			"sourceType":"org.apache.camel.component.log.LogComponent"
-		},
-		{
-			"name":"camel.component.log",
-			"description":"The log component logs message exchanges to the underlying logging mechanism.",
-			"sourceType":"org.apache.camel.component.log.LogComponent"
-		},
-		{
-			"name":"camel.component.mock",
-			"description":"The mock component is used for testing routes and mediation rules using mocks.",
-			"sourceType":"org.apache.camel.component.mock.MockComponent"
-		},
-		{
 			"name":"camel.component.mock",
 			"description":"The mock component is used for testing routes and mediation rules using mocks.",
 			"sourceType":"org.apache.camel.component.mock.MockComponent"
@@ -196,151 +86,6 @@
 			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
 		},
 		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.properties",
-			"description":"The properties component is used for using property placeholders in endpoint uris.",
-			"sourceType":"org.apache.camel.component.properties.PropertiesComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
-			"name":"camel.component.quartz2",
-			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
-			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
-		},
-		{
 			"name":"camel.component.quartz2",
 			"description":"Provides a scheduled delivery of messages using the Quartz 2.x scheduler.",
 			"sourceType":"org.apache.camel.component.quartz2.QuartzComponent"
@@ -351,41 +96,6 @@
 			"sourceType":"org.apache.camel.component.ref.RefComponent"
 		},
 		{
-			"name":"camel.component.ref",
-			"description":"The ref component is used for lookup of existing endpoints bound in the Registry.",
-			"sourceType":"org.apache.camel.component.ref.RefComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
-			"name":"camel.component.rest",
-			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
-			"sourceType":"org.apache.camel.component.rest.RestComponent"
-		},
-		{
 			"name":"camel.component.rest",
 			"description":"The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).",
 			"sourceType":"org.apache.camel.component.rest.RestComponent"
@@ -396,16 +106,6 @@
 			"sourceType":"org.apache.camel.component.rest.RestApiComponent"
 		},
 		{
-			"name":"camel.component.rest-api",
-			"description":"The rest-api component is used for providing Swagger API of the REST services which has been defined using the rest-dsl in Camel.",
-			"sourceType":"org.apache.camel.component.rest.RestApiComponent"
-		},
-		{
-			"name":"camel.component.saga",
-			"description":"The saga component provides access to advanced options for managing the flow in the Saga EIP.",
-			"sourceType":"org.apache.camel.component.saga.SagaComponent"
-		},
-		{
 			"name":"camel.component.saga",
 			"description":"The saga component provides access to advanced options for managing the flow in the Saga EIP.",
 			"sourceType":"org.apache.camel.component.saga.SagaComponent"
@@ -416,46 +116,6 @@
 			"sourceType":"org.apache.camel.component.scheduler.SchedulerComponent"
 		},
 		{
-			"name":"camel.component.scheduler",
-			"description":"The scheduler component is used for generating message exchanges when a scheduler fires.",
-			"sourceType":"org.apache.camel.component.scheduler.SchedulerComponent"
-		},
-		{
-			"name":"camel.component.scheduler",
-			"description":"The scheduler component is used for generating message exchanges when a scheduler fires.",
-			"sourceType":"org.apache.camel.component.scheduler.SchedulerComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
-			"name":"camel.component.seda",
-			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
-			"sourceType":"org.apache.camel.component.seda.SedaComponent"
-		},
-		{
 			"name":"camel.component.seda",
 			"description":"The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.",
 			"sourceType":"org.apache.camel.component.seda.SedaComponent"
@@ -466,56 +126,11 @@
 			"sourceType":"org.apache.camel.component.stub.StubComponent"
 		},
 		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
-			"name":"camel.component.stub",
-			"description":"The stub component provides a simple way to stub out any physical endpoints while in development or testing.",
-			"sourceType":"org.apache.camel.component.stub.StubComponent"
-		},
-		{
 			"name":"camel.component.timer",
 			"description":"The timer component is used for generating message exchanges when a timer fires.",
 			"sourceType":"org.apache.camel.component.timer.TimerComponent"
 		},
 		{
-			"name":"camel.component.timer",
-			"description":"The timer component is used for generating message exchanges when a timer fires.",
-			"sourceType":"org.apache.camel.component.timer.TimerComponent"
-		},
-		{
-			"name":"camel.component.validator",
-			"description":"Validates the payload of a message using XML Schema and JAXP Validation.",
-			"sourceType":"org.apache.camel.component.validator.ValidatorComponent"
-		},
-		{
-			"name":"camel.component.validator",
-			"description":"Validates the payload of a message using XML Schema and JAXP Validation.",
-			"sourceType":"org.apache.camel.component.validator.ValidatorComponent"
-		},
-		{
 			"name":"camel.component.validator",
 			"description":"Validates the payload of a message using XML Schema and JAXP Validation.",
 			"sourceType":"org.apache.camel.component.validator.ValidatorComponent"
@@ -526,76 +141,6 @@
 			"sourceType":"org.apache.camel.component.vm.VmComponent"
 		},
 		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
-		},
-		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
-		},
-		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
-		},
-		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
-		},
-		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
-		},
-		{
-			"name":"camel.component.vm",
-			"description":"The vm component provides asynchronous call to another endpoint from the same CamelContext.",
-			"sourceType":"org.apache.camel.component.vm.VmComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
-			"name":"camel.component.xslt",
-			"description":"Transforms the message using a XSLT template.",
-			"sourceType":"org.apache.camel.component.xslt.XsltComponent"
-		},
-		{
 			"name":"camel.component.xslt",
 			"description":"Transforms the message using a XSLT template.",
 			"sourceType":"org.apache.camel.component.xslt.XsltComponent"