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

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

commit 876f092d630e22315ef1c6e4a259b9537d51f8f9
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sat Mar 9 11:46:53 2024 +0100

    CAMEL-20531: camel-console - Add metadata for camel-catalog about dev 
consoles
---
 .../org/apache/camel/dev-console/catalog.json      |  15 +++
 .../camel/catalog/console/CatalogConsole.java      |   4 +-
 .../org/apache/camel/dev-console/aws-secrets.json  |  15 +++
 .../aws/secretsmanager/SecretsDevConsole.java      |   2 +-
 .../org/apache/camel/dev-console/aws2-s3.json      |  15 +++
 .../camel/component/aws2/s3/AWS2S3Console.java     |   2 +-
 .../apache/camel/dev-console/azure-secrets.json    |  15 +++
 .../key/vault/AzureKeyVaultManagerDevConsole.java  |   2 +-
 .../org/apache/camel/dev-console/gcp-secrets.json  |  15 +++
 .../manager/GoogleSecretManagerDevConsole.java     |   2 +-
 .../org/apache/camel/dev-console/knative.json      |  15 +++
 .../component/knative/http/KnativeHttpConsole.java |   2 +-
 .../org/apache/camel/dev-console/micrometer.json   |  15 +++
 .../component/micrometer/MicrometerConsole.java    |   2 +-
 .../apache/camel/dev-console/fault-tolerance.json  |  15 +++
 .../faulttolerance/FaultToleranceConsole.java      |   4 +-
 .../org/apache/camel/dev-console/mina.json         |  15 +++
 .../apache/camel/component/mina/MinaConsole.java   |   2 +-
 .../org/apache/camel/dev-console/mllp.json         |  15 +++
 .../apache/camel/component/mllp/MllpConsole.java   |   2 +-
 .../org/apache/camel/dev-console/netty.json        |  15 +++
 .../apache/camel/component/netty/NettyConsole.java |   2 +-
 .../apache/camel/dev-console/platform-http.json    |  15 +++
 .../platform/http/PlatformHttpConsole.java         |   2 +-
 .../org/apache/camel/dev-console/quartz.json       |  15 +++
 .../camel/component/quartz/QuartzConsole.java      |   2 +-
 .../org/apache/camel/dev-console/resilience4j.json |  15 +++
 .../component/resilience4j/ResilienceConsole.java  |   2 +-
 .../org/apache/camel/dev-console/stub.json         |  15 +++
 .../apache/camel/component/stub/StubConsole.java   |   4 +-
 .../apache/camel/spi/annotations/DevConsole.java   |  17 ++-
 .../org/apache/camel/dev-console/bean.json         |  15 +++
 .../org/apache/camel/dev-console/blocked.json      |  15 +++
 .../apache/camel/dev-console/circuit-breaker.json  |  15 +++
 .../org/apache/camel/dev-console/consumer.json     |  15 +++
 .../org/apache/camel/dev-console/context.json      |  15 +++
 .../org/apache/camel/dev-console/debug.json        |  15 +++
 .../org/apache/camel/dev-console/endpoint.json     |  15 +++
 .../org/apache/camel/dev-console/event.json        |  15 +++
 .../META-INF/org/apache/camel/dev-console/gc.json  |  15 +++
 .../org/apache/camel/dev-console/health.json       |  15 +++
 .../org/apache/camel/dev-console/inflight.json     |  15 +++
 .../apache/camel/dev-console/java-security.json    |  15 +++
 .../META-INF/org/apache/camel/dev-console/jvm.json |  15 +++
 .../META-INF/org/apache/camel/dev-console/log.json |  15 +++
 .../org/apache/camel/dev-console/memory.json       |  15 +++
 .../org/apache/camel/dev-console/properties.json   |  15 +++
 .../org/apache/camel/dev-console/reload.json       |  15 +++
 .../apache/camel/dev-console/route-controller.json |  15 +++
 .../org/apache/camel/dev-console/route-dump.json   |  15 +++
 .../org/apache/camel/dev-console/route.json        |  15 +++
 .../org/apache/camel/dev-console/source.json       |  15 +++
 .../apache/camel/dev-console/startup-recorder.json |  15 +++
 .../org/apache/camel/dev-console/thread.json       |  15 +++
 .../META-INF/org/apache/camel/dev-console/top.json |  15 +++
 .../org/apache/camel/dev-console/trace.json        |  15 +++
 .../org/apache/camel/dev-console/transformers.json |  15 +++
 .../apache/camel/dev-console/type-converters.json  |  15 +++
 .../org/apache/camel/dev-console/variables.json    |  15 +++
 .../org/apache/camel/dev-console/circuit-breaker   |   2 +
 .../apache/camel/dev-console/route-circuit-breaker |   2 -
 .../apache/camel/impl/console/BeanDevConsole.java  |   2 +-
 .../apache/camel/impl/console/BlockedConsole.java  |   2 +-
 ...vConsole.java => CircuitBreakerDevConsole.java} |   8 +-
 .../camel/impl/console/ConsumerDevConsole.java     |   2 +-
 .../camel/impl/console/ContextDevConsole.java      |   2 +-
 .../apache/camel/impl/console/DebugDevConsole.java |   2 +-
 .../impl/console/DefaultDevConsoleRegistry.java    |   2 +-
 .../camel/impl/console/EndpointDevConsole.java     |   2 +-
 .../apache/camel/impl/console/EventConsole.java    |   2 +-
 .../impl/console/GarbageCollectorDevConsole.java   |   2 +-
 .../camel/impl/console/HealthDevConsole.java       |   2 +-
 .../apache/camel/impl/console/InflightConsole.java |   2 +-
 .../camel/impl/console/JavaSecurityDevConsole.java |   2 +-
 .../apache/camel/impl/console/JvmDevConsole.java   |   2 +-
 .../apache/camel/impl/console/LogDevConsole.java   |   2 +-
 .../camel/impl/console/MemoryDevConsole.java       |   2 +-
 .../camel/impl/console/PropertiesDevConsole.java   |   2 +-
 .../camel/impl/console/ReloadDevConsole.java       |   2 +-
 .../camel/impl/console/RouteControllerConsole.java |   4 +-
 .../apache/camel/impl/console/RouteDevConsole.java |   2 +-
 .../camel/impl/console/RouteDumpDevConsole.java    |   4 +-
 .../camel/impl/console/SourceDevConsole.java       |   4 +-
 .../impl/console/StartupRecorderDevConsole.java    |   4 +-
 .../camel/impl/console/ThreadDevConsole.java       |   4 +-
 .../apache/camel/impl/console/TopDevConsole.java   |   4 +-
 .../apache/camel/impl/console/TraceDevConsole.java |   2 +-
 .../camel/impl/console/TransformerConsole.java     |   4 +-
 .../camel/impl/console/TypeConverterConsole.java   |   2 +-
 .../camel/impl/console/VariablesDevConsole.java    |   2 +-
 .../ROOT/pages/camel-4x-upgrade-guide-4_5.adoc     |  20 ++++
 .../camel/cli/connector/LocalCliConnector.java     |   4 +-
 .../org/apache/camel/dev-console/jbang.json        |  15 +++
 .../org/apache/camel/dev-console/source-dir.json   |  15 +++
 .../camel/jbang/console/JBangDevConsole.java       |   4 +-
 .../camel/jbang/console/SourceDirDevConsole.java   |   5 +-
 .../core/commands/process/ListCircuitBreaker.java  |   2 +-
 .../camel/dev-console/dependency-downloader.json   |  15 +++
 .../main/console/DependencyDownloaderConsole.java  |   4 +-
 .../maven/packaging/GenerateComponentMojo.java     |   2 +
 .../packaging/GenerateDataTypeTransformerMojo.java |  22 +---
 ...formerMojo.java => GenerateDevConsoleMojo.java} | 128 ++++++++++-----------
 .../apache/camel/maven/packaging/GenerateMojo.java |   2 +
 .../apache/camel/maven/packaging/MojoHelper.java   |  18 +++
 .../camel/maven/packaging/SpiGeneratorMojo.java    |   2 +-
 .../apache/camel/spi/annotations/DevConsole.java   |  17 ++-
 106 files changed, 900 insertions(+), 155 deletions(-)

