You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2024/03/11 10:47:02 UTC

(camel) branch main updated: CAMEL-16557: add a free form key value map on components, dataformats, languages, etc

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

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


The following commit(s) were added to refs/heads/main by this push:
     new db232c5af0e CAMEL-16557: add a free form key value map on components, dataformats, languages, etc
db232c5af0e is described below

commit db232c5af0e48b876c92caa1f7ad720daf1ec62d
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Fri Mar 8 18:08:27 2024 +0100

    CAMEL-16557: add a free form key value map on components, dataformats, languages, etc
---
 .../catalog/components/atmosphere-websocket.json   |  1 +
 .../org/apache/camel/catalog/components/cxf.json   |  1 +
 .../org/apache/camel/catalog/components/cxfrs.json |  1 +
 .../org/apache/camel/catalog/components/grpc.json  |  1 +
 .../org/apache/camel/catalog/components/http.json  |  1 +
 .../org/apache/camel/catalog/components/https.json |  1 +
 .../org/apache/camel/catalog/components/jetty.json |  1 +
 .../apache/camel/catalog/components/knative.json   |  1 +
 .../camel/catalog/components/netty-http.json       |  1 +
 .../camel/catalog/components/platform-http.json    |  1 +
 .../org/apache/camel/catalog/components/rest.json  |  1 +
 .../apache/camel/catalog/components/servlet.json   |  1 +
 .../apache/camel/catalog/components/spring-ws.json |  1 +
 .../apache/camel/catalog/components/webhook.json   |  1 +
 .../apache/camel/catalog/others/groovy-dsl.json    |  1 +
 .../apache/camel/catalog/others/java-joor-dsl.json |  1 +
 .../org/apache/camel/catalog/others/js-dsl.json    |  1 +
 .../org/apache/camel/catalog/others/jsh-dsl.json   |  1 +
 .../apache/camel/catalog/others/kotlin-dsl.json    |  1 +
 .../apache/camel/catalog/others/xml-io-dsl.json    |  1 +
 .../org/apache/camel/catalog/others/yaml-dsl.json  |  1 +
 .../atmosphere/websocket/atmosphere-websocket.json |  1 +
 .../atmosphere/websocket/WebsocketEndpoint.java    |  5 +-
 .../apache/camel/component/cxf/jaxrs/cxfrs.json    |  1 +
 .../camel/component/cxf/jaxrs/CxfRsEndpoint.java   |  4 ++
 .../org/apache/camel/component/cxf/jaxws/cxf.json  |  1 +
 .../camel/component/cxf/jaxws/CxfEndpoint.java     |  4 ++
 .../org/apache/camel/component/grpc/grpc.json      |  1 +
 .../apache/camel/component/grpc/GrpcEndpoint.java  |  4 ++
 .../org/apache/camel/component/http/http.json      |  1 +
 .../org/apache/camel/component/http/https.json     |  1 +
 .../apache/camel/component/http/HttpEndpoint.java  |  4 +-
 .../org/apache/camel/component/jetty12/jetty.json  |  1 +
 .../component/jetty12/JettyHttpEndpoint12.java     |  5 +-
 .../jsonvalidator/JsonValidatorEndpoint.java       |  7 ++-
 .../apache/camel/component/knative/knative.json    |  1 +
 .../camel/component/knative/KnativeEndpoint.java   |  4 ++
 .../camel/component/netty/http/netty-http.json     |  1 +
 .../component/netty/http/NettyHttpEndpoint.java    |  5 +-
 .../component/platform/http/platform-http.json     |  1 +
 .../platform/http/PlatformHttpEndpoint.java        |  3 ++
 .../org/apache/camel/component/rest/rest.json      |  1 +
 .../apache/camel/component/rest/RestEndpoint.java  |  3 ++
 .../apache/camel/component/servlet/servlet.json    |  1 +
 .../camel/component/servlet/ServletEndpoint.java   |  4 +-
 .../camel/component/spring/ws/spring-ws.json       |  1 +
 .../spring/ws/SpringWebserviceEndpoint.java        |  4 ++
 .../apache/camel/component/webhook/webhook.json    |  1 +
 .../camel/component/webhook/WebhookEndpoint.java   |  4 ++
 .../java/org/apache/camel/spi/Metadata.java        |  5 ++
 .../src/generated/resources/metadata.json          | 14 +++++
 dsl/camel-groovy-dsl/camel-groovy-dsl/pom.xml      |  3 ++
 .../services/org/apache/camel/other.properties     |  1 +
 .../src/generated/resources/groovy-dsl.json        |  1 +
 dsl/camel-java-joor-dsl/pom.xml                    |  3 ++
 .../services/org/apache/camel/other.properties     |  1 +
 .../src/generated/resources/java-joor-dsl.json     |  1 +
 dsl/camel-js-dsl/pom.xml                           |  3 ++
 .../services/org/apache/camel/other.properties     |  1 +
 .../src/generated/resources/js-dsl.json            |  1 +
 dsl/camel-jsh-dsl/pom.xml                          |  3 ++
 .../services/org/apache/camel/other.properties     |  1 +
 .../src/generated/resources/jsh-dsl.json           |  1 +
 dsl/camel-kotlin-dsl/pom.xml                       |  3 ++
 .../services/org/apache/camel/other.properties     |  1 +
 .../src/generated/resources/kotlin-dsl.json        |  1 +
 dsl/camel-xml-io-dsl/pom.xml                       |  3 ++
 .../services/org/apache/camel/other.properties     |  1 +
 .../src/generated/resources/xml-io-dsl.json        |  1 +
 dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml          |  4 ++
 .../services/org/apache/camel/other.properties     |  1 +
 .../src/generated/resources/yaml-dsl.json          |  1 +
 .../maven/packaging/AbstractGeneratorMojo.java     |  7 +++
 .../packaging/EndpointSchemaGeneratorMojo.java     |  4 ++
 .../maven/packaging/PackageDataFormatMojo.java     |  4 ++
 .../camel/maven/packaging/PackageLanguageMojo.java |  4 ++
 .../camel/maven/packaging/PackageOtherMojo.java    |  2 +
 .../apache/camel/maven/packaging/SchemaHelper.java | 61 ++++++++++++++++++++++
 .../main/java/org/apache/camel/spi/Metadata.java   |  5 ++
 79 files changed, 231 insertions(+), 6 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/atmosphere-websocket.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/atmosphere-websocket.json
