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 5568d6627ce32a71261710a3e12fdf20707029dc
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sat Mar 9 12:40:14 2024 +0100

    CAMEL-20531: Include dev-consoles into camel-catalog
---
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../apache/camel/catalog/dev-consoles.properties   | 41 +++++++++++++
 .../camel/catalog/dev-consoles/aws-secrets.json    | 15 +++++
 .../apache/camel/catalog/dev-consoles/aws2-s3.json | 15 +++++
 .../camel/catalog/dev-consoles/azure-secrets.json  | 15 +++++
 .../apache/camel/catalog/dev-consoles/bean.json    | 15 +++++
 .../apache/camel/catalog/dev-consoles/blocked.json | 15 +++++
 .../catalog/dev-consoles/circuit-breaker.json      | 15 +++++
 .../camel/catalog/dev-consoles/consumer.json       | 15 +++++
 .../apache/camel/catalog/dev-consoles/context.json | 15 +++++
 .../apache/camel/catalog/dev-consoles/debug.json   | 15 +++++
 .../camel/catalog/dev-consoles/endpoint.json       | 15 +++++
 .../apache/camel/catalog/dev-consoles/event.json   | 15 +++++
 .../catalog/dev-consoles/fault-tolerance.json      | 15 +++++
 .../org/apache/camel/catalog/dev-consoles/gc.json  | 15 +++++
 .../camel/catalog/dev-consoles/gcp-secrets.json    | 15 +++++
 .../apache/camel/catalog/dev-consoles/health.json  | 15 +++++
 .../camel/catalog/dev-consoles/inflight.json       | 15 +++++
 .../camel/catalog/dev-consoles/java-security.json  | 15 +++++
 .../org/apache/camel/catalog/dev-consoles/jvm.json | 15 +++++
 .../org/apache/camel/catalog/dev-consoles/log.json | 15 +++++
 .../apache/camel/catalog/dev-consoles/memory.json  | 15 +++++
 .../camel/catalog/dev-consoles/micrometer.json     | 15 +++++
 .../apache/camel/catalog/dev-consoles/mina.json    | 15 +++++
 .../apache/camel/catalog/dev-consoles/mllp.json    | 15 +++++
 .../apache/camel/catalog/dev-consoles/netty.json   | 15 +++++
 .../camel/catalog/dev-consoles/platform-http.json  | 15 +++++
 .../camel/catalog/dev-consoles/properties.json     | 15 +++++
 .../apache/camel/catalog/dev-consoles/quartz.json  | 15 +++++
 .../apache/camel/catalog/dev-consoles/reload.json  | 15 +++++
 .../camel/catalog/dev-consoles/resilience4j.json   | 15 +++++
 .../catalog/dev-consoles/route-controller.json     | 15 +++++
 .../camel/catalog/dev-consoles/route-dump.json     | 15 +++++
 .../apache/camel/catalog/dev-consoles/route.json   | 15 +++++
 .../apache/camel/catalog/dev-consoles/source.json  | 15 +++++
 .../catalog/dev-consoles/startup-recorder.json     | 15 +++++
 .../apache/camel/catalog/dev-consoles/stub.json    | 15 +++++
 .../apache/camel/catalog/dev-consoles/thread.json  | 15 +++++
 .../org/apache/camel/catalog/dev-consoles/top.json | 15 +++++
 .../apache/camel/catalog/dev-consoles/trace.json   | 15 +++++
 .../camel/catalog/dev-consoles/transformers.json   | 15 +++++
 .../catalog/dev-consoles/type-converters.json      | 15 +++++
 .../camel/catalog/dev-consoles/variables.json      | 15 +++++
 .../org/apache/camel/catalog/CamelCatalog.java     | 10 ++++
 .../catalog/CamelCatalogJSonSchemaResolver.java    |  7 +++
 .../apache/camel/catalog/DefaultCamelCatalog.java  | 21 +++++++
 .../camel/catalog/DefaultRuntimeProvider.java      | 28 +++++++++
 .../org/apache/camel/catalog/RuntimeProvider.java  | 10 ++++
 .../org/apache/camel/catalog/CamelCatalogTest.java | 24 ++++++++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../java/org/apache/camel/CatalogCamelContext.java |  8 +++
 .../apache/camel/catalog/JSonSchemaResolver.java   |  8 +++
 .../camel/impl/engine/AbstractCamelContext.java    | 11 ++++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../camel/catalog/impl/AbstractCamelCatalog.java   | 10 ++++
 .../impl/CamelContextJSonSchemaResolver.java       | 10 ++++
 .../camel/yaml/io/ModelJSonSchemaResolver.java     |  5 ++
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../camel/dev-console/dependency-downloader.json   |  2 +-
 .../org/apache/camel/dev-consoles.properties       |  7 +++
 .../camel/tooling/model/DevConsoleModel.java       | 39 +++++++++++++
 .../org/apache/camel/tooling/model/JsonMapper.java | 32 +++++++++++
 .../maven/packaging/GenerateDevConsoleMojo.java    |  8 +++
 .../camel/maven/packaging/PrepareCatalogMojo.java  | 67 ++++++++++++++++++++++
 77 files changed, 1081 insertions(+), 1 deletion(-)