diff --git 
a/catalog/camel-catalog-console/src/generated/resources/META-INF/org/apache/camel/dev-console/catalog.json
 
b/catalog/camel-catalog-console/src/generated/resources/META-INF/org/apache/camel/dev-console/catalog.json
new file mode 100644
index 00000000000..e435fee8c40
--- /dev/null
+++ 
b/catalog/camel-catalog-console/src/generated/resources/META-INF/org/apache/camel/dev-console/catalog.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "catalog",
+    "title": "Catalog",
+    "description": "Information about used Camel artifacts",
+    "deprecated": false,
+    "javaType": "org.apache.camel.catalog.console.CatalogConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-catalog-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java
 
b/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java
index 6b01274c834..97475eab8c6 100644
--- 
a/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java
+++ 
b/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java
@@ -29,14 +29,14 @@ import org.apache.camel.tooling.model.ArtifactModel;
 import org.apache.camel.tooling.model.OtherModel;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("catalog")
+@DevConsole(name = "catalog", description = "Information about used Camel 
artifacts")
 public class CatalogConsole extends AbstractDevConsole {
 
     private static final String CP = System.getProperty("java.class.path");
     private final CamelCatalog catalog = new DefaultCamelCatalog(true);
 
     public CatalogConsole() {
-        super("camel", "catalog", "Catalog", "Lists all the used Camel 
Components");
+        super("camel", "catalog", "Catalog", "Information about used Camel 
artifacts");
     }
 
     @Override
diff --git 
a/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/aws-secrets.json
 
b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/aws-secrets.json
new file mode 100644
index 00000000000..8da0b8d47e9
--- /dev/null
+++ 
b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/aws-secrets.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "aws-secrets",
+    "title": "AWS Secrets",
+    "description": "AWS Secrets Manager",
+    "deprecated": false,
+    "javaType": 
"org.apache.camel.component.aws.secretsmanager.SecretsDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws-secrets-manager",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java
 
b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java
index a3c64de24a5..b37baabc967 100644
--- 
a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java
+++ 
b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java
@@ -33,7 +33,7 @@ import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 import org.apache.camel.vault.AwsVaultConfiguration;
 
-@DevConsole("aws-secrets")
+@DevConsole(name = "aws-secrets", displayName = "AWS Secrets", description = 
"AWS Secrets Manager")
 public class SecretsDevConsole extends AbstractDevConsole {
 
     private SecretsManagerPropertiesFunction propertiesFunction;
diff --git 
a/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/org/apache/camel/dev-console/aws2-s3.json
 
b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/org/apache/camel/dev-console/aws2-s3.json
new file mode 100644
index 00000000000..98c0413fdec
--- /dev/null
+++ 
b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/org/apache/camel/dev-console/aws2-s3.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "aws2-s3",
+    "title": "AWS S3",
+    "description": "AWS S3 Consumer",
+    "deprecated": false,
+    "javaType": "org.apache.camel.component.aws2.s3.AWS2S3Console",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-s3",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Console.java
 
b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Console.java
index 50711ad24ee..b205d40a25e 100644
--- 
a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Console.java
+++ 
b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Console.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("aws2-s3")
+@DevConsole(name = "aws2-s3", displayName = "AWS S3", description = "AWS S3 
Consumer")
 public class AWS2S3Console extends AbstractDevConsole {
 
     public AWS2S3Console() {
diff --git 
a/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/org/apache/camel/dev-console/azure-secrets.json
 
b/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/org/apache/camel/dev-console/azure-secrets.json
new file mode 100644
index 00000000000..a7665eaceea
--- /dev/null
+++ 
b/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/org/apache/camel/dev-console/azure-secrets.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "azure-secrets",
+    "title": "Azure Key Vault Secrets",
+    "description": "Azure Key Vault Secret Manager",
+    "deprecated": false,
+    "javaType": 
"org.apache.camel.component.azure.key.vault.AzureKeyVaultManagerDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-azure-key-vault",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java
 
b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java
index e995b197927..733efdcb62e 100644
--- 
a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java
+++ 
b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java
@@ -32,7 +32,7 @@ import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 import org.apache.camel.vault.AzureVaultConfiguration;
 
-@DevConsole("azure-secrets")
+@DevConsole(name = "azure-secrets", displayName = "Azure Key Vault Secrets", 
description = "Azure Key Vault Secret Manager")
 public class AzureKeyVaultManagerDevConsole extends AbstractDevConsole {
 
     private KeyVaultPropertiesFunction propertiesFunction;
diff --git 
a/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/gcp-secrets.json
 
b/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/gcp-secrets.json
new file mode 100644
index 00000000000..8c93a8fe303
--- /dev/null
+++ 
b/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/gcp-secrets.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "gcp-secrets",
+    "title": "GCP Secrets",
+    "description": "GCP Secret Manager",
+    "deprecated": false,
+    "javaType": 
"org.apache.camel.component.google.secret.manager.GoogleSecretManagerDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-google-secret-manager",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java
 
b/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java
index 89072482f2f..34fbe100861 100644
--- 
a/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java
+++ 
b/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java
@@ -33,7 +33,7 @@ import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 import org.apache.camel.vault.GcpVaultConfiguration;
 
-@DevConsole("gcp-secrets")
+@DevConsole(name = "gcp-secrets", displayName = "GCP Secrets", description = 
"GCP Secret Manager")
 public class GoogleSecretManagerDevConsole extends AbstractDevConsole {
 
     private GoogleSecretManagerPropertiesFunction propertiesFunction;
diff --git 
a/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/org/apache/camel/dev-console/knative.json
 
b/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/org/apache/camel/dev-console/knative.json
new file mode 100644
index 00000000000..f4af8bc4015
--- /dev/null
+++ 
b/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/org/apache/camel/dev-console/knative.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "knative",
+    "title": "Knative",
+    "description": "Knative HTTP Service",
+    "deprecated": false,
+    "javaType": "org.apache.camel.component.knative.http.KnativeHttpConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-knative-http",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpConsole.java
 
b/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpConsole.java
index 324d6745586..457c6a12c3f 100644
--- 
a/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpConsole.java
+++ 
b/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpConsole.java
@@ -32,7 +32,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("knative")
+@DevConsole(name = "knative", displayName = "Knative", description = "Knative 
HTTP Service")
 public class KnativeHttpConsole extends AbstractDevConsole {
 
     public KnativeHttpConsole() {
diff --git 
a/components/camel-micrometer/src/generated/resources/META-INF/org/apache/camel/dev-console/micrometer.json
 
b/components/camel-micrometer/src/generated/resources/META-INF/org/apache/camel/dev-console/micrometer.json
new file mode 100644
index 00000000000..2b26acc7c74
--- /dev/null
+++ 
b/components/camel-micrometer/src/generated/resources/META-INF/org/apache/camel/dev-console/micrometer.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "micrometer",
+    "title": "Micrometer",
+    "description": "Display runtime metrics",
+    "deprecated": false,
+    "javaType": "org.apache.camel.component.micrometer.MicrometerConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-micrometer",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConsole.java
 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConsole.java
index a4c869a6275..699b6b7faec 100644
--- 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConsole.java
+++ 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConsole.java
@@ -34,7 +34,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("micrometer")
+@DevConsole(name = "micrometer", description = "Display runtime metrics")
 public class MicrometerConsole extends AbstractDevConsole {
 
     /**
diff --git 
a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/org/apache/camel/dev-console/fault-tolerance.json
 
b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/org/apache/camel/dev-console/fault-tolerance.json
new file mode 100644
index 00000000000..f4b53fbf88a
--- /dev/null
+++ 
b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/org/apache/camel/dev-console/fault-tolerance.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "fault-tolerance",
+    "title": "MicroProfile Circuit Breaker",
+    "description": "Display circuit breaker information",
+    "deprecated": false,
+    "javaType": 
"org.apache.camel.component.microprofile.faulttolerance.FaultToleranceConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-microprofile-fault-tolerance",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java
 
b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java
index 1713376d79f..8f9a7fbd172 100644
--- 
a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java
+++ 
b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java
@@ -27,11 +27,11 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("fault-tolerance")
+@DevConsole(name = "fault-tolerance", displayName = "MicroProfile Circuit 
Breaker", description = "Display circuit breaker information")
 public class FaultToleranceConsole extends AbstractDevConsole {
 
     public FaultToleranceConsole() {
-        super("camel", "fault-tolerance", "MicroProfile Fault Tolerance 
Circuit Breaker",
+        super("camel", "fault-tolerance", "MicroProfile Circuit Breaker",
               "Display circuit breaker information");
     }
 
diff --git 
a/components/camel-mina/src/generated/resources/META-INF/org/apache/camel/dev-console/mina.json
 
b/components/camel-mina/src/generated/resources/META-INF/org/apache/camel/dev-console/mina.json
new file mode 100644
index 00000000000..f37d1749e16
--- /dev/null
+++ 
b/components/camel-mina/src/generated/resources/META-INF/org/apache/camel/dev-console/mina.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "mina",
+    "title": "Mina",
+    "description": "Embedded Mina Server",
+    "deprecated": false,
+    "javaType": "org.apache.camel.component.mina.MinaConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-mina",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsole.java
 
b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsole.java
index 7a240b03bc5..cafde44205e 100644
--- 
a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsole.java
+++ 
b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsole.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("mina")
+@DevConsole(name = "mina", description = "Embedded Mina Server")
 public class MinaConsole extends AbstractDevConsole {
 
     public MinaConsole() {
diff --git 
a/components/camel-mllp/src/generated/resources/META-INF/org/apache/camel/dev-console/mllp.json
 
b/components/camel-mllp/src/generated/resources/META-INF/org/apache/camel/dev-console/mllp.json
new file mode 100644
index 00000000000..2d19aa5ee66
--- /dev/null
+++ 
b/components/camel-mllp/src/generated/resources/META-INF/org/apache/camel/dev-console/mllp.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "mllp",
+    "title": "MLLP",
+    "description": "Embedded MLLP Server",
+    "deprecated": false,
+    "javaType": "org.apache.camel.component.mllp.MllpConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-mllp",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConsole.java
 
b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConsole.java
index 456c46d2196..d3beedc2423 100644
--- 
a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConsole.java
+++ 
b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConsole.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("mllp")
+@DevConsole(name = "mllp", displayName = "MLLP", description = "Embedded MLLP 
Server")
 public class MllpConsole extends AbstractDevConsole {
 
     public MllpConsole() {
diff --git 
a/components/camel-netty/src/generated/resources/META-INF/org/apache/camel/dev-console/netty.json
 
b/components/camel-netty/src/generated/resources/META-INF/org/apache/camel/dev-console/netty.json
new file mode 100644
index 00000000000..3fcebdfe3d5
--- /dev/null
+++ 
b/components/camel-netty/src/generated/resources/META-INF/org/apache/camel/dev-console/netty.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "netty",
+    "title": "Netty",
+    "description": "Embedded Netty Server",
+    "deprecated": false,
+    "javaType": "org.apache.camel.component.netty.NettyConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-netty",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsole.java
 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsole.java
index fe042f77f2b..c99c2357adf 100644
--- 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsole.java
+++ 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsole.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("netty")
+@DevConsole(name = "netty", description = "Embedded Netty Server")
 public class NettyConsole extends AbstractDevConsole {
 
     public NettyConsole() {
diff --git 
a/components/camel-platform-http/src/generated/resources/META-INF/org/apache/camel/dev-console/platform-http.json
 
b/components/camel-platform-http/src/generated/resources/META-INF/org/apache/camel/dev-console/platform-http.json
new file mode 100644
index 00000000000..34cbd2da7e2
--- /dev/null
+++ 
b/components/camel-platform-http/src/generated/resources/META-INF/org/apache/camel/dev-console/platform-http.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "platform-http",
+    "title": "Platform HTTP",
+    "description": "Embedded HTTP Server",
+    "deprecated": false,
+    "javaType": "org.apache.camel.component.platform.http.PlatformHttpConsole",
+    "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/PlatformHttpConsole.java
 
b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpConsole.java
index e4c47ba15b7..3263348f505 100644
--- 
a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpConsole.java
+++ 
b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpConsole.java
@@ -25,7 +25,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("platform-http")
+@DevConsole(name = "platform-http", displayName = "Platform HTTP", description 
= "Embedded HTTP Server")
 public class PlatformHttpConsole extends AbstractDevConsole {
 
     public PlatformHttpConsole() {
diff --git 
a/components/camel-quartz/src/generated/resources/META-INF/org/apache/camel/dev-console/quartz.json
 
b/components/camel-quartz/src/generated/resources/META-INF/org/apache/camel/dev-console/quartz.json
new file mode 100644
index 00000000000..acbc204a098
--- /dev/null
+++ 
b/components/camel-quartz/src/generated/resources/META-INF/org/apache/camel/dev-console/quartz.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "quartz",
+    "title": "Quartz",
+    "description": "Quartz Scheduler",
+    "deprecated": false,
+    "javaType": "org.apache.camel.component.quartz.QuartzConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-quartz",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsole.java
 
b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsole.java
index 3fdbcfcf97c..a02280551ce 100644
--- 
a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsole.java
+++ 
b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsole.java
@@ -29,7 +29,7 @@ import org.quartz.JobExecutionContext;
 import org.quartz.Scheduler;
 import org.quartz.SchedulerMetaData;
 
-@DevConsole("quartz")
+@DevConsole(name = "quartz", description = "Quartz Scheduler")
 public class QuartzConsole extends AbstractDevConsole {
 
     public QuartzConsole() {
diff --git 
a/components/camel-resilience4j/src/generated/resources/META-INF/org/apache/camel/dev-console/resilience4j.json
 
b/components/camel-resilience4j/src/generated/resources/META-INF/org/apache/camel/dev-console/resilience4j.json
new file mode 100644
index 00000000000..ed28864d270
--- /dev/null
+++ 
b/components/camel-resilience4j/src/generated/resources/META-INF/org/apache/camel/dev-console/resilience4j.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "resilience4j",
+    "title": "Resilience Circuit Breaker",
+    "description": "Display circuit breaker information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.component.resilience4j.ResilienceConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-resilience4j",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java
 
b/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java
index f74485b52a0..e7485ea7100 100644
--- 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java
+++ 
b/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("resilience4j")
+@DevConsole(name = "resilience4j", displayName = "Resilience Circuit Breaker", 
description = "Display circuit breaker information")
 public class ResilienceConsole extends AbstractDevConsole {
 
     public ResilienceConsole() {
diff --git 
a/components/camel-stub/src/generated/resources/META-INF/org/apache/camel/dev-console/stub.json
 
b/components/camel-stub/src/generated/resources/META-INF/org/apache/camel/dev-console/stub.json
new file mode 100644
index 00000000000..609d3e43dbf
--- /dev/null
+++ 
b/components/camel-stub/src/generated/resources/META-INF/org/apache/camel/dev-console/stub.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "stub",
+    "title": "Stub",
+    "description": "Browse messages on stub endpoints",
+    "deprecated": false,
+    "javaType": "org.apache.camel.component.stub.StubConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-stub",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubConsole.java
 
b/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubConsole.java
index 8a645f414b1..b05d66e24f7 100644
--- 
a/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubConsole.java
+++ 
b/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubConsole.java
@@ -31,7 +31,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("stub")
+@DevConsole(name = "stub", description = "Browse messages on stub endpoints")
 public class StubConsole extends AbstractDevConsole {
 
     /**
@@ -55,7 +55,7 @@ public class StubConsole extends AbstractDevConsole {
     public static final String BROWSE = "browse";
 
     public StubConsole() {
-        super("camel", "stub", "Stub", "Browse messages on stub");
+        super("camel", "stub", "Stub", "Browse messages on stub endpoints");
     }
 
     @Override
diff --git 
a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/DevConsole.java
 
b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/DevConsole.java
index f504ea000b2..337360203da 100644
--- 
a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/DevConsole.java
+++ 
b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/DevConsole.java
@@ -31,9 +31,24 @@ import java.lang.annotation.Target;
 @ServiceFactory("dev-console")
 public @interface DevConsole {
 
+    /**
+     * The group of the dev console
+     */
+    String group() default "camel";
+
     /**
      * The ID of the dev console.
      */
-    String value();
+    String name();
+
+    /**
+     * Display name (title)
+     */
+    String displayName() default "";
+
+    /**
+     * Description of the console
+     */
+    String description();
 
 }
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/bean.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/bean.json
new file mode 100644
index 00000000000..73b15a92789
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/bean.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "bean",
+    "title": "Bean",
+    "description": "Displays Java beans from the registry",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.BeanDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/blocked.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/blocked.json
new file mode 100644
index 00000000000..eea12840c2f
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/blocked.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "blocked",
+    "title": "Blocked Exchanges",
+    "description": "Display blocked exchanges",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.BlockedConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/circuit-breaker.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/circuit-breaker.json
new file mode 100644
index 00000000000..2b2f20277a1
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/circuit-breaker.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "circuit-breaker",
+    "title": "Circuit Breaker",
+    "description": "Display circuit breaker information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.CircuitBreakerDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/consumer.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/consumer.json
new file mode 100644
index 00000000000..94cc1673ced
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/consumer.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "consumer",
+    "title": "Consumers",
+    "description": "Display information about Camel consumers",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.ConsumerDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/context.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/context.json
new file mode 100644
index 00000000000..634473f6df2
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/context.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "context",
+    "title": "CamelContext",
+    "description": "Overall information about the CamelContext",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.ContextDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/debug.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/debug.json
new file mode 100644
index 00000000000..1741c47718b
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/debug.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "debug",
+    "title": "Debug",
+    "description": "Camel route debugger",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.DebugDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/endpoint.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/endpoint.json
new file mode 100644
index 00000000000..f26b0f6e877
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/endpoint.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "endpoint",
+    "title": "Endpoints",
+    "description": "Endpoint Registry information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.EndpointDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/event.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/event.json
new file mode 100644
index 00000000000..7ff5a6209ba
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/event.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "event",
+    "title": "Camel Events",
+    "description": "The most recent Camel events",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.EventConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/gc.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/gc.json
new file mode 100644
index 00000000000..59e73b1d857
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/gc.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "gc",
+    "title": "Garbage Collector",
+    "description": "Displays Garbage Collector information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.GarbageCollectorDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/health.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/health.json
new file mode 100644
index 00000000000..d66ff7c1cb6
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/health.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "health",
+    "title": "Health Check",
+    "description": "Health Check Status",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.HealthDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/inflight.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/inflight.json
new file mode 100644
index 00000000000..55bf27070f9
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/inflight.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "inflight",
+    "title": "Inflight Exchanges",
+    "description": "Display inflight exchanges",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.InflightConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/java-security.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/java-security.json
new file mode 100644
index 00000000000..ff13d144970
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/java-security.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "java-security",
+    "title": "Java Security",
+    "description": "Displays Java Security (JSSE) information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.JavaSecurityDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jvm.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jvm.json
new file mode 100644
index 00000000000..0b95f9f20f1
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jvm.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "jvm",
+    "title": "JVM",
+    "description": "Displays JVM information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.JvmDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/log.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/log.json
new file mode 100644
index 00000000000..93c4b4868e1
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/log.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "log",
+    "title": "Log",
+    "description": "Logging framework",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.LogDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/memory.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/memory.json
new file mode 100644
index 00000000000..88031548edf
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/memory.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "memory",
+    "title": "JVM Memory",
+    "description": "Displays JVM memory information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.MemoryDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/properties.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/properties.json
new file mode 100644
index 00000000000..0d248c543b9
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/properties.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "properties",
+    "title": "Properties",
+    "description": "Displays the properties loaded by Camel",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.PropertiesDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/reload.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/reload.json
new file mode 100644
index 00000000000..ed0fc201bfe
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/reload.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "reload",
+    "title": "Reload",
+    "description": "Console for reloading running Camel",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.ReloadDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-controller.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-controller.json
new file mode 100644
index 00000000000..d29993d28a6
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-controller.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "route-controller",
+    "title": "Route Controller",
+    "description": "Route controller information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.RouteControllerConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-dump.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-dump.json
new file mode 100644
index 00000000000..559adade159
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-dump.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "route-dump",
+    "title": "Route Dump",
+    "description": "Dump route in XML or YAML format",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.RouteDumpDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route.json
new file mode 100644
index 00000000000..534d51296a8
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "route",
+    "title": "Route",
+    "description": "Route information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.RouteDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source.json
new file mode 100644
index 00000000000..d65b96705cd
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "source",
+    "title": "Source",
+    "description": "Dump route source code",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.SourceDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/startup-recorder.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/startup-recorder.json
new file mode 100644
index 00000000000..3b953a98cfa
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/startup-recorder.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "startup-recorder",
+    "title": "Startup Recorder",
+    "description": "Starting recording information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.StartupRecorderDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/thread.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/thread.json
new file mode 100644
index 00000000000..28f2a2ceca0
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/thread.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "thread",
+    "title": "Thread",
+    "description": "Displays JVM Threads information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.ThreadDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/top.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/top.json
new file mode 100644
index 00000000000..97ebc7895e0
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/top.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "top",
+    "title": "Top Routes",
+    "description": "Display the top routes",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.TopDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/trace.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/trace.json
new file mode 100644
index 00000000000..20ad3e0ba8f
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/trace.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "trace",
+    "title": "Camel Tracing",
+    "description": "Trace routed messages",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.TraceDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/transformers.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/transformers.json
new file mode 100644
index 00000000000..f4a6cc28393
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/transformers.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "transformers",
+    "title": "Data Type Transformers",
+    "description": "Data-type transformer information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.TransformerConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/type-converters.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/type-converters.json
new file mode 100644
index 00000000000..69c213b9a30
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/type-converters.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "type-converters",
+    "title": "Type Converters",
+    "description": "Camel Type Converter information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.TypeConverterConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/variables.json
 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/variables.json
new file mode 100644
index 00000000000..d44adeff7fb
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/variables.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "variables",
+    "title": "Variables",
+    "description": "Displays variables",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.VariablesDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/circuit-breaker
 
b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/circuit-breaker
new file mode 100644
index 00000000000..62c91276e87
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/circuit-breaker
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.impl.console.CircuitBreakerDevConsole
diff --git 
a/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/route-circuit-breaker
 
b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/route-circuit-breaker
deleted file mode 100644
index 8500cb624bb..00000000000
--- 
a/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/route-circuit-breaker
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.impl.console.RouteCircuitBreakerDevConsole
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/BeanDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/BeanDevConsole.java
index f94dd336421..ad74cb0c332 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/BeanDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/BeanDevConsole.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("bean")
+@DevConsole(name = "bean", description = "Displays Java beans from the 
registry")
 public class BeanDevConsole extends AbstractDevConsole {
 
     public BeanDevConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/BlockedConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/BlockedConsole.java
index 8c897dc9b93..b641ade3012 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/BlockedConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/BlockedConsole.java
@@ -27,7 +27,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("blocked")
+@DevConsole(name = "blocked", displayName = "Blocked Exchanges", description = 
"Display blocked exchanges")
 public class BlockedConsole extends AbstractDevConsole {
 
     public BlockedConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteCircuitBreakerDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/CircuitBreakerDevConsole.java
similarity index 90%
rename from 
core/camel-console/src/main/java/org/apache/camel/impl/console/RouteCircuitBreakerDevConsole.java
rename to 
core/camel-console/src/main/java/org/apache/camel/impl/console/CircuitBreakerDevConsole.java
index ce0ec6061b6..27f5a0dfda1 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteCircuitBreakerDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/CircuitBreakerDevConsole.java
@@ -28,11 +28,11 @@ import 
org.apache.camel.throttling.ThrottlingExceptionRoutePolicy;
 import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("route-circuit-breaker")
-public class RouteCircuitBreakerDevConsole extends AbstractDevConsole {
+@DevConsole(name = "circuit-breaker", description = "Display circuit breaker 
information")
+public class CircuitBreakerDevConsole extends AbstractDevConsole {
 
-    public RouteCircuitBreakerDevConsole() {
-        super("camel", "route-circuit-breaker", "Route Circuit Breaker", 
"Display circuit breaker information");
+    public CircuitBreakerDevConsole() {
+        super("camel", "circuit-breaker", "Circuit Breaker", "Display circuit 
breaker information");
     }
 
     @Override
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java
index a75ea58d2fb..1fa40f79cb8 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java
@@ -34,7 +34,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("consumer")
+@DevConsole(name = "consumer", displayName = "Consumers", description = 
"Display information about Camel consumers")
 public class ConsumerDevConsole extends AbstractDevConsole {
 
     public ConsumerDevConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java
index 3b332b769ee..0f80a08d782 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java
@@ -29,7 +29,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("context")
+@DevConsole(name = "context", displayName = "CamelContext", description = 
"Overall information about the CamelContext")
 public class ContextDevConsole extends AbstractDevConsole {
 
     public ContextDevConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java
index 72100c0295a..2d1a542747c 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java
@@ -39,7 +39,7 @@ import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 import org.apache.camel.util.json.Jsoner;
 
-@DevConsole("debug")
+@DevConsole(name = "debug", description = "Camel route debugger")
 public class DebugDevConsole extends AbstractDevConsole {
 
     public static final String COMMAND = "command";
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java
index 159590ed284..8b6c2b882c3 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Default {@link org.apache.camel.console.DevConsoleRegistry}.
  */
-@org.apache.camel.spi.annotations.DevConsole(DevConsoleRegistry.NAME)
+@org.apache.camel.spi.annotations.DevConsole(name = DevConsoleRegistry.NAME, 
description = "Default Console Registry")
 @DeferredContextBinding
 public class DefaultDevConsoleRegistry extends ServiceSupport implements 
DevConsoleRegistry {
 
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java
index d5180306d91..a6343a7070a 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java
@@ -29,7 +29,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("endpoint")
+@DevConsole(name = "endpoint", displayName = "Endpoints", description = 
"Endpoint Registry information")
 public class EndpointDevConsole extends AbstractDevConsole {
 
     public EndpointDevConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
index 1415ec7ccc5..106472c9416 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
@@ -30,7 +30,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("event")
+@DevConsole(name = "event", displayName = "Camel Events", description = "The 
most recent Camel events")
 @Configurer(bootstrap = true)
 public class EventConsole extends AbstractDevConsole {
 
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java
index cd7ebb7a01d..3a4252f7239 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java
@@ -28,7 +28,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("gc")
+@DevConsole(name = "gc", displayName = "Garbage Collector", description = 
"Displays Garbage Collector information")
 @Configurer(bootstrap = true)
 public class GarbageCollectorDevConsole extends AbstractDevConsole {
 
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/HealthDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/HealthDevConsole.java
index 75aca65610a..b71b44322e6 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/HealthDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/HealthDevConsole.java
@@ -30,7 +30,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("health")
+@DevConsole(name = "health", displayName = "Health Check", description = 
"Health Check Status")
 public class HealthDevConsole extends AbstractDevConsole {
 
     public HealthDevConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/InflightConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/InflightConsole.java
index bc4adeea440..3ad4d5f2583 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/InflightConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/InflightConsole.java
@@ -26,7 +26,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("inflight")
+@DevConsole(name = "inflight", displayName = "Inflight Exchanges", description 
= "Display inflight exchanges")
 public class InflightConsole extends AbstractDevConsole {
 
     /**
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java
index b4aa19e2ff5..8feb6c7637b 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java
@@ -27,7 +27,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("java-security")
+@DevConsole(name = "java-security", description = "Displays Java Security 
(JSSE) information")
 @Configurer(bootstrap = true)
 public class JavaSecurityDevConsole extends AbstractDevConsole {
 
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java
index 22a991a98cb..a89fa7c7e5b 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java
@@ -27,7 +27,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("jvm")
+@DevConsole(name = "jvm", displayName = "JVM", description = "Displays JVM 
information")
 @Configurer(bootstrap = true)
 public class JvmDevConsole extends AbstractDevConsole {
 
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/LogDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/LogDevConsole.java
index a4ba2053d5b..3e90ae12ff5 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/LogDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/LogDevConsole.java
@@ -28,7 +28,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("log")
+@DevConsole(name = "log", description = "Logging framework")
 public class LogDevConsole extends AbstractDevConsole {
 
     // log4j support
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java
index f5007abdce3..f02708dfb80 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java
@@ -27,7 +27,7 @@ import org.apache.camel.util.json.JsonObject;
 
 import static org.apache.camel.util.UnitUtils.printUnitFromBytesDot;
 
-@DevConsole("memory")
+@DevConsole(name = "memory", displayName = "JVM Memory", description = 
"Displays JVM memory information")
 @Configurer(bootstrap = true)
 public class MemoryDevConsole extends AbstractDevConsole {
 
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/PropertiesDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/PropertiesDevConsole.java
index abde673d4eb..a539b893036 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/PropertiesDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/PropertiesDevConsole.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("properties")
+@DevConsole(name = "properties", description = "Displays the properties loaded 
by Camel")
 public class PropertiesDevConsole extends AbstractDevConsole {
 
     public PropertiesDevConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ReloadDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ReloadDevConsole.java
index 83057664c3d..8d82525d202 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ReloadDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ReloadDevConsole.java
@@ -26,7 +26,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("reload")
+@DevConsole(name = "reload", description = "Console for reloading running 
Camel")
 public class ReloadDevConsole extends AbstractDevConsole {
 
     /**
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java
index f727cdd5e38..5a9264857a4 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java
@@ -38,14 +38,14 @@ import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 import org.apache.camel.util.json.Jsoner;
 
-@DevConsole("route-controller")
+@DevConsole(name = "route-controller", description = "Route controller 
information")
 public class RouteControllerConsole extends AbstractDevConsole {
 
     public static final String STACKTRACE = "stacktrace";
     public static final String ERROR = "error";
 
     public RouteControllerConsole() {
-        super("camel", "route-controller", "Route Controller", "Route startup 
information");
+        super("camel", "route-controller", "Route Controller", "Route 
controller information");
     }
 
     @Override
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java
index a289c96982e..3f53ba6a20d 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java
@@ -40,7 +40,7 @@ import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 import org.apache.camel.util.json.Jsoner;
 
-@DevConsole("route")
+@DevConsole(name = "route", description = "Route information")
 public class RouteDevConsole extends AbstractDevConsole {
 
     /**
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java
index 63c127b0d82..65b46aeb838 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java
@@ -33,7 +33,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("route-dump")
+@DevConsole(name = "route-dump", description = "Dump route in XML or YAML 
format")
 public class RouteDumpDevConsole extends AbstractDevConsole {
 
     /**
@@ -57,7 +57,7 @@ public class RouteDumpDevConsole extends AbstractDevConsole {
     public static final String URI_AS_PARAMETERS = "uriAsParameters";
 
     public RouteDumpDevConsole() {
-        super("camel", "route-dump", "Route Dump", "Dump route structure in 
XML or YAML format");
+        super("camel", "route-dump", "Route Dump", "Dump route in XML or YAML 
format");
     }
 
     @Override
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java
index ba7faf6e3d5..82c7f57fbee 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java
@@ -37,7 +37,7 @@ import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("source")
+@DevConsole(name = "source", description = "Dump route source code")
 public class SourceDevConsole extends AbstractDevConsole {
 
     /**
@@ -51,7 +51,7 @@ public class SourceDevConsole extends AbstractDevConsole {
     public static final String LIMIT = "limit";
 
     public SourceDevConsole() {
-        super("camel", "source", "Source", "Display route source code");
+        super("camel", "source", "Source", "Dump route source code");
     }
 
     @Override
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/StartupRecorderDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/StartupRecorderDevConsole.java
index c67b8499fc6..e2130cb157a 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/StartupRecorderDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/StartupRecorderDevConsole.java
@@ -27,11 +27,11 @@ import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("startup-recorder")
+@DevConsole(name = "startup-recorder", description = "Starting recording 
information")
 public class StartupRecorderDevConsole extends AbstractDevConsole {
 
     public StartupRecorderDevConsole() {
-        super("camel", "startup-recorder", "Startup Recorder", "Display 
startup recording");
+        super("camel", "startup-recorder", "Startup Recorder", "Starting 
recording information");
     }
 
     @Override
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java
index 3deb5a82bcb..8f7680392f3 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java
@@ -28,12 +28,12 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("thread")
+@DevConsole(name = "thread", description = "Displays JVM Threads information")
 @Configurer(bootstrap = true)
 public class ThreadDevConsole extends AbstractDevConsole {
 
     public ThreadDevConsole() {
-        super("jvm", "thread", "Thread", "Displays Threads information");
+        super("jvm", "thread", "Thread", "Displays JVM Threads information");
     }
 
     @Override
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java
index 54358b71059..f17264715b3 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java
@@ -42,7 +42,7 @@ import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonObject;
 import org.apache.camel.util.json.Jsoner;
 
-@DevConsole("top")
+@DevConsole(name = "top", displayName = "Top Routes", description = "Display 
the top routes")
 public class TopDevConsole extends AbstractDevConsole {
 
     /**
@@ -56,7 +56,7 @@ public class TopDevConsole extends AbstractDevConsole {
     public static final String LIMIT = "limit";
 
     public TopDevConsole() {
-        super("camel", "top", "Top", "Display the top routes");
+        super("camel", "top", "Top Routes", "Display the top routes");
     }
 
     @Override
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java
index 771c472dda6..8fea16ac83a 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java
@@ -29,7 +29,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("trace")
+@DevConsole(name = "trace", displayName = "Camel Tracing", description = 
"Trace routed messages")
 @Configurer(bootstrap = true)
 public class TraceDevConsole extends AbstractDevConsole {
 
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/TransformerConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/TransformerConsole.java
index ebb6e65b18c..d400f81fc5d 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/TransformerConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/TransformerConsole.java
@@ -25,11 +25,11 @@ import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("transformers")
+@DevConsole(name = "transformers", displayName = "Data Type Transformers", 
description = "Data-type transformer information")
 public class TransformerConsole extends AbstractDevConsole {
 
     public TransformerConsole() {
-        super("camel", "transformers", "Data Type Transformers", "Camel Data 
Type Transformer information");
+        super("camel", "transformers", "Data Type Transformers", "Data-type 
transformer information");
     }
 
     @Override
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/TypeConverterConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/TypeConverterConsole.java
index dd28b9b3d10..c13365853c9 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/TypeConverterConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/TypeConverterConsole.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("type-converters")
+@DevConsole(name = "type-converters", description = "Camel Type Converter 
information")
 public class TypeConverterConsole extends AbstractDevConsole {
 
     public TypeConverterConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java
index 3769cd57a8e..26f0599ade0 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java
@@ -26,7 +26,7 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("variables")
+@DevConsole(name = "variables", description = "Displays variables")
 public class VariablesDevConsole extends AbstractDevConsole {
 
     public VariablesDevConsole() {
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc
index 7b204466ca6..98e2921388b 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc
@@ -139,6 +139,26 @@ moved into a new group `camel.debug` with more options to 
configure the backlog
 
 To enable backlog tracing you should now set `camel.trace.enabled=true` 
instead of `camel.main.backlogTracing=true`.
 
+=== camel-console
+
+The `@DevConsole` annotation has been enhanced to include more information.
+
+Migrate from
+
+[source,java]
+----
+@DevConsole("stub")
+----
+
+To
+
+[source,java]
+----
+@DevConsole(name = "stub", description = "Browse messages on stub endpoints")
+----
+
+We also renamed the `route-curcuit-breaker` console to `circuit-breaker`.
+
 === camel-jsonpath
 
 The `camel-jsonpath` will now work more similar as `camel-jq` when you specify 
a `resultType` and have a list of entities.
diff --git 
a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
 
b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
index 593f8369f71..069dd3946ca 100644
--- 
a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
+++ 
b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
@@ -899,11 +899,11 @@ public class LocalCliConnector extends ServiceSupport 
implements CliConnector, C
                         root.put("fault-tolerance", json);
                     }
                 }
-                DevConsole dc12a = dcr.resolveById("route-circuit-breaker");
+                DevConsole dc12a = dcr.resolveById("circuit-breaker");
                 if (dc12a != null) {
                     JsonObject json = (JsonObject) 
dc12a.call(DevConsole.MediaType.JSON);
                     if (json != null && !json.isEmpty()) {
-                        root.put("route-circuit-breaker", json);
+                        root.put("circuit-breaker", json);
                     }
                 }
                 DevConsole dc12 = 
camelContext.getCamelContextExtension().getContextPlugin(DevConsoleRegistry.class)
diff --git 
a/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jbang.json
 
b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jbang.json
new file mode 100644
index 00000000000..27208977c68
--- /dev/null
+++ 
b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jbang.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel-jbang",
+    "id": "jbang",
+    "title": "Camel JBang",
+    "description": "Information about Camel JBang",
+    "deprecated": false,
+    "javaType": "org.apache.camel.jbang.console.JBangDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jbang-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source-dir.json
 
b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source-dir.json
new file mode 100644
index 00000000000..9d3b0775845
--- /dev/null
+++ 
b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source-dir.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel-jbang",
+    "id": "source-dir",
+    "title": "Source Directory",
+    "description": "Information about Camel JBang source files",
+    "deprecated": false,
+    "javaType": "org.apache.camel.jbang.console.SourceDirDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jbang-console",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/JBangDevConsole.java
 
b/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/JBangDevConsole.java
index 9645b901540..b81f10c14d1 100644
--- 
a/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/JBangDevConsole.java
+++ 
b/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/JBangDevConsole.java
@@ -22,11 +22,11 @@ import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("jbang")
+@DevConsole(name = "jbang", group = "camel-jbang", displayName = "Camel 
JBang", description = "Information about Camel JBang")
 public class JBangDevConsole extends AbstractDevConsole {
 
     public JBangDevConsole() {
-        super("camel", "jbang", "Camel JBang", "Information about Camel 
JBang");
+        super("camel-jbang", "jbang", "Camel JBang", "Information about Camel 
JBang");
     }
 
     @Override
diff --git 
a/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/SourceDirDevConsole.java
 
b/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/SourceDirDevConsole.java
index 87e2bf48ba3..6ad7a2b9e6a 100644
--- 
a/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/SourceDirDevConsole.java
+++ 
b/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/SourceDirDevConsole.java
@@ -35,7 +35,8 @@ import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("source-dir")
+@DevConsole(name = "source-dir", group = "camel-jbang", displayName = "Source 
Directory",
+            description = "Information about Camel JBang source files")
 public class SourceDirDevConsole extends AbstractDevConsole {
 
     /**
@@ -44,7 +45,7 @@ public class SourceDirDevConsole extends AbstractDevConsole {
     public static final String SOURCE = "source";
 
     public SourceDirDevConsole() {
-        super("camel", "source-dir", "Source Directory", "Information about 
Camel JBang source files");
+        super("camel-jbang", "source-dir", "Source Directory", "Information 
about Camel JBang source files");
     }
 
     @Override
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListCircuitBreaker.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListCircuitBreaker.java
index 7f81185d02a..7d86cb9552d 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListCircuitBreaker.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListCircuitBreaker.java
@@ -108,7 +108,7 @@ public class ListCircuitBreaker extends ProcessWatchCommand 
{
                                 }
                             }
                         }
-                        mo = (JsonObject) root.get("route-circuit-breaker");
+                        mo = (JsonObject) root.get("circuit-breaker");
                         if (mo != null) {
                             JsonArray arr = (JsonArray) 
mo.get("circuitBreakers");
                             if (arr != null) {
diff --git 
a/dsl/camel-kamelet-main/src/generated/resources/META-INF/org/apache/camel/dev-console/dependency-downloader.json
 
b/dsl/camel-kamelet-main/src/generated/resources/META-INF/org/apache/camel/dev-console/dependency-downloader.json
new file mode 100644
index 00000000000..89d90a4eae6
--- /dev/null
+++ 
b/dsl/camel-kamelet-main/src/generated/resources/META-INF/org/apache/camel/dev-console/dependency-downloader.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "id": "dependency-downloader",
+    "title": "Maven Dependency Downloader",
+    "description": "Displays information about dependencies downloaded at 
runtime",
+    "deprecated": false,
+    "javaType": "org.apache.camel.main.console.DependencyDownloaderConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-kamelet-main",
+    "version": "4.5.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java
index e08afe95620..21a585f056b 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java
@@ -27,11 +27,11 @@ import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
-@DevConsole("dependency-downloader")
+@DevConsole(name = "dependency-downloader", group = "camel-jbang", displayName 
= "Maven Dependency Downloader", description = "Displays information about 
dependencies downloaded at runtime")
 public class DependencyDownloaderConsole extends AbstractDevConsole {
 
     public DependencyDownloaderConsole() {
-        super("jvm", "dependency-downloader", "Maven Dependency Downloader",
+        super("camel-jbang", "dependency-downloader", "Maven Dependency 
Downloader",
               "Displays information about dependencies downloaded at runtime");
     }
 
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java
index 39e69a47d0a..54e8563c891 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java
@@ -50,6 +50,8 @@ public class GenerateComponentMojo extends 
AbstractGenerateMojo {
         invoke(GenerateInvokeOnHeaderMojo.class);
         // generate data-type-transformer
         invoke(GenerateDataTypeTransformerMojo.class);
+        // generate dev-console
+        invoke(GenerateDevConsoleMojo.class);
         // prepare-components
         invoke(PrepareComponentMojo.class);
         // validate-components
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java
index bf93e9984c2..39525ac332c 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java
@@ -37,6 +37,8 @@ import org.jboss.jandex.AnnotationInstance;
 import org.jboss.jandex.DotName;
 import org.jboss.jandex.Index;
 
+import static org.apache.camel.maven.packaging.MojoHelper.annotationValue;
+
 /**
  * Factory for generating code for @DataTypeTransformer.
  */
@@ -143,22 +145,10 @@ public class GenerateDataTypeTransformerMojo extends 
AbstractGeneratorMojo {
                     = a.target().asClass().hasAnnotation(Deprecated.class) || 
project.getName().contains("(deprecated)");
             model.setClassName(currentClass);
             model.setDeprecated(deprecated);
-            var name = a.value("name");
-            if (name != null) {
-                model.setName(name.value().toString());
-            }
-            var from = a.value("from");
-            if (from != null) {
-                model.setFrom(from.value().toString());
-            }
-            var to = a.value("to");
-            if (to != null) {
-                model.setFrom(to.value().toString());
-            }
-            var desc = a.value("description");
-            if (desc != null) {
-                model.setDescription(desc.value().toString());
-            }
+            model.setName(annotationValue(a, "name"));
+            model.setFrom(annotationValue(a, "from"));
+            model.setTo(annotationValue(a, "to"));
+            model.setDescription(annotationValue(a, "description"));
             models.add(model);
         });
         models.sort(Comparator.comparing(DataTypeTransformerModel::getName));
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java
similarity index 61%
copy from 
tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java
copy to 
tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java
index bf93e9984c2..a05b79c117d 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java
@@ -37,15 +37,20 @@ import org.jboss.jandex.AnnotationInstance;
 import org.jboss.jandex.DotName;
 import org.jboss.jandex.Index;
 
+import static org.apache.camel.maven.packaging.MojoHelper.annotationValue;
+
 /**
- * Factory for generating code for @DataTypeTransformer.
+ * Factory for generating metadata for @DevConsole.
+ *
+ * This mojo will only generate json metadata with details of the dev 
consoles. The general spi-generator will generate
+ * the marker files
  */
-@Mojo(name = "generate-data-type-transformer", threadSafe = true, defaultPhase 
= LifecyclePhase.PROCESS_CLASSES,
+@Mojo(name = "generate-dev-console", threadSafe = true, defaultPhase = 
LifecyclePhase.PROCESS_CLASSES,
       requiresDependencyCollection = ResolutionScope.COMPILE,
       requiresDependencyResolution = ResolutionScope.COMPILE)
-public class GenerateDataTypeTransformerMojo extends AbstractGeneratorMojo {
+public class GenerateDevConsoleMojo extends AbstractGeneratorMojo {
 
-    public static final DotName DATA_TYPE_ANNOTATION = 
DotName.createSimple("org.apache.camel.spi.DataTypeTransformer");
+    public static final DotName DEV_CONSOLE_ANNOTATION = 
DotName.createSimple("org.apache.camel.spi.annotations.DevConsole");
 
     /**
      * The project build directory
@@ -56,11 +61,11 @@ public class GenerateDataTypeTransformerMojo extends 
AbstractGeneratorMojo {
     @Parameter(defaultValue = "${project.basedir}/src/generated/resources")
     protected File resourcesOutputDir;
 
-    private static class DataTypeTransformerModel {
+    private static class DevConsoleModel {
         private String className;
-        private String name;
-        private String from;
-        private String to;
+        private String group;
+        private String id;
+        private String displayName;
         private String description;
         private boolean deprecated;
 
@@ -72,28 +77,28 @@ public class GenerateDataTypeTransformerMojo extends 
AbstractGeneratorMojo {
             this.className = className;
         }
 
-        public String getName() {
-            return name;
+        public String getGroup() {
+            return group;
         }
 
-        public void setName(String name) {
-            this.name = name;
+        public void setGroup(String group) {
+            this.group = group;
         }
 
-        public String getFrom() {
-            return from;
+        public String getId() {
+            return id;
         }
 
-        public void setFrom(String from) {
-            this.from = from;
+        public void setId(String id) {
+            this.id = id;
         }
 
-        public String getTo() {
-            return to;
+        public String getDisplayName() {
+            return displayName;
         }
 
-        public void setTo(String to) {
-            this.to = to;
+        public void setDisplayName(String displayName) {
+            this.displayName = displayName;
         }
 
         public String getDescription() {
@@ -113,7 +118,7 @@ public class GenerateDataTypeTransformerMojo extends 
AbstractGeneratorMojo {
         }
     }
 
-    public GenerateDataTypeTransformerMojo() {
+    public GenerateDevConsoleMojo() {
     }
 
     @Override
@@ -133,89 +138,76 @@ public class GenerateDataTypeTransformerMojo extends 
AbstractGeneratorMojo {
             return;
         }
 
-        List<DataTypeTransformerModel> models = new ArrayList<>();
-        List<AnnotationInstance> annotations = 
index.getAnnotations(DATA_TYPE_ANNOTATION);
+        List<DevConsoleModel> models = new ArrayList<>();
+        List<AnnotationInstance> annotations = 
index.getAnnotations(DEV_CONSOLE_ANNOTATION);
         annotations.forEach(a -> {
-            DataTypeTransformerModel model = new DataTypeTransformerModel();
+            DevConsoleModel model = new DevConsoleModel();
 
             String currentClass = a.target().asClass().name().toString();
             boolean deprecated
                     = a.target().asClass().hasAnnotation(Deprecated.class) || 
project.getName().contains("(deprecated)");
             model.setClassName(currentClass);
             model.setDeprecated(deprecated);
-            var name = a.value("name");
-            if (name != null) {
-                model.setName(name.value().toString());
-            }
-            var from = a.value("from");
-            if (from != null) {
-                model.setFrom(from.value().toString());
-            }
-            var to = a.value("to");
-            if (to != null) {
-                model.setFrom(to.value().toString());
-            }
-            var desc = a.value("description");
-            if (desc != null) {
-                model.setDescription(desc.value().toString());
+            model.setGroup(annotationValue(a, "group"));
+            model.setId(annotationValue(a, "name"));
+            model.setDisplayName(annotationValue(a, "displayName"));
+            model.setDescription(annotationValue(a, "description"));
+            // skip default registry
+            boolean skip = "default-registry".equals(model.getId());
+            if (!skip) {
+                models.add(model);
             }
-            models.add(model);
         });
-        models.sort(Comparator.comparing(DataTypeTransformerModel::getName));
+        models.sort(Comparator.comparing(DevConsoleModel::getId));
+
+        // remove default-registry as it's special
 
         if (!models.isEmpty()) {
             try {
-                StringJoiner names = new StringJoiner(" ");
+                StringJoiner ids = new StringJoiner(" ");
                 for (var model : models) {
-                    names.add(model.getName());
+                    ids.add(model.getId());
 
                     JsonObject jo = asJsonObject(model);
                     String json = jo.toJson();
                     json = Jsoner.prettyPrint(json, 2);
-                    String fn = sanitizeFileName(model.getName()) + 
PackageHelper.JSON_SUFIX;
+                    String fn = sanitizeFileName(model.getId()) + 
PackageHelper.JSON_SUFIX;
                     boolean updated = 
updateResource(resourcesOutputDir.toPath(),
-                            "META-INF/services/org/apache/camel/transformer/" 
+ fn,
+                            "META-INF/org/apache/camel/dev-console/" + fn,
                             json + NL);
                     if (updated) {
-                        getLog().info("Updated transformer json: " + 
model.getName());
+                        getLog().info("Updated dev-console json: " + 
model.getId());
                     }
                 }
-
-                // generate marker file
-                File camelMetaDir = new File(resourcesOutputDir, 
"META-INF/services/org/apache/camel/");
-                int count = models.size();
-                String properties = createProperties(project, "transformers", 
names.toString());
-                updateResource(camelMetaDir.toPath(), 
"transformer.properties", properties);
-                getLog().info("Generated transformer.properties containing " + 
count + " Camel "
-                              + (count > 1 ? "transformers: " : "transformer: 
") + names);
             } catch (Exception e) {
                 throw new MojoExecutionException(e);
             }
         }
     }
 
-    private JsonObject asJsonObject(DataTypeTransformerModel model) {
+    private JsonObject asJsonObject(DevConsoleModel model) {
         JsonObject jo = new JsonObject();
         // we need to know the maven GAV also
-        jo.put("kind", "transformer");
-        jo.put("name", model.getName());
-        jo.put("title", asTitle(model.getName()));
-        if (model.getDescription() != null) {
-            jo.put("description", model.getDescription());
-        }
+        jo.put("kind", "console");
+        if (model.group != null) {
+            jo.put("group", model.getGroup());
+        } else {
+            jo.put("group", "camel");
+        }
+        jo.put("id", model.getId());
+        if (model.getDisplayName() != null) {
+            jo.put("title", asTitle(model.getDisplayName()));
+        } else {
+            jo.put("title", asTitle(model.getId()));
+        }
+        jo.put("description", model.getDescription());
         jo.put("deprecated", model.isDeprecated());
         jo.put("javaType", model.getClassName());
-        if (model.getFrom() != null) {
-            jo.put("from", model.getFrom());
-        }
-        if (model.getTo() != null) {
-            jo.put("to", model.getTo());
-        }
         jo.put("groupId", project.getGroupId());
         jo.put("artifactId", project.getArtifactId());
         jo.put("version", project.getVersion());
         JsonObject root = new JsonObject();
-        root.put("transformer", jo);
+        root.put("console", jo);
         return root;
     }
 
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java
index b93ce0826ce..982f872be20 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java
@@ -52,6 +52,8 @@ public class GenerateMojo extends AbstractGenerateMojo {
         invoke(GenerateInvokeOnHeaderMojo.class);
         // generate data-type-transformer
         invoke(GenerateDataTypeTransformerMojo.class);
+        // generate dev-console
+        invoke(GenerateDevConsoleMojo.class);
         // prepare-components
         invoke(PrepareComponentMojo.class);
         // prepare-main
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
index a2f85b5f116..f4b742e9985 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
@@ -21,6 +21,8 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
+import org.jboss.jandex.AnnotationInstance;
+
 public final class MojoHelper {
 
     private MojoHelper() {
@@ -113,4 +115,20 @@ public final class MojoHelper {
         }
     }
 
+    public static String annotationValue(AnnotationInstance ann, String key) {
+        if (ann == null) {
+            return null;
+        }
+        var v = ann.value(key);
+        if (v == null) {
+            return null;
+        }
+        var o = v.value();
+        if (o == null) {
+            return null;
+        }
+        var s = o.toString();
+        return s == null || s.isBlank() ? null : s;
+    }
+
 }
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java
index 8dee2695138..1b5e953ef5d 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java
@@ -135,7 +135,7 @@ public class SpiGeneratorMojo extends AbstractGeneratorMojo 
{
                     continue;
                 }
                 String pvals;
-                // @DataTypeTransformer uses name instead of value
+                // @DataTypeTransformer/@DevConsole uses name instead of value
                 if (annotation.value() == null) {
                     pvals = annotation.values().stream()
                             .filter(annotationValue -> 
"name".equals(annotationValue.name()))
diff --git 
a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/DevConsole.java
 
b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/DevConsole.java
index f504ea000b2..337360203da 100644
--- 
a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/DevConsole.java
+++ 
b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/DevConsole.java
@@ -31,9 +31,24 @@ import java.lang.annotation.Target;
 @ServiceFactory("dev-console")
 public @interface DevConsole {
 
+    /**
+     * The group of the dev console
+     */
+    String group() default "camel";
+
     /**
      * The ID of the dev console.
      */
-    String value();
+    String name();
+
+    /**
+     * Display name (title)
+     */
+    String displayName() default "";
+
+    /**
+     * Description of the console
+     */
+    String description();
 
 }

Reply via email to