index 2cc8380708c..5a21a3f103b 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/atmosphere-websocket.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/atmosphere-websocket.json
@@ -9,6 +9,7 @@
     "label": "http,networking",
     "javaType": "org.apache.camel.component.atmosphere.websocket.WebsocketComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-atmosphere-websocket",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cxf.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cxf.json
index 59203ece792..a60b24bf305 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cxf.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cxf.json
@@ -9,6 +9,7 @@
     "label": "http,webservice",
     "javaType": "org.apache.camel.component.cxf.jaxws.CxfComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-cxf-soap",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cxfrs.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cxfrs.json
index 40f5724a6c2..001a0c42719 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cxfrs.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cxfrs.json
@@ -9,6 +9,7 @@
     "label": "rest",
     "javaType": "org.apache.camel.component.cxf.jaxrs.CxfRsComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-cxf-rest",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json
index 131184fc9d4..8b3d769d401 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json
@@ -9,6 +9,7 @@
     "label": "rpc",
     "javaType": "org.apache.camel.component.grpc.GrpcComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-grpc",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json
index 847bb8627e4..98c37c4c07b 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json
@@ -9,6 +9,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.http.HttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-http",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json
index 940b64c1ecb..8a232a8d844 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json
@@ -9,6 +9,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.http.HttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-http",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jetty.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jetty.json
index 41399f87c64..6bc6e2080a3 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jetty.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jetty.json
@@ -9,6 +9,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.jetty12.JettyHttpComponent12",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-jetty",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/knative.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/knative.json
index 2f6c7f376b2..e88ad18071f 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/knative.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/knative.json
@@ -9,6 +9,7 @@
     "label": "cloud",
     "javaType": "org.apache.camel.component.knative.KnativeComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-knative",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/netty-http.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/netty-http.json
index 995ea0a170e..cf7155e007c 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/netty-http.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/netty-http.json
@@ -9,6 +9,7 @@
     "label": "networking,http",
     "javaType": "org.apache.camel.component.netty.http.NettyHttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-netty-http",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/platform-http.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/platform-http.json
index 0a784762006..9f2fb17af36 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/platform-http.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/platform-http.json
@@ -9,6 +9,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.platform.http.PlatformHttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-platform-http",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/rest.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/rest.json
index 51eb7a89e97..bf08cba22d2 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/rest.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/rest.json
@@ -9,6 +9,7 @@
     "label": "core,rest",
     "javaType": "org.apache.camel.component.rest.RestComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-rest",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/servlet.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/servlet.json
index 9e656e5d69c..77e8da1a9af 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/servlet.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/servlet.json
@@ -9,6 +9,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.servlet.ServletComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-servlet",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/spring-ws.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/spring-ws.json
index 39cedd3eb49..9ee11657618 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/spring-ws.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/spring-ws.json
@@ -9,6 +9,7 @@
     "label": "webservice",
     "javaType": "org.apache.camel.component.spring.ws.SpringWebserviceComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-spring-ws",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/webhook.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/webhook.json
index d49bd3cd87e..544fc7cef9f 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/webhook.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/webhook.json
@@ -9,6 +9,7 @@
     "label": "cloud",
     "javaType": "org.apache.camel.component.webhook.WebhookComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-webhook",
     "version": "4.5.0-SNAPSHOT",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/groovy-dsl.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/groovy-dsl.json