diff --git 
a/catalog/camel-catalog-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/catalog/camel-catalog-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..d50469997ee
--- /dev/null
+++ 
b/catalog/camel-catalog-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=catalog
+groupId=org.apache.camel
+artifactId=camel-catalog-console
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Catalog :: Console
+projectDescription=Camel Catalog Developer Console
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles.properties
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles.properties
new file mode 100644
index 00000000000..407203014fc
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles.properties
@@ -0,0 +1,41 @@
+aws-secrets
+aws2-s3
+azure-secrets
+bean
+blocked
+circuit-breaker
+consumer
+context
+debug
+endpoint
+event
+fault-tolerance
+gc
+gcp-secrets
+health
+inflight
+java-security
+jvm
+log
+memory
+micrometer
+mina
+mllp
+netty
+platform-http
+properties
+quartz
+reload
+resilience4j
+route
+route-controller
+route-dump
+source
+startup-recorder
+stub
+thread
+top
+trace
+transformers
+type-converters
+variables
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/aws-secrets.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/aws-secrets.json
new file mode 100644
index 00000000000..8da0b8d47e9
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/aws2-s3.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/aws2-s3.json
new file mode 100644
index 00000000000..98c0413fdec
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/azure-secrets.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/azure-secrets.json
new file mode 100644
index 00000000000..a7665eaceea
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/bean.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/bean.json
new file mode 100644
index 00000000000..73b15a92789
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/blocked.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/blocked.json
new file mode 100644
index 00000000000..eea12840c2f
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/circuit-breaker.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/circuit-breaker.json
new file mode 100644
index 00000000000..2b2f20277a1
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/consumer.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/consumer.json
new file mode 100644
index 00000000000..94cc1673ced
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/context.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/context.json
new file mode 100644
index 00000000000..634473f6df2
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/debug.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/debug.json
new file mode 100644
index 00000000000..1741c47718b
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/endpoint.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/endpoint.json
new file mode 100644
index 00000000000..f26b0f6e877
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/event.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/event.json
new file mode 100644
index 00000000000..7ff5a6209ba
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/fault-tolerance.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/fault-tolerance.json
new file mode 100644
index 00000000000..f4b53fbf88a
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/gc.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/gc.json
new file mode 100644
index 00000000000..59e73b1d857
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/gcp-secrets.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/gcp-secrets.json
new file mode 100644
index 00000000000..8c93a8fe303
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/health.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/health.json
new file mode 100644
index 00000000000..d66ff7c1cb6
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/inflight.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/inflight.json
new file mode 100644
index 00000000000..55bf27070f9
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/java-security.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/java-security.json
new file mode 100644
index 00000000000..ff13d144970
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/jvm.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/jvm.json
new file mode 100644
index 00000000000..0b95f9f20f1
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/log.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/log.json
new file mode 100644
index 00000000000..93c4b4868e1
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/memory.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/memory.json
new file mode 100644
index 00000000000..88031548edf
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/micrometer.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/micrometer.json
new file mode 100644
index 00000000000..2b26acc7c74
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/mina.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/mina.json
new file mode 100644
index 00000000000..f37d1749e16
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/mllp.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/mllp.json
new file mode 100644
index 00000000000..2d19aa5ee66
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/netty.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/netty.json
new file mode 100644
index 00000000000..3fcebdfe3d5
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/platform-http.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/platform-http.json
new file mode 100644
index 00000000000..34cbd2da7e2
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/properties.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/properties.json
new file mode 100644
index 00000000000..0d248c543b9
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/quartz.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/quartz.json
new file mode 100644
index 00000000000..acbc204a098
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/reload.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/reload.json
new file mode 100644
index 00000000000..ed0fc201bfe
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/resilience4j.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/resilience4j.json
new file mode 100644
index 00000000000..ed28864d270
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route-controller.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route-controller.json
new file mode 100644
index 00000000000..d29993d28a6
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route-dump.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route-dump.json
new file mode 100644
index 00000000000..559adade159
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route.json
new file mode 100644
index 00000000000..534d51296a8
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/source.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/source.json
new file mode 100644
index 00000000000..d65b96705cd
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/startup-recorder.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/startup-recorder.json
new file mode 100644
index 00000000000..3b953a98cfa
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/stub.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/stub.json
new file mode 100644
index 00000000000..609d3e43dbf
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/thread.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/thread.json
new file mode 100644
index 00000000000..28f2a2ceca0
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/top.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/top.json
new file mode 100644
index 00000000000..97ebc7895e0
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/trace.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/trace.json
new file mode 100644
index 00000000000..20ad3e0ba8f
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/transformers.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/transformers.json
new file mode 100644
index 00000000000..f4a6cc28393
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/type-converters.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/type-converters.json
new file mode 100644
index 00000000000..69c213b9a30
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/variables.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/variables.json
new file mode 100644
index 00000000000..d44adeff7fb
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/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/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
index ec167d2490e..398f5d0f629 100644
--- 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
+++ 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
@@ -198,6 +198,11 @@ public interface CamelCatalog {
      */
     List<String> findTransformerNames();
 
+    /**
+     * Find all the dev-console names from the Camel catalog
+     */
+    List<String> findDevConsoleNames();
+
     /**
      * Find all the model names from the Camel catalog
      */
@@ -508,6 +513,11 @@ public interface CamelCatalog {
      */
     String listTransformersAsJson();
 
+    /**
+     * Lists all the dev-consoles summary details in JSon
+     */
+    String listDevConsolesAsJson();
+
     /**
      * Lists all the models (EIPs) summary details in JSon
      */
diff --git 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalogJSonSchemaResolver.java
 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalogJSonSchemaResolver.java
index 52285d31c11..c5251125a2c 100644
--- 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalogJSonSchemaResolver.java
+++ 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalogJSonSchemaResolver.java
@@ -113,6 +113,13 @@ public class CamelCatalogJSonSchemaResolver implements 
JSonSchemaResolver {
         return loadResourceFromVersionManager(file);
     }
 
+    @Override
+    public String getDevConsoleJSonSchema(String name) {
+        name = sanitizeFileName(name);
+        final String file = 
camelCatalog.getRuntimeProvider().getDevConsoleJSonSchemaDirectory() + "/" + 
name + EXTENSION;
+        return loadResourceFromVersionManager(file);
+    }
+
     @Override
     public String getModelJSonSchema(String name) {
         final String file = MODEL_DIR + "/" + name + EXTENSION;
diff --git 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
index 3fbca05ec17..17289879a74 100644
--- 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
+++ 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
@@ -64,8 +64,10 @@ public class DefaultCamelCatalog extends 
AbstractCamelCatalog implements CamelCa
     public static final String LIST_DATA_FORMATS_AS_JSON = 
"listDataFormatsAsJson";
     public static final String FIND_LANGUAGE_NAMES = "findLanguageNames";
     public static final String FIND_TRANSFORMER_NAMES = "findTransformerNames";
+    public static final String FIND_CONSOLE_NAMES = "findConsoleNames";
     public static final String LIST_LANGUAGES_AS_JSON = "listLanguagesAsJson";
     public static final String LIST_TRANSFORMERS_AS_JSON = 
"listTransformersAsJson";
+    public static final String LIST_CONSOLES_AS_JSON = "listConsolesAsJson";
 
     private final VersionHelper version = new VersionHelper();
 
@@ -231,6 +233,11 @@ public class DefaultCamelCatalog extends 
AbstractCamelCatalog implements CamelCa
         return cache(FIND_TRANSFORMER_NAMES, 
runtimeProvider::findTransformerNames);
     }
 
+    @Override
+    public List<String> findDevConsoleNames() {
+        return cache(FIND_CONSOLE_NAMES, runtimeProvider::findDevConsoleNames);
+    }
+
     @Override
     public List<String> findModelNames() {
         return cache("findModelNames", () -> {
@@ -341,6 +348,11 @@ public class DefaultCamelCatalog extends 
AbstractCamelCatalog implements CamelCa
         return cache("transformer-" + name, name, 
super::transformerJSonSchema);
     }
 
+    @Override
+    public String devConsoleJSonSchema(String name) {
+        return cache("dev-console-" + name, name, super::devConsoleJSonSchema);
+    }
+
     @Override
     public LanguageModel languageModel(String name) {
         return cache("language-model-" + name, name, super::languageModel);
@@ -456,6 +468,15 @@ public class DefaultCamelCatalog extends 
AbstractCamelCatalog implements CamelCa
                 .toList()));
     }
 
+    @Override
+    public String listDevConsolesAsJson() {
+        return cache(LIST_CONSOLES_AS_JSON, () -> 
JsonMapper.serialize(findDevConsoleNames().stream()
+                .map(this::devConsoleJSonSchema)
+                .map(JsonMapper::deserialize)
+                .map(o -> o.get("console"))
+                .toList()));
+    }
+
     @Override
     public String listModelsAsJson() {
         return cache("listModelsAsJson", () -> 
JsonMapper.serialize(findModelNames().stream()
diff --git 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultRuntimeProvider.java
 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultRuntimeProvider.java
index 308b0de64f9..caebf7098ea 100644
--- 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultRuntimeProvider.java
+++ 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultRuntimeProvider.java
@@ -29,11 +29,13 @@ public class DefaultRuntimeProvider implements 
RuntimeProvider {
     private static final String DATAFORMAT_DIR = 
"org/apache/camel/catalog/dataformats";
     private static final String LANGUAGE_DIR = 
"org/apache/camel/catalog/languages";
     private static final String TRANSFORMER_DIR = 
"org/apache/camel/catalog/transformers";
+    private static final String CONSOLE_DIR = 
"org/apache/camel/catalog/dev-consoles";
     private static final String OTHER_DIR = "org/apache/camel/catalog/others";
     private static final String COMPONENTS_CATALOG = 
"org/apache/camel/catalog/components.properties";
     private static final String DATA_FORMATS_CATALOG = 
"org/apache/camel/catalog/dataformats.properties";
     private static final String LANGUAGE_CATALOG = 
"org/apache/camel/catalog/languages.properties";
     private static final String TRANSFORMER_CATALOG = 
"org/apache/camel/catalog/transformers.properties";
+    private static final String CONSOLE_CATALOG = 
"org/apache/camel/catalog/dev-consoles.properties";
     private static final String OTHER_CATALOG = 
"org/apache/camel/catalog/others.properties";
 
     private CamelCatalog camelCatalog;
@@ -90,6 +92,11 @@ public class DefaultRuntimeProvider implements 
RuntimeProvider {
         return TRANSFORMER_DIR;
     }
 
+    @Override
+    public String getDevConsoleJSonSchemaDirectory() {
+        return CONSOLE_DIR;
+    }
+
     @Override
     public String getOtherJSonSchemaDirectory() {
         return OTHER_DIR;
@@ -111,6 +118,10 @@ public class DefaultRuntimeProvider implements 
RuntimeProvider {
         return TRANSFORMER_CATALOG;
     }
 
+    protected String getDevConsoleCatalog() {
+        return CONSOLE_CATALOG;
+    }
+
     protected String getOtherCatalog() {
         return OTHER_CATALOG;
     }
@@ -183,6 +194,23 @@ public class DefaultRuntimeProvider implements 
RuntimeProvider {
         return names;
     }
 
+    @Override
+    public List<String> findDevConsoleNames() {
+        List<String> names = new ArrayList<>();
+        try (InputStream is = 
getCamelCatalog().getVersionManager().getResourceAsStream(getDevConsoleCatalog()))
 {
+            if (is != null) {
+                try {
+                    CatalogHelper.loadLines(is, names);
+                } catch (IOException e) {
+                    // ignore
+                }
+            }
+        } catch (IOException e1) {
+            // ignore
+        }
+        return names;
+    }
+
     @Override
     public List<String> findOtherNames() {
         List<String> names = new ArrayList<>();
diff --git 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/RuntimeProvider.java
 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/RuntimeProvider.java
index 2122773f5dc..3731dce8815 100644
--- 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/RuntimeProvider.java
+++ 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/RuntimeProvider.java
@@ -70,6 +70,11 @@ public interface RuntimeProvider {
      */
     String getTransformerJSonSchemaDirectory();
 
+    /**
+     * Gets the directory where the dev-console json files are stored in the 
catalog JAR file
+     */
+    String getDevConsoleJSonSchemaDirectory();
+
     /**
      * Gets the directory where the other (miscellaneous) json files are 
stored in the catalog JAR file
      */
@@ -95,6 +100,11 @@ public interface RuntimeProvider {
      */
     List<String> findTransformerNames();
 
+    /**
+     * Find all the dev console names from the Camel catalog supported by the 
provider
+     */
+    List<String> findDevConsoleNames();
+
     /**
      * Find all the other (miscellaneous) names from the Camel catalog 
supported by the provider
      */
diff --git 
a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
 
b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
index bfe80389805..a4c168436a4 100644
--- 
a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
+++ 
b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
@@ -138,6 +138,19 @@ public class CamelCatalogTest {
         assertTrue(names.contains("http-application-cloudevents"));
     }
 
+    @Test
+    public void testFindDevConsoleNames() {
+        List<String> names = catalog.findDevConsoleNames();
+
+        assertTrue(names.contains("aws2-s3"));
+        assertTrue(names.contains("aws-secrets"));
+        assertTrue(names.contains("gc"));
+        assertTrue(names.contains("inflight"));
+        assertTrue(names.contains("mina"));
+        assertTrue(names.contains("platform-http"));
+        assertTrue(names.contains("variables"));
+    }
+
     @Test
     public void testFindModelNames() {
         List<String> names = catalog.findModelNames();
@@ -890,6 +903,17 @@ public class CamelCatalogTest {
         assertNotNull(tree);
     }
 
+    @Test
+    public void testListDevConsolesAsJson() throws Exception {
+        String json = catalog.listDevConsolesAsJson();
+        assertNotNull(json);
+
+        // validate we can parse the json
+        ObjectMapper mapper = new ObjectMapper();
+        JsonNode tree = mapper.readTree(json);
+        assertNotNull(tree);
+    }
+
     @Test
     public void testListModelsAsJson() throws Exception {
         String json = catalog.listModelsAsJson();
diff --git 
a/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..00362fb7a40
--- /dev/null
+++ 
b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=aws-secrets
+groupId=org.apache.camel
+artifactId=camel-aws-secrets-manager
+version=4.5.0-SNAPSHOT
+projectName=Camel :: AWS2 Secrets Manager
+projectDescription=Execute different operations on Amazon Secrets Manager 
service
diff --git 
a/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..47f679f968e
--- /dev/null
+++ 
b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=aws2-s3
+groupId=org.apache.camel
+artifactId=camel-aws2-s3
+version=4.5.0-SNAPSHOT
+projectName=Camel :: AWS2 S3
+projectDescription=Consume files and upload files through AWS S3 Service
diff --git 
a/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..6a83993de78
--- /dev/null
+++ 
b/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=azure-secrets
+groupId=org.apache.camel
+artifactId=camel-azure-key-vault
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Azure :: Key Vault
+projectDescription=Camel Azure Key Vault Component
diff --git 
a/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..0f10f96cded
--- /dev/null
+++ 
b/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=gcp-secrets
+groupId=org.apache.camel
+artifactId=camel-google-secret-manager
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Google :: Secret Manager
+projectDescription=Camel Component for Google Cloud Platform Secrets Manager
diff --git 
a/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..cdf1bfd1b7f
--- /dev/null
+++ 
b/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=knative
+groupId=org.apache.camel
+artifactId=camel-knative-http
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Knative HTTP
+projectDescription=Camel Knative HTTP
diff --git 
a/components/camel-micrometer/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-micrometer/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..29f9ce7fd2e
--- /dev/null
+++ 
b/components/camel-micrometer/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=micrometer
+groupId=org.apache.camel
+artifactId=camel-micrometer
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Micrometer
+projectDescription=Camel Micrometer based monitoring component
diff --git 
a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..46ad2a3ef8e
--- /dev/null
+++ 
b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=fault-tolerance
+groupId=org.apache.camel
+artifactId=camel-microprofile-fault-tolerance
+version=4.5.0-SNAPSHOT
+projectName=Camel :: MicroProfile :: Fault Tolerance
+projectDescription=Circuit Breaker EIP using MicroProfile Fault Tolerance
diff --git 
a/components/camel-mina/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-mina/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..1eedff9d192
--- /dev/null
+++ 
b/components/camel-mina/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=mina
+groupId=org.apache.camel
+artifactId=camel-mina
+version=4.5.0-SNAPSHOT
+projectName=Camel :: MINA
+projectDescription=Camel MINA support
diff --git 
a/components/camel-mllp/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-mllp/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..6eedebd2efa
--- /dev/null
+++ 
b/components/camel-mllp/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=mllp
+groupId=org.apache.camel
+artifactId=camel-mllp
+version=4.5.0-SNAPSHOT
+projectName=Camel :: MLLP
+projectDescription=Camel MLLP Component
diff --git 
a/components/camel-netty/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-netty/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..0e7b5cc4e42
--- /dev/null
+++ 
b/components/camel-netty/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=netty
+groupId=org.apache.camel
+artifactId=camel-netty
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Netty
+projectDescription=Camel Netty NIO based socket communication component
diff --git 
a/components/camel-platform-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-platform-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..bc59635699a
--- /dev/null
+++ 
b/components/camel-platform-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=platform-http
+groupId=org.apache.camel
+artifactId=camel-platform-http
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Platform HTTP
+projectDescription=HTTP service leveraging existing runtime platform HTTP 
server
diff --git 
a/components/camel-quartz/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-quartz/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..53b1d4ad186
--- /dev/null
+++ 
b/components/camel-quartz/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=quartz
+groupId=org.apache.camel
+artifactId=camel-quartz
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Quartz
+projectDescription=Camel Quartz support
diff --git 
a/components/camel-resilience4j/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-resilience4j/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..e22a5035d9f
--- /dev/null
+++ 
b/components/camel-resilience4j/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=resilience4j
+groupId=org.apache.camel
+artifactId=camel-resilience4j
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Resilience4j
+projectDescription=Circuit Breaker EIP using Resilience4j
diff --git 
a/components/camel-stub/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/components/camel-stub/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..dd9967c1aed
--- /dev/null
+++ 
b/components/camel-stub/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=stub
+groupId=org.apache.camel
+artifactId=camel-stub
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Stub
+projectDescription=Camel Stub component
diff --git 
a/core/camel-api/src/main/java/org/apache/camel/CatalogCamelContext.java 
b/core/camel-api/src/main/java/org/apache/camel/CatalogCamelContext.java
index 7b2e7ffdd69..8c28be80f30 100644
--- a/core/camel-api/src/main/java/org/apache/camel/CatalogCamelContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/CatalogCamelContext.java
@@ -55,6 +55,14 @@ public interface CatalogCamelContext extends CamelContext {
      */
     String getTransformerParameterJsonSchema(String transformerName) throws 
IOException;
 
+    /**
+     * Returns the JSON schema representation of the {@link 
org.apache.camel.spi.annotations.DevConsole} parameters for the
+     * given dev-console name.
+     *
+     * @return the json or <tt>null</tt> if the dev-console does not exist
+     */
+    String getDevConsoleParameterJsonSchema(String devConsoleName) throws 
IOException;
+
     /**
      * Returns the JSON schema representation of the EIP parameters for the 
given EIP name.
      *
diff --git 
a/core/camel-api/src/main/java/org/apache/camel/catalog/JSonSchemaResolver.java 
b/core/camel-api/src/main/java/org/apache/camel/catalog/JSonSchemaResolver.java
index 788fc9b96b6..7d04305e0f2 100644
--- 
a/core/camel-api/src/main/java/org/apache/camel/catalog/JSonSchemaResolver.java
+++ 
b/core/camel-api/src/main/java/org/apache/camel/catalog/JSonSchemaResolver.java
@@ -58,6 +58,14 @@ public interface JSonSchemaResolver {
      */
     String getTransformerJSonSchema(String name);
 
+    /**
+     * Returns the dev console information as JSON format.
+     *
+     * @param  name the dev console name
+     * @return      dev console details in JSon
+     */
+    String getDevConsoleJSonSchema(String name);
+
     /**
      * Returns the other (miscellaneous) information as JSON format.
      *
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index d9e9f236e1c..0bd5970c301 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -1480,6 +1480,17 @@ public abstract class AbstractCamelContext extends 
BaseService
         return null;
     }
 
+    @Override
+    public String getDevConsoleParameterJsonSchema(String devConsoleName) 
throws IOException {
+        String name = sanitizeFileName(devConsoleName) + ".json";
+        String path = DefaultDevConsoleResolver.DEV_CONSOLE_RESOURCE_PATH + 
name;
+        String inputStream = doLoadResource(devConsoleName, path, "console");
+        if (inputStream != null) {
+            return inputStream;
+        }
+        return null;
+    }
+
     // Helper methods
     // -----------------------------------------------------------------------
 
diff --git 
a/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..946daf1a1ce
--- /dev/null
+++ 
b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=bean blocked circuit-breaker consumer context debug endpoint 
event gc health inflight java-security jvm log memory properties reload route 
route-controller route-dump source startup-recorder thread top trace 
transformers type-converters variables
+groupId=org.apache.camel
+artifactId=camel-console
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Console
+projectDescription=Camel Developer Console
diff --git 
a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
 
b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
index 89255902142..534ea288a17 100644
--- 
a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
+++ 
b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
@@ -48,6 +48,7 @@ import org.apache.camel.tooling.model.BaseModel;
 import org.apache.camel.tooling.model.BaseOptionModel;
 import org.apache.camel.tooling.model.ComponentModel;
 import org.apache.camel.tooling.model.DataFormatModel;
+import org.apache.camel.tooling.model.DevConsoleModel;
 import org.apache.camel.tooling.model.EipModel;
 import org.apache.camel.tooling.model.JsonMapper;
 import org.apache.camel.tooling.model.LanguageModel;
@@ -122,6 +123,15 @@ public abstract class AbstractCamelCatalog {
         return json != null ? JsonMapper.generateTransformerModel(json) : null;
     }
 
+    public String devConsoleJSonSchema(String name) {
+        return getJSonSchemaResolver().getDevConsoleJSonSchema(name);
+    }
+
+    public DevConsoleModel devConsoleModel(String name) {
+        String json = devConsoleJSonSchema(name);
+        return json != null ? JsonMapper.generateDevConsoleModel(json) : null;
+    }
+
     public String otherJSonSchema(String name) {
         return getJSonSchemaResolver().getOtherJSonSchema(name);
     }
diff --git 
a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/CamelContextJSonSchemaResolver.java
 
b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/CamelContextJSonSchemaResolver.java
index bf427a042c4..8d32943cb44 100644
--- 
a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/CamelContextJSonSchemaResolver.java
+++ 
b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/CamelContextJSonSchemaResolver.java
@@ -82,6 +82,16 @@ public class CamelContextJSonSchemaResolver implements 
JSonSchemaResolver {
         return null;
     }
 
+    @Override
+    public String getDevConsoleJSonSchema(String name) {
+        try {
+            return camelContext.getDevConsoleParameterJsonSchema(name);
+        } catch (IOException e) {
+            // ignore
+        }
+        return null;
+    }
+
     @Override
     public String getOtherJSonSchema(String name) {
         // not supported
diff --git 
a/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/io/ModelJSonSchemaResolver.java
 
b/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/io/ModelJSonSchemaResolver.java
index 300ec9535d0..f9496c19c95 100644
--- 
a/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/io/ModelJSonSchemaResolver.java
+++ 
b/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/io/ModelJSonSchemaResolver.java
@@ -54,6 +54,11 @@ class ModelJSonSchemaResolver implements JSonSchemaResolver {
         throw new UnsupportedOperationException("Only getModelJSonSchema is in 
use");
     }
 
+    @Override
+    public String getDevConsoleJSonSchema(String name) {
+        throw new UnsupportedOperationException("Only getModelJSonSchema is in 
use");
+    }
+
     @Override
     public String getOtherJSonSchema(String name) {
         throw new UnsupportedOperationException("Only getModelJSonSchema is in 
use");
diff --git 
a/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..0aa1d1696ca
--- /dev/null
+++ 
b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=jbang source-dir
+groupId=org.apache.camel
+artifactId=camel-jbang-console
+version=4.5.0-SNAPSHOT
+projectName=Camel :: JBang :: Console
+projectDescription=Camel JBang Console
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
index 89d90a4eae6..af9e7449c26 100644
--- 
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
@@ -1,7 +1,7 @@
 {
   "console": {
     "kind": "console",
-    "group": "camel",
+    "group": "camel-jbang",
     "id": "dependency-downloader",
     "title": "Maven Dependency Downloader",
     "description": "Displays information about dependencies downloaded at 
runtime",
diff --git 
a/dsl/camel-kamelet-main/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
 
b/dsl/camel-kamelet-main/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
new file mode 100644
index 00000000000..06c80a54be0
--- /dev/null
+++ 
b/dsl/camel-kamelet-main/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+dev-consoles=dependency-downloader
+groupId=org.apache.camel
+artifactId=camel-kamelet-main
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Kamelet Main
+projectDescription=Main to run Kamelet standalone
diff --git 
a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/DevConsoleModel.java
 
b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/DevConsoleModel.java
new file mode 100644
index 00000000000..214b958a40d
--- /dev/null
+++ 
b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/DevConsoleModel.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.tooling.model;
+
+public class DevConsoleModel extends ArtifactModel<BaseOptionModel> {
+
+    protected String group;
+
+    public DevConsoleModel() {
+    }
+
+    public String getGroup() {
+        return group;
+    }
+
+    public void setGroup(String group) {
+        this.group = group;
+    }
+
+    @Override
+    public String getKind() {
+        return "console";
+    }
+
+}
diff --git 
a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java
 
b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java
index 7dbd3b3c493..2cda577d491 100644
--- 
a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java
+++ 
b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java
@@ -65,6 +65,8 @@ public final class JsonMapper {
             return generateDataFormatModel(obj);
         } else if (obj.containsKey("transformer")) {
             return generateTransformerModel(obj);
+        } else if (obj.containsKey("console")) {
+            return generateDevConsoleModel(obj);
         } else if (obj.containsKey("other")) {
             return generateOtherModel(obj);
         } else if (obj.containsKey("model")) {
@@ -406,6 +408,36 @@ public final class JsonMapper {
         return wrapper;
     }
 
+    public static DevConsoleModel generateDevConsoleModel(String json) {
+        JsonObject obj = deserialize(json);
+        return generateDevConsoleModel(obj);
+    }
+
+    public static DevConsoleModel generateDevConsoleModel(JsonObject obj) {
+        JsonObject mobj = (JsonObject) obj.get("console");
+        DevConsoleModel model = new DevConsoleModel();
+        parseModel(mobj, model);
+        model.setGroup(mobj.getString("group"));
+        parseArtifact(mobj, model);
+        return model;
+    }
+
+    public static String createParameterJsonSchema(DevConsoleModel model) {
+        JsonObject wrapper = asJsonObject(model);
+        return serialize(wrapper);
+    }
+
+    public static JsonObject asJsonObject(DevConsoleModel model) {
+        JsonObject obj = new JsonObject();
+        baseToJson(model, obj);
+        artifactToJson(model, obj);
+        obj.put("group", model.getGroup());
+        obj.entrySet().removeIf(e -> e.getValue() == null);
+        JsonObject wrapper = new JsonObject();
+        wrapper.put("console", obj);
+        return wrapper;
+    }
+
     public static OtherModel generateOtherModel(String json) {
         JsonObject obj = deserialize(json);
         return generateOtherModel(obj);
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java
index a05b79c117d..212ec1f07e7 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java
@@ -179,6 +179,14 @@ public class GenerateDevConsoleMojo extends 
AbstractGeneratorMojo {
                         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, "dev-consoles", 
ids.toString());
+                updateResource(camelMetaDir.toPath(), 
"dev-consoles.properties", properties);
+                getLog().info("Generated dev-consoles.properties containing " 
+ count + " Camel "
+                              + (count > 1 ? "consoles: " : "console: ") + 
ids);
             } catch (Exception e) {
                 throw new MojoExecutionException(e);
             }
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
index 41007dda5f9..fa2fce2ff38 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
@@ -44,6 +44,7 @@ import org.apache.camel.tooling.model.BaseModel;
 import org.apache.camel.tooling.model.BaseOptionModel;
 import org.apache.camel.tooling.model.ComponentModel;
 import org.apache.camel.tooling.model.DataFormatModel;
+import org.apache.camel.tooling.model.DevConsoleModel;
 import org.apache.camel.tooling.model.EipModel;
 import org.apache.camel.tooling.model.JsonMapper;
 import org.apache.camel.tooling.model.LanguageModel;
@@ -118,6 +119,12 @@ public class PrepareCatalogMojo extends AbstractMojo {
     @Parameter(defaultValue = 
"${project.basedir}/src/generated/resources/org/apache/camel/catalog/transformers")
     protected File transformersOutDir;
 
+    /**
+     * The output directory for dev-consoles catalog
+     */
+    @Parameter(defaultValue = 
"${project.basedir}/src/generated/resources/org/apache/camel/catalog/dev-consoles")
+    protected File consolesOutDir;
+
     /**
      * The output directory for others catalog
      */
@@ -374,6 +381,7 @@ public class PrepareCatalogMojo extends AbstractMojo {
             Set<String> dataformats = executeDataFormats();
             Set<String> languages = executeLanguages();
             Set<String> transformers = executeTransformers();
+            Set<String> consoles = executeDevConsoles();
             Set<String> others = executeOthers();
             executeDocuments(components, dataformats, languages, others);
             executeXmlSchemas();
@@ -763,6 +771,48 @@ public class PrepareCatalogMojo extends AbstractMojo {
         return transformerNames;
     }
 
+    protected Set<String> executeDevConsoles() throws Exception {
+        Path consolesOutDir = this.consolesOutDir.toPath();
+
+        getLog().info("Copying all Camel dev-consoles json descriptors");
+
+        // lets use sorted set/maps
+        Set<Path> jsonFiles;
+        Set<Path> duplicateJsonFiles;
+        Set<Path> consoleFiles;
+
+        // find all consoles from the components directory
+        consoleFiles = allPropertiesFiles.stream().filter(p -> 
p.endsWith("dev-console.properties"))
+                .collect(Collectors.toCollection(TreeSet::new));
+        jsonFiles = allJsonFiles.stream().filter(p -> allModels.get(p) 
instanceof DevConsoleModel)
+                .collect(Collectors.toCollection(TreeSet::new));
+
+        getLog().info("Found " + consoleFiles.size() + " 
dev-console.properties files");
+        getLog().info("Found " + jsonFiles.size() + " dev-console json files");
+
+        // make sure to create out dir
+        Files.createDirectories(consolesOutDir);
+
+        // Check duplicates
+        duplicateJsonFiles = getDuplicates(jsonFiles);
+
+        // Copy all descriptors
+        Map<Path, Path> newJsons = map(jsonFiles, p -> p, p -> 
consolesOutDir.resolve(p.getFileName()));
+        try (Stream<Path> stream = list(consolesOutDir).filter(p -> 
!newJsons.containsValue(p))) {
+            stream.forEach(this::delete);
+        }
+        newJsons.forEach(this::copy);
+
+        Path all = consolesOutDir.resolve("../dev-consoles.properties");
+        Set<String> consoleNames
+                = 
jsonFiles.stream().map(PrepareCatalogMojo::asComponentName).collect(Collectors.toCollection(TreeSet::new));
+        FileUtil.updateFile(all, String.join("\n", consoleNames) + "\n");
+
+        printConsolesReport(jsonFiles, duplicateJsonFiles);
+
+        return consoleNames;
+    }
+
     private Set<String> executeOthers() throws Exception {
         Path othersOutDir = this.othersOutDir.toPath();
 
@@ -1222,6 +1272,23 @@ public class PrepareCatalogMojo extends AbstractMojo {
         getLog().info(SEPARATOR);
     }
 
+    private void printConsolesReport(
+            Set<Path> json, Set<Path> duplicate) {
+        getLog().info(SEPARATOR);
+        getLog().info("");
+        getLog().info("Camel dev-console catalog report");
+        getLog().info("");
+        getLog().info("\tConsoles found: " + json.size());
+        printComponentDebug(json);
+        if (!duplicate.isEmpty()) {
+            getLog().info("");
+            getLog().warn("\tDuplicate console detected: " + duplicate.size());
+            printComponentWarning(duplicate);
+        }
+        getLog().info("");
+        getLog().info(SEPARATOR);
+    }
+
     private void printOthersReport(
             Set<Path> json, Set<Path> duplicate, Map<String, Set<String>> 
usedLabels, Set<Path> missingFirstVersions) {
         getLog().info(SEPARATOR);

Reply via email to