index c9fba197e76..976e7333079 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/groovy-dsl.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/groovy-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Experimental",
+    "metadata": { "routes.language": "groovy" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-groovy-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/java-joor-dsl.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/java-joor-dsl.json
index ab5b3355ab3..2ad51bef97b 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/java-joor-dsl.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/java-joor-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Stable",
+    "metadata": { "routes.language": "java" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-java-joor-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/js-dsl.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/js-dsl.json
index 16fcfd57408..7b0e58ca926 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/js-dsl.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/js-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Experimental",
+    "metadata": { "routes.language": "js" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-js-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/jsh-dsl.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/jsh-dsl.json
index b94a28b4018..e9764a538d6 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/jsh-dsl.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/jsh-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.15.0",
     "label": "dsl",
     "supportLevel": "Experimental",
+    "metadata": { "routes.language": "jsh" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-jsh-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/kotlin-dsl.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/kotlin-dsl.json
index d4153fafbd6..f34d2e2ba87 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/kotlin-dsl.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/kotlin-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Experimental",
+    "metadata": { "routes.language": "kotlin" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-kotlin-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/xml-io-dsl.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/xml-io-dsl.json
index 4ca383b8b3b..1044f05035b 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/xml-io-dsl.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/xml-io-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Stable",
+    "metadata": { "routes.language": "xml" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-xml-io-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/yaml-dsl.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/yaml-dsl.json
index c5f47b8328b..cc9c8a7dcde 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/yaml-dsl.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/yaml-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Stable",
+    "metadata": { "routes.language": "yaml" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-yaml-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/components/camel-atmosphere-websocket/src/generated/resources/META-INF/org/apache/camel/component/atmosphere/websocket/atmosphere-websocket.json b/components/camel-atmosphere-websocket/src/generated/resources/META-INF/org/apache/camel/component/atmosphere/websocket/atmosphere-websocket.json
index 2cc8380708c..5a21a3f103b 100644
--- a/components/camel-atmosphere-websocket/src/generated/resources/META-INF/org/apache/camel/component/atmosphere/websocket/atmosphere-websocket.json
+++ b/components/camel-atmosphere-websocket/src/generated/resources/META-INF/org/apache/camel/component/atmosphere/websocket/atmosphere-websocket.json
@@ -9,6 +9,7 @@
     "label": "http,networking",
     "javaType": "org.apache.camel.component.atmosphere.websocket.WebsocketComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-atmosphere-websocket",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
index b8e89f424e1..5b155b456da 100644
--- a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
+++ b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
@@ -40,7 +40,10 @@ import org.apache.camel.util.StringHelper;
 @Metadata(excludeProperties = "httpUri,contextPath,cookieHandler,connectionClose,authMethod,authMethodPriority,authUsername,authPassword,authDomain,authHost,"
                               + "copyHeaders,httpMethod,ignoreResponseBody,preserveHostHeader,throwExceptionOnFailure,okStatusCodeRange,"
                               + "proxyAuthScheme,proxyAuthMethod,proxyAuthUsername,proxyAuthPassword,proxyAuthHost,proxyAuthPort,proxyAuthDomain,"
-                              + "proxyAuthNtHost,proxyAuthScheme,proxyHost,proxyPort")
+                              + "proxyAuthNtHost,proxyAuthScheme,proxyHost,proxyPort",
+          annotations = {
+                  "protocol=http",
+          })
 public class WebsocketEndpoint extends ServletEndpoint {
 
     private WebSocketStore store;
diff --git a/components/camel-cxf/camel-cxf-rest/src/generated/resources/META-INF/org/apache/camel/component/cxf/jaxrs/cxfrs.json b/components/camel-cxf/camel-cxf-rest/src/generated/resources/META-INF/org/apache/camel/component/cxf/jaxrs/cxfrs.json
index 40f5724a6c2..001a0c42719 100644
--- a/components/camel-cxf/camel-cxf-rest/src/generated/resources/META-INF/org/apache/camel/component/cxf/jaxrs/cxfrs.json
+++ b/components/camel-cxf/camel-cxf-rest/src/generated/resources/META-INF/org/apache/camel/component/cxf/jaxrs/cxfrs.json
@@ -9,6 +9,7 @@
     "label": "rest",
     "javaType": "org.apache.camel.component.cxf.jaxrs.CxfRsComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-cxf-rest",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java b/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
index 1abd447319d..8c118e5f39a 100644
--- a/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
+++ b/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
@@ -38,6 +38,7 @@ import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.http.base.cookie.CookieHandler;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -71,6 +72,9 @@ import static org.apache.camel.component.cxf.common.message.CxfConstants.SCHEME_
  */
 @UriEndpoint(firstVersion = "2.0.0", scheme = SCHEME_CXF_RS, title = "CXF-RS", syntax = "cxfrs:beanId:address",
              category = { Category.REST }, lenientProperties = true, headersClass = CxfConstants.class)
+@Metadata(annotations = {
+        "protocol=http",
+})
 public class CxfRsEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware, Service {
 
     private static final Logger LOG = LoggerFactory.getLogger(CxfRsEndpoint.class);
diff --git a/components/camel-cxf/camel-cxf-soap/src/generated/resources/META-INF/org/apache/camel/component/cxf/jaxws/cxf.json b/components/camel-cxf/camel-cxf-soap/src/generated/resources/META-INF/org/apache/camel/component/cxf/jaxws/cxf.json
index 59203ece792..a60b24bf305 100644
--- a/components/camel-cxf/camel-cxf-soap/src/generated/resources/META-INF/org/apache/camel/component/cxf/jaxws/cxf.json
+++ b/components/camel-cxf/camel-cxf-soap/src/generated/resources/META-INF/org/apache/camel/component/cxf/jaxws/cxf.json
@@ -9,6 +9,7 @@
     "label": "http,webservice",
     "javaType": "org.apache.camel.component.cxf.jaxws.CxfComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-cxf-soap",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/CxfEndpoint.java b/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/CxfEndpoint.java
index 36630dc8144..4cb5b08db2d 100644
--- a/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/CxfEndpoint.java
+++ b/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/CxfEndpoint.java
@@ -69,6 +69,7 @@ import org.apache.camel.component.cxf.transport.header.CxfHeaderFilterStrategy;
 import org.apache.camel.http.base.cookie.CookieHandler;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -128,6 +129,9 @@ import static org.apache.camel.component.cxf.common.message.CxfConstants.SCHEME_
  */
 @UriEndpoint(firstVersion = "1.0.0", scheme = SCHEME_CXF, title = "CXF", syntax = "cxf:beanId:address",
              category = { Category.HTTP, Category.WEBSERVICE }, headersClass = CxfConstants.class)
+@Metadata(annotations = {
+        "protocol=http",
+})
 public class CxfEndpoint extends DefaultEndpoint implements AsyncEndpoint, HeaderFilterStrategyAware, Service, Cloneable {
 
     private static final Logger LOG = LoggerFactory.getLogger(CxfEndpoint.class);
diff --git a/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json b/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json
index 131184fc9d4..8b3d769d401 100644
--- a/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json
+++ b/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json
@@ -9,6 +9,7 @@
     "label": "rpc",
     "javaType": "org.apache.camel.component.grpc.GrpcComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-grpc",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcEndpoint.java b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcEndpoint.java
index aa0fd8d0ad1..cc262e82893 100644
--- a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcEndpoint.java
+++ b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcEndpoint.java
@@ -20,6 +20,7 @@ import org.apache.camel.Category;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.support.DefaultEndpoint;
@@ -31,6 +32,9 @@ import org.apache.camel.util.ObjectHelper;
  */
 @UriEndpoint(firstVersion = "2.19.0", scheme = "grpc", title = "gRPC", syntax = "grpc:host:port/service",
              category = { Category.RPC }, headersClass = GrpcConstants.class)
+@Metadata(annotations = {
+        "protocol=http",
+})
 public class GrpcEndpoint extends DefaultEndpoint {
     @UriParam
     protected final GrpcConfiguration configuration;
diff --git a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json
index 847bb8627e4..98c37c4c07b 100644
--- a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json
+++ b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json
@@ -9,6 +9,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.http.HttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-http",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json
index 940b64c1ecb..8a232a8d844 100644
--- a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json
+++ b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json
@@ -9,6 +9,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.http.HttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-http",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
index 746a83f623d..7385704681b 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
@@ -58,7 +58,9 @@ import org.slf4j.LoggerFactory;
  */
 @UriEndpoint(firstVersion = "2.3.0", scheme = "http,https", title = "HTTP,HTTPS", syntax = "http://httpUri",
              producerOnly = true, category = { Category.HTTP }, lenientProperties = true, headersClass = HttpConstants.class)
-@Metadata(excludeProperties = "httpBinding,matchOnUriPrefix,chunked,transferException")
+@Metadata(excludeProperties = "httpBinding,matchOnUriPrefix,chunked,transferException", annotations = {
+        "protocol=http"
+})
 @ManagedResource(description = "Managed HttpEndpoint")
 public class HttpEndpoint extends HttpCommonEndpoint {
 
diff --git a/components/camel-jetty/src/generated/resources/META-INF/org/apache/camel/component/jetty12/jetty.json b/components/camel-jetty/src/generated/resources/META-INF/org/apache/camel/component/jetty12/jetty.json
index 41399f87c64..6bc6e2080a3 100644
--- a/components/camel-jetty/src/generated/resources/META-INF/org/apache/camel/component/jetty12/jetty.json
+++ b/components/camel-jetty/src/generated/resources/META-INF/org/apache/camel/component/jetty12/jetty.json
@@ -9,6 +9,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.jetty12.JettyHttpComponent12",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-jetty",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/JettyHttpEndpoint12.java b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/JettyHttpEndpoint12.java
index e8e1bb66ed5..f5c546f0062 100644
--- a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/JettyHttpEndpoint12.java
+++ b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/JettyHttpEndpoint12.java
@@ -35,7 +35,10 @@ import org.apache.camel.spi.UriEndpoint;
              category = { Category.HTTP }, consumerOnly = true, lenientProperties = true,
              headersClass = JettyHttpConstants.class)
 @Metadata(excludeProperties = "authMethod,authMethodPriority,authUsername,authPassword,authDomain,authHost"
-                              + "proxyAuthScheme,proxyAuthMethod,proxyAuthUsername,proxyAuthPassword,proxyAuthHost,proxyAuthPort,proxyAuthDomain")
+                              + "proxyAuthScheme,proxyAuthMethod,proxyAuthUsername,proxyAuthPassword,proxyAuthHost,proxyAuthPort,proxyAuthDomain",
+          annotations = {
+                  "protocol=http"
+          })
 public class JettyHttpEndpoint12 extends JettyHttpEndpoint implements AsyncEndpoint {
 
     private HttpBinding binding;
diff --git a/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java b/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java
index 5b2264656b0..d6c035f6744 100644
--- a/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java
+++ b/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java
@@ -24,7 +24,12 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.networknt.schema.JsonSchema;
 import com.networknt.schema.ValidationMessage;
-import org.apache.camel.*;
+import org.apache.camel.Category;
+import org.apache.camel.Component;
+import org.apache.camel.Exchange;
+import org.apache.camel.ExchangePattern;
+import org.apache.camel.StreamCache;
+import org.apache.camel.ValidationException;
 import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.component.ResourceEndpoint;
 import org.apache.camel.spi.UriEndpoint;
diff --git a/components/camel-knative/camel-knative-component/src/generated/resources/META-INF/org/apache/camel/component/knative/knative.json b/components/camel-knative/camel-knative-component/src/generated/resources/META-INF/org/apache/camel/component/knative/knative.json
index 2f6c7f376b2..e88ad18071f 100644
--- a/components/camel-knative/camel-knative-component/src/generated/resources/META-INF/org/apache/camel/component/knative/knative.json
+++ b/components/camel-knative/camel-knative-component/src/generated/resources/META-INF/org/apache/camel/component/knative/knative.json
@@ -9,6 +9,7 @@
     "label": "cloud",
     "javaType": "org.apache.camel.component.knative.KnativeComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-knative",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java b/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java
index afa99dbb03d..cf845f09cfe 100644
--- a/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java
+++ b/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java
@@ -36,6 +36,7 @@ import org.apache.camel.component.knative.ce.CloudEventProcessors;
 import org.apache.camel.component.knative.spi.Knative;
 import org.apache.camel.component.knative.spi.KnativeResource;
 import org.apache.camel.component.knative.spi.KnativeTransportConfiguration;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -54,6 +55,9 @@ import org.slf4j.LoggerFactory;
              syntax = "knative:type/typeId",
              title = "Knative",
              category = Category.CLOUD)
+@Metadata(annotations = {
+        "protocol=http",
+})
 public class KnativeEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(KnativeEndpoint.class);
diff --git a/components/camel-netty-http/src/generated/resources/META-INF/org/apache/camel/component/netty/http/netty-http.json b/components/camel-netty-http/src/generated/resources/META-INF/org/apache/camel/component/netty/http/netty-http.json
index 995ea0a170e..cf7155e007c 100644
--- a/components/camel-netty-http/src/generated/resources/META-INF/org/apache/camel/component/netty/http/netty-http.json
+++ b/components/camel-netty-http/src/generated/resources/META-INF/org/apache/camel/component/netty/http/netty-http.json
@@ -9,6 +9,7 @@
     "label": "networking,http",
     "javaType": "org.apache.camel.component.netty.http.NettyHttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-netty-http",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
index 172143816c4..d462014f315 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
@@ -46,7 +46,10 @@ import org.slf4j.LoggerFactory;
              syntax = "netty-http:protocol://host:port/path", category = { Category.NETWORKING, Category.HTTP },
              lenientProperties = true, headersClass = NettyHttpConstants.class)
 @Metadata(excludeProperties = "textline,delimiter,autoAppendDelimiter,decoderMaxLineLength,encoding,allowDefaultCodec,udpConnectionlessSending,networkInterface"
-                              + ",clientMode,reconnect,reconnectInterval,useByteBuf,udpByteArrayCodec,broadcast,correlationManager")
+                              + ",clientMode,reconnect,reconnectInterval,useByteBuf,udpByteArrayCodec,broadcast,correlationManager",
+          annotations = {
+                  "protocol=http",
+          })
 public class NettyHttpEndpoint extends NettyEndpoint implements AsyncEndpoint, HeaderFilterStrategyAware {
 
     private static final Logger LOG = LoggerFactory.getLogger(NettyHttpEndpoint.class);
diff --git a/components/camel-platform-http/src/generated/resources/META-INF/org/apache/camel/component/platform/http/platform-http.json b/components/camel-platform-http/src/generated/resources/META-INF/org/apache/camel/component/platform/http/platform-http.json
index 0a784762006..9f2fb17af36 100644
--- a/components/camel-platform-http/src/generated/resources/META-INF/org/apache/camel/component/platform/http/platform-http.json
+++ b/components/camel-platform-http/src/generated/resources/META-INF/org/apache/camel/component/platform/http/platform-http.json
@@ -9,6 +9,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.platform.http.PlatformHttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-platform-http",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java
index 94360f23ffb..22597ccf8ca 100644
--- a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java
+++ b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java
@@ -37,6 +37,9 @@ import org.apache.camel.support.DefaultEndpoint;
  */
 @UriEndpoint(firstVersion = "3.0.0", scheme = "platform-http", title = "Platform HTTP", syntax = "platform-http:path",
              category = { Category.HTTP }, consumerOnly = true)
+@Metadata(annotations = {
+        "protocol=http",
+})
 public class PlatformHttpEndpoint extends DefaultEndpoint implements AsyncEndpoint, HeaderFilterStrategyAware {
 
     private static final String PROXY_PATH = "proxy";
diff --git a/components/camel-rest/src/generated/resources/META-INF/org/apache/camel/component/rest/rest.json b/components/camel-rest/src/generated/resources/META-INF/org/apache/camel/component/rest/rest.json
index 51eb7a89e97..bf08cba22d2 100644
--- a/components/camel-rest/src/generated/resources/META-INF/org/apache/camel/component/rest/rest.json
+++ b/components/camel-rest/src/generated/resources/META-INF/org/apache/camel/component/rest/rest.json
@@ -9,6 +9,7 @@
     "label": "core,rest",
     "javaType": "org.apache.camel.component.rest.RestComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-rest",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
index b2aa8f87b79..0ebc90bb388 100644
--- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
+++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
@@ -50,6 +50,9 @@ import static org.apache.camel.support.RestProducerFactoryHelper.setupComponent;
  */
 @UriEndpoint(firstVersion = "2.14.0", scheme = "rest", title = "REST", syntax = "rest:method:path:uriTemplate",
              category = { Category.CORE, Category.REST }, lenientProperties = true, headersClass = RestConstants.class)
+@Metadata(annotations = {
+        "protocol=http",
+})
 public class RestEndpoint extends DefaultEndpoint {
 
     public static final String[] DEFAULT_REST_CONSUMER_COMPONENTS
diff --git a/components/camel-servlet/src/generated/resources/META-INF/org/apache/camel/component/servlet/servlet.json b/components/camel-servlet/src/generated/resources/META-INF/org/apache/camel/component/servlet/servlet.json
index 9e656e5d69c..77e8da1a9af 100644
--- a/components/camel-servlet/src/generated/resources/META-INF/org/apache/camel/component/servlet/servlet.json
+++ b/components/camel-servlet/src/generated/resources/META-INF/org/apache/camel/component/servlet/servlet.json
@@ -9,6 +9,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.servlet.ServletComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-servlet",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
index 6f33f0f8af0..0cf5b0535c1 100644
--- a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
+++ b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
@@ -37,7 +37,9 @@ import org.apache.camel.spi.UriPath;
  */
 @UriEndpoint(firstVersion = "2.0.0", scheme = "servlet", extendsScheme = "http", title = "Servlet",
              syntax = "servlet:contextPath", consumerOnly = true, category = { Category.HTTP })
-@Metadata(excludeProperties = "httpUri")
+@Metadata(excludeProperties = "httpUri", annotations = {
+        "protocol=http",
+})
 public class ServletEndpoint extends HttpCommonEndpoint {
 
     private HttpBinding binding;
diff --git a/components/camel-spring-ws/src/generated/resources/META-INF/org/apache/camel/component/spring/ws/spring-ws.json b/components/camel-spring-ws/src/generated/resources/META-INF/org/apache/camel/component/spring/ws/spring-ws.json
index 39cedd3eb49..9ee11657618 100644
--- a/components/camel-spring-ws/src/generated/resources/META-INF/org/apache/camel/component/spring/ws/spring-ws.json
+++ b/components/camel-spring-ws/src/generated/resources/META-INF/org/apache/camel/component/spring/ws/spring-ws.json
@@ -9,6 +9,7 @@
     "label": "webservice",
     "javaType": "org.apache.camel.component.spring.ws.SpringWebserviceComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-spring-ws",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java
index d947d9407f0..1e07fc8ec36 100644
--- a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java
+++ b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java
@@ -22,6 +22,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.support.DefaultEndpoint;
@@ -32,6 +33,9 @@ import org.apache.camel.support.DefaultEndpoint;
 @UriEndpoint(firstVersion = "2.6.0", scheme = "spring-ws", title = "Spring WebService",
              syntax = "spring-ws:type:lookupKey:webServiceEndpointUri",
              category = { Category.WEBSERVICE }, headersClass = SpringWebserviceConstants.class)
+@Metadata(annotations = {
+        "protocol=http",
+})
 public class SpringWebserviceEndpoint extends DefaultEndpoint {
 
     @UriParam
diff --git a/components/camel-webhook/src/generated/resources/META-INF/org/apache/camel/component/webhook/webhook.json b/components/camel-webhook/src/generated/resources/META-INF/org/apache/camel/component/webhook/webhook.json
index d49bd3cd87e..544fc7cef9f 100644
--- a/components/camel-webhook/src/generated/resources/META-INF/org/apache/camel/component/webhook/webhook.json
+++ b/components/camel-webhook/src/generated/resources/META-INF/org/apache/camel/component/webhook/webhook.json
@@ -9,6 +9,7 @@
     "label": "cloud",
     "javaType": "org.apache.camel.component.webhook.WebhookComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-webhook",
     "version": "4.5.0-SNAPSHOT",
diff --git a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java
index 5a85b21a8be..912f91f9076 100644
--- a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java
+++ b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java
@@ -24,6 +24,7 @@ import org.apache.camel.DelegateEndpoint;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RestConsumerFactory;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
@@ -37,6 +38,9 @@ import org.slf4j.LoggerFactory;
  */
 @UriEndpoint(firstVersion = "3.0.0", scheme = "webhook", title = "Webhook", syntax = "webhook:endpointUri", consumerOnly = true,
              category = { Category.CLOUD }, lenientProperties = true)
+@Metadata(annotations = {
+        "protocol=http",
+})
 public class WebhookEndpoint extends DefaultEndpoint implements DelegateEndpoint, AfterPropertiesConfigured {
 
     private static final Logger LOG = LoggerFactory.getLogger(WebhookEndpoint.class);
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/Metadata.java b/core/camel-api/src/generated/java/org/apache/camel/spi/Metadata.java
index a8ae70fcded..b4ec1585025 100644
--- a/core/camel-api/src/generated/java/org/apache/camel/spi/Metadata.java
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/Metadata.java
@@ -170,4 +170,9 @@ public @interface Metadata {
      * This can be used to help tooling to provide a better user experience.
      */
     String inputLanguage() default "";
+
+    /**
+     * Annotations data for Camel concepts such as components, EIP, etc.
+     */
+    String[] annotations() default {};
 }
diff --git a/dsl/camel-componentdsl/src/generated/resources/metadata.json b/dsl/camel-componentdsl/src/generated/resources/metadata.json
index 5e74ff55b92..ef8dc9b2e52 100644
--- a/dsl/camel-componentdsl/src/generated/resources/metadata.json
+++ b/dsl/camel-componentdsl/src/generated/resources/metadata.json
@@ -125,6 +125,7 @@
     "label": "http,networking",
     "javaType": "org.apache.camel.component.atmosphere.websocket.WebsocketComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-atmosphere-websocket",
     "version": "4.5.0-SNAPSHOT",
@@ -1651,6 +1652,7 @@
     "label": "http,webservice",
     "javaType": "org.apache.camel.component.cxf.jaxws.CxfComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-cxf-soap",
     "version": "4.5.0-SNAPSHOT",
@@ -1674,6 +1676,7 @@
     "label": "rest",
     "javaType": "org.apache.camel.component.cxf.jaxrs.CxfRsComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-cxf-rest",
     "version": "4.5.0-SNAPSHOT",
@@ -2926,6 +2929,7 @@
     "label": "rpc",
     "javaType": "org.apache.camel.component.grpc.GrpcComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-grpc",
     "version": "4.5.0-SNAPSHOT",
@@ -3248,6 +3252,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.http.HttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-http",
     "version": "4.5.0-SNAPSHOT",
@@ -3272,6 +3277,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.http.HttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-http",
     "version": "4.5.0-SNAPSHOT",
@@ -3923,6 +3929,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.jetty12.JettyHttpComponent12",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-jetty",
     "version": "4.5.0-SNAPSHOT",
@@ -4314,6 +4321,7 @@
     "label": "cloud",
     "javaType": "org.apache.camel.component.knative.KnativeComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-knative",
     "version": "4.5.0-SNAPSHOT",
@@ -5280,6 +5288,7 @@
     "label": "networking,http",
     "javaType": "org.apache.camel.component.netty.http.NettyHttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-netty-http",
     "version": "4.5.0-SNAPSHOT",
@@ -5765,6 +5774,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.platform.http.PlatformHttpComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-platform-http",
     "version": "4.5.0-SNAPSHOT",
@@ -6045,6 +6055,7 @@
     "label": "core,rest",
     "javaType": "org.apache.camel.component.rest.RestComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-rest",
     "version": "4.5.0-SNAPSHOT",
@@ -6367,6 +6378,7 @@
     "label": "http",
     "javaType": "org.apache.camel.component.servlet.ServletComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-servlet",
     "version": "4.5.0-SNAPSHOT",
@@ -6810,6 +6822,7 @@
     "label": "webservice",
     "javaType": "org.apache.camel.component.spring.ws.SpringWebserviceComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-spring-ws",
     "version": "4.5.0-SNAPSHOT",
@@ -7456,6 +7469,7 @@
     "label": "cloud",
     "javaType": "org.apache.camel.component.webhook.WebhookComponent",
     "supportLevel": "Stable",
+    "metadata": { "protocol": "http" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-webhook",
     "version": "4.5.0-SNAPSHOT",
diff --git a/dsl/camel-groovy-dsl/camel-groovy-dsl/pom.xml b/dsl/camel-groovy-dsl/camel-groovy-dsl/pom.xml
index c33a2bfba99..f1c2f651695 100644
--- a/dsl/camel-groovy-dsl/camel-groovy-dsl/pom.xml
+++ b/dsl/camel-groovy-dsl/camel-groovy-dsl/pom.xml
@@ -43,6 +43,9 @@
         <sourcecheckExcludesComma>
             ${sourcecheckExcludes},
         </sourcecheckExcludesComma>
+        <annotations>
+            routes.language=groovy
+        </annotations>
     </properties>
 
     <dependencies>
diff --git a/dsl/camel-groovy-dsl/camel-groovy-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-groovy-dsl/camel-groovy-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
index 8d97d71f0c2..1cfc96d44ef 100644
--- a/dsl/camel-groovy-dsl/camel-groovy-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ b/dsl/camel-groovy-dsl/camel-groovy-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
@@ -5,3 +5,4 @@ artifactId=camel-groovy-dsl
 version=4.5.0-SNAPSHOT
 projectName=Camel :: Groovy DSL
 projectDescription=Camel DSL with Groovy
+annotations=routes.language=groovy
diff --git a/dsl/camel-groovy-dsl/camel-groovy-dsl/src/generated/resources/groovy-dsl.json b/dsl/camel-groovy-dsl/camel-groovy-dsl/src/generated/resources/groovy-dsl.json
index c9fba197e76..976e7333079 100644
--- a/dsl/camel-groovy-dsl/camel-groovy-dsl/src/generated/resources/groovy-dsl.json
+++ b/dsl/camel-groovy-dsl/camel-groovy-dsl/src/generated/resources/groovy-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Experimental",
+    "metadata": { "routes.language": "groovy" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-groovy-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/dsl/camel-java-joor-dsl/pom.xml b/dsl/camel-java-joor-dsl/pom.xml
index 7b8d73e703a..b24543f940a 100644
--- a/dsl/camel-java-joor-dsl/pom.xml
+++ b/dsl/camel-java-joor-dsl/pom.xml
@@ -42,6 +42,9 @@
         <sourcecheckExcludesComma>
             ${sourcecheckExcludes},
         </sourcecheckExcludesComma>
+        <annotations>
+            routes.language=java
+        </annotations>
     </properties>
 
     <dependencies>
diff --git a/dsl/camel-java-joor-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-java-joor-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
index 9800338b3fa..e4e21ffd323 100644
--- a/dsl/camel-java-joor-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ b/dsl/camel-java-joor-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
@@ -5,3 +5,4 @@ artifactId=camel-java-joor-dsl
 version=4.5.0-SNAPSHOT
 projectName=Camel :: Java DSL with jOOR
 projectDescription=Camel Java DSL with jOOR
+annotations=routes.language=java
diff --git a/dsl/camel-java-joor-dsl/src/generated/resources/java-joor-dsl.json b/dsl/camel-java-joor-dsl/src/generated/resources/java-joor-dsl.json
index ab5b3355ab3..2ad51bef97b 100644
--- a/dsl/camel-java-joor-dsl/src/generated/resources/java-joor-dsl.json
+++ b/dsl/camel-java-joor-dsl/src/generated/resources/java-joor-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Stable",
+    "metadata": { "routes.language": "java" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-java-joor-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/dsl/camel-js-dsl/pom.xml b/dsl/camel-js-dsl/pom.xml
index d1113aa107d..ea771ad1fe0 100644
--- a/dsl/camel-js-dsl/pom.xml
+++ b/dsl/camel-js-dsl/pom.xml
@@ -43,6 +43,9 @@
         <sourcecheckExcludesComma>
             ${sourcecheckExcludes},
         </sourcecheckExcludesComma>
+        <annotations>
+            routes.language=js
+        </annotations>
     </properties>
 
     <dependencies>
diff --git a/dsl/camel-js-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-js-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
index aea35b51c64..86b25d2be4e 100644
--- a/dsl/camel-js-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ b/dsl/camel-js-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
@@ -5,3 +5,4 @@ artifactId=camel-js-dsl
 version=4.5.0-SNAPSHOT
 projectName=Camel :: JavaScript DSL
 projectDescription=Camel DSL with JavaScript
+annotations=routes.language=js
diff --git a/dsl/camel-js-dsl/src/generated/resources/js-dsl.json b/dsl/camel-js-dsl/src/generated/resources/js-dsl.json
index 16fcfd57408..7b0e58ca926 100644
--- a/dsl/camel-js-dsl/src/generated/resources/js-dsl.json
+++ b/dsl/camel-js-dsl/src/generated/resources/js-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Experimental",
+    "metadata": { "routes.language": "js" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-js-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/dsl/camel-jsh-dsl/pom.xml b/dsl/camel-jsh-dsl/pom.xml
index 20de6a4a191..0c618610255 100644
--- a/dsl/camel-jsh-dsl/pom.xml
+++ b/dsl/camel-jsh-dsl/pom.xml
@@ -43,6 +43,9 @@
         <sourcecheckExcludesComma>
             ${sourcecheckExcludes},
         </sourcecheckExcludesComma>
+        <annotations>
+            routes.language=jsh
+        </annotations>
     </properties>
 
     <dependencies>
diff --git a/dsl/camel-jsh-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-jsh-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
index ef9bd417060..ec144f03eec 100644
--- a/dsl/camel-jsh-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ b/dsl/camel-jsh-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
@@ -5,3 +5,4 @@ artifactId=camel-jsh-dsl
 version=4.5.0-SNAPSHOT
 projectName=Camel :: JavaShell DSL
 projectDescription=Camel DSL with JavaShell
+annotations=routes.language=jsh
diff --git a/dsl/camel-jsh-dsl/src/generated/resources/jsh-dsl.json b/dsl/camel-jsh-dsl/src/generated/resources/jsh-dsl.json
index b94a28b4018..e9764a538d6 100644
--- a/dsl/camel-jsh-dsl/src/generated/resources/jsh-dsl.json
+++ b/dsl/camel-jsh-dsl/src/generated/resources/jsh-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.15.0",
     "label": "dsl",
     "supportLevel": "Experimental",
+    "metadata": { "routes.language": "jsh" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-jsh-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/dsl/camel-kotlin-dsl/pom.xml b/dsl/camel-kotlin-dsl/pom.xml
index 47f9175e33e..180509b15c6 100644
--- a/dsl/camel-kotlin-dsl/pom.xml
+++ b/dsl/camel-kotlin-dsl/pom.xml
@@ -43,6 +43,9 @@
         <sourcecheckExcludesComma>
             ${sourcecheckExcludes},
         </sourcecheckExcludesComma>
+        <annotations>
+            routes.language=kotlin
+        </annotations>
 
         <camel.surefire.reuseForks>false</camel.surefire.reuseForks>
     </properties>
diff --git a/dsl/camel-kotlin-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-kotlin-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
index 6361cc82220..513315b801d 100644
--- a/dsl/camel-kotlin-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ b/dsl/camel-kotlin-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
@@ -5,3 +5,4 @@ artifactId=camel-kotlin-dsl
 version=4.5.0-SNAPSHOT
 projectName=Camel :: Kotlin DSL
 projectDescription=Camel DSL with Kotlin
+annotations=routes.language=kotlin
diff --git a/dsl/camel-kotlin-dsl/src/generated/resources/kotlin-dsl.json b/dsl/camel-kotlin-dsl/src/generated/resources/kotlin-dsl.json
index d4153fafbd6..f34d2e2ba87 100644
--- a/dsl/camel-kotlin-dsl/src/generated/resources/kotlin-dsl.json
+++ b/dsl/camel-kotlin-dsl/src/generated/resources/kotlin-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Experimental",
+    "metadata": { "routes.language": "kotlin" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-kotlin-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/dsl/camel-xml-io-dsl/pom.xml b/dsl/camel-xml-io-dsl/pom.xml
index ce4a963cbf9..a4e7af1b69d 100644
--- a/dsl/camel-xml-io-dsl/pom.xml
+++ b/dsl/camel-xml-io-dsl/pom.xml
@@ -36,6 +36,9 @@
         <firstVersion>3.9.0</firstVersion>
         <title>XML DSL</title>
         <label>dsl</label>
+        <annotations>
+            routes.language=xml
+        </annotations>
         <camel.surefire.parallel>false</camel.surefire.parallel>
     </properties>
 
diff --git a/dsl/camel-xml-io-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-xml-io-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
index 4058e5e9584..6ea89e85dde 100644
--- a/dsl/camel-xml-io-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ b/dsl/camel-xml-io-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
@@ -5,3 +5,4 @@ artifactId=camel-xml-io-dsl
 version=4.5.0-SNAPSHOT
 projectName=Camel :: XML DSL with camel-xml-io
 projectDescription=Camel XML DSL with camel-xml-io
+annotations=routes.language=xml
diff --git a/dsl/camel-xml-io-dsl/src/generated/resources/xml-io-dsl.json b/dsl/camel-xml-io-dsl/src/generated/resources/xml-io-dsl.json
index 4ca383b8b3b..1044f05035b 100644
--- a/dsl/camel-xml-io-dsl/src/generated/resources/xml-io-dsl.json
+++ b/dsl/camel-xml-io-dsl/src/generated/resources/xml-io-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Stable",
+    "metadata": { "routes.language": "xml" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-xml-io-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml b/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
index 32feaf3bc91..044395844fd 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
@@ -42,6 +42,10 @@
         <sourcecheckExcludesComma>
             ${sourcecheckExcludes},
         </sourcecheckExcludesComma>
+        <annotations>
+            routes.language=yaml
+        </annotations>
+
         <camel-generate-yaml-writer>true</camel-generate-yaml-writer>
     </properties>
 
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
index 76328de1211..8c32c9c5db8 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
@@ -5,3 +5,4 @@ artifactId=camel-yaml-dsl
 version=4.5.0-SNAPSHOT
 projectName=Camel :: YAML DSL
 projectDescription=Camel DSL with YAML
+annotations=routes.language=yaml
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/yaml-dsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/yaml-dsl.json
index c5f47b8328b..cc9c8a7dcde 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/yaml-dsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/yaml-dsl.json
@@ -8,6 +8,7 @@
     "firstVersion": "3.9.0",
     "label": "dsl",
     "supportLevel": "Stable",
+    "metadata": { "routes.language": "yaml" },
     "groupId": "org.apache.camel",
     "artifactId": "camel-yaml-dsl",
     "version": "4.5.0-SNAPSHOT"
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java
index ce2a5bff7a2..15b7a646229 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java
@@ -31,6 +31,7 @@ import java.util.function.Supplier;
 
 import org.apache.camel.tooling.util.FileUtil;
 import org.apache.camel.tooling.util.PackageHelper;
+import org.apache.camel.tooling.util.Strings;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
 import org.apache.maven.model.Resource;
 import org.apache.maven.plugin.AbstractMojo;
@@ -132,6 +133,12 @@ public abstract class AbstractGeneratorMojo extends AbstractMojo {
         if (project.getDescription() != null) {
             properties.append("projectDescription=").append(project.getDescription()).append(NL);
         }
+
+        String annotations = project.getProperties().getProperty("annotations");
+        if (!Strings.isNullOrEmpty(annotations)) {
+            properties.append("annotations=").append(annotations).append(NL);
+        }
+
         data = properties.toString();
         return data;
     }
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java
index d77349d49f8..6f5328c0929 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java
@@ -202,6 +202,7 @@ public class EndpointSchemaGeneratorMojo extends AbstractGeneratorMojo {
 
             ComponentModel model = writeJSonSchemeAndPropertyConfigurer(classElement, uriEndpoint, aliasTitle, alias,
                     extendsAlias, label, schemes, parentData);
+
             models.put(classElement, model);
         }
     }
@@ -291,6 +292,9 @@ public class EndpointSchemaGeneratorMojo extends AbstractGeneratorMojo {
             enhanceComponentModelWithApiModel(componentModel);
         }
 
+        SchemaHelper.addModelMetadata(componentModel, project);
+        SchemaHelper.addModelMetadata(componentModel, classElement.getAnnotation(Metadata.class));
+
         String json = JsonMapper.createParameterJsonSchema(componentModel);
 
         // write json schema
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
index 4808f5378cc..5744398f58b 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
@@ -193,6 +193,10 @@ public class PackageDataFormatMojo extends AbstractGeneratorMojo {
 
                         final DataFormatModel dataFormatModel
                                 = extractDataFormatModel(project, json, name, clazz, included, excluded);
+
+                        SchemaHelper.addModelMetadata(dataFormatModel, project);
+                        SchemaHelper.addModelMetadata(dataFormatModel, metadata);
+
                         if (!modelName.equals(name)) {
                             /* Prefer description from the clazz */
                             setDescriptionFromClass(clazz, dataFormatModel);
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
index f0b1052e7e7..c097ab7d7fb 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
@@ -26,6 +26,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.camel.maven.packaging.generics.ClassUtil;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.tooling.model.EipModel;
 import org.apache.camel.tooling.model.EipModel.EipOptionModel;
 import org.apache.camel.tooling.model.JsonMapper;
@@ -158,6 +159,9 @@ public class PackageLanguageMojo extends AbstractGeneratorMojo {
                             log.debug("Model: " + languageModel);
                         }
 
+                        SchemaHelper.addModelMetadata(languageModel, project);
+                        SchemaHelper.addModelMetadata(languageModel, javaType.getAnnotation(Metadata.class));
+
                         // build json schema for the data format
                         String schema = JsonMapper.createParameterJsonSchema(languageModel);
                         if (log.isDebugEnabled()) {
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageOtherMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageOtherMojo.java
index 97df496857f..5e2c36c9317 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageOtherMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageOtherMojo.java
@@ -124,6 +124,8 @@ public class PackageOtherMojo extends AbstractGeneratorMojo {
             }
             model.setTitle(title);
 
+            SchemaHelper.addModelMetadata(model, project);
+
             // grab level from pom.xml or default to stable
             String level = project.getProperties().getProperty("supportLevel");
             if (level != null) {
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SchemaHelper.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SchemaHelper.java
index a076cc70d23..73964caedf6 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SchemaHelper.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SchemaHelper.java
@@ -17,6 +17,13 @@
 package org.apache.camel.maven.packaging;
 
 import java.util.Locale;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.camel.spi.Metadata;
+import org.apache.camel.tooling.model.BaseModel;
+import org.apache.camel.tooling.util.Strings;
+import org.apache.maven.project.MavenProject;
 
 public final class SchemaHelper {
 
@@ -99,4 +106,58 @@ public final class SchemaHelper {
         return answer.toString().toLowerCase(Locale.ENGLISH);
     }
 
+    public static void addModelMetadata(BaseModel<?> model, Metadata metadata) {
+        if (metadata == null) {
+            return;
+        }
+
+        addModelMetadata(model, metadata.annotations());
+    }
+
+    public static void addModelMetadata(BaseModel<?> model, String key, String value) {
+        Map<String, Object> modelMetadata = getModelMetadata(model);
+
+        if (!Strings.isNullOrEmpty(key) && !Strings.isNullOrEmpty(value)) {
+            modelMetadata.put(key, value);
+        }
+    }
+
+    public static void addModelMetadata(BaseModel<?> model, MavenProject project) {
+        if (project == null) {
+            return;
+        }
+
+        String annotations = project.getProperties().getProperty("annotations");
+
+        if (!Strings.isNullOrEmpty(annotations)) {
+            addModelMetadata(model, annotations.split(","));
+        }
+    }
+
+    public static void addModelMetadata(BaseModel<?> model, String[] annotations) {
+        if (annotations == null) {
+            return;
+        }
+
+        Map<String, Object> modelMetadata = getModelMetadata(model);
+
+        for (String annotation : annotations) {
+            String key = Strings.before(annotation, "=");
+            String val = Strings.after(annotation, "=");
+
+            if (!Strings.isNullOrEmpty(key) && !Strings.isNullOrEmpty(val)) {
+                modelMetadata.put(key, val);
+            }
+        }
+    }
+
+    public static Map<String, Object> getModelMetadata(BaseModel<?> model) {
+        Map<String, Object> meta = model.getMetadata();
+        if (meta == null) {
+            meta = new TreeMap<>();
+            model.setMetadata(meta);
+        }
+
+        return meta;
+    }
 }
diff --git a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Metadata.java b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Metadata.java
index a8ae70fcded..b4ec1585025 100644
--- a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Metadata.java
+++ b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Metadata.java
@@ -170,4 +170,9 @@ public @interface Metadata {
      * This can be used to help tooling to provide a better user experience.
      */
     String inputLanguage() default "";
+
+    /**
+     * Annotations data for Camel concepts such as components, EIP, etc.
+     */
+    String[] annotations() default {};
 }