You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2024/03/09 13:56:35 UTC
(camel) branch main updated: console in catalog (#13426)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 4a2b9c375ab console in catalog (#13426)
4a2b9c375ab is described below
commit 4a2b9c375abd8155f842d4c0cefb10e24504cfbb
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Mar 9 14:56:30 2024 +0100
console in catalog (#13426)
* CAMEL-20531: camel-console - Add metadata for camel-catalog about dev consoles
* CAMEL-20531: Include dev-consoles into camel-catalog
---
.../org/apache/camel/dev-console/catalog.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../camel/catalog/console/CatalogConsole.java | 4 +-
.../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 | 19 ++++
.../catalog/CamelCatalogJSonSchemaResolver.java | 7 ++
.../apache/camel/catalog/DefaultCamelCatalog.java | 33 ++++++
.../camel/catalog/DefaultRuntimeProvider.java | 28 +++++
.../main/java/org/apache/camel/catalog/Kind.java | 1 +
.../org/apache/camel/catalog/RuntimeProvider.java | 10 ++
.../org/apache/camel/catalog/CamelCatalogTest.java | 24 +++++
.../org/apache/camel/dev-console/aws-secrets.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../aws/secretsmanager/SecretsDevConsole.java | 2 +-
.../org/apache/camel/dev-console/aws2-s3.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../camel/component/aws2/s3/AWS2S3Console.java | 2 +-
.../apache/camel/dev-console/azure-secrets.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../key/vault/AzureKeyVaultManagerDevConsole.java | 2 +-
.../org/apache/camel/dev-console/gcp-secrets.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../manager/GoogleSecretManagerDevConsole.java | 2 +-
.../org/apache/camel/dev-console/knative.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../component/knative/http/KnativeHttpConsole.java | 2 +-
.../org/apache/camel/dev-console/micrometer.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../component/micrometer/MicrometerConsole.java | 2 +-
.../apache/camel/dev-console/fault-tolerance.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../faulttolerance/FaultToleranceConsole.java | 5 +-
.../org/apache/camel/dev-console/mina.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../apache/camel/component/mina/MinaConsole.java | 2 +-
.../org/apache/camel/dev-console/mllp.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../apache/camel/component/mllp/MllpConsole.java | 2 +-
.../org/apache/camel/dev-console/netty.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../apache/camel/component/netty/NettyConsole.java | 2 +-
.../apache/camel/dev-console/platform-http.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../platform/http/PlatformHttpConsole.java | 2 +-
.../org/apache/camel/dev-console/quartz.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../camel/component/quartz/QuartzConsole.java | 2 +-
.../org/apache/camel/dev-console/resilience4j.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../component/resilience4j/ResilienceConsole.java | 3 +-
.../org/apache/camel/dev-console/stub.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../apache/camel/component/stub/StubConsole.java | 4 +-
.../apache/camel/spi/annotations/DevConsole.java | 17 ++-
.../java/org/apache/camel/CatalogCamelContext.java | 8 ++
.../apache/camel/catalog/JSonSchemaResolver.java | 8 ++
.../camel/impl/engine/AbstractCamelContext.java | 11 ++
.../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 -
.../org/apache/camel/dev-consoles.properties | 7 ++
.../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 +-
.../camel/catalog/impl/AbstractCamelCatalog.java | 10 ++
.../impl/CamelContextJSonSchemaResolver.java | 10 ++
.../camel/yaml/io/ModelJSonSchemaResolver.java | 5 +
.../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 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../camel/jbang/console/JBangDevConsole.java | 4 +-
.../camel/jbang/console/SourceDirDevConsole.java | 5 +-
.../dsl/jbang/core/commands/CamelJBangMain.java | 2 +
.../core/commands/catalog/CatalogDevConsole.java | 56 ++++++++++
.../core/commands/process/ListCircuitBreaker.java | 2 +-
.../camel/dev-console/dependency-downloader.json | 15 +++
.../org/apache/camel/dev-consoles.properties | 7 ++
.../main/console/DependencyDownloaderConsole.java | 5 +-
.../camel/tooling/model/DevConsoleModel.java | 32 ++++--
.../org/apache/camel/tooling/model/JsonMapper.java | 32 ++++++
.../maven/packaging/GenerateComponentMojo.java | 2 +
.../packaging/GenerateDataTypeTransformerMojo.java | 22 ++--
...formerMojo.java => GenerateDevConsoleMojo.java} | 120 ++++++++++-----------
.../apache/camel/maven/packaging/GenerateMojo.java | 2 +
.../apache/camel/maven/packaging/MojoHelper.java | 18 ++++
.../camel/maven/packaging/PrepareCatalogMojo.java | 67 ++++++++++++
.../camel/maven/packaging/SpiGeneratorMojo.java | 2 +-
.../apache/camel/spi/annotations/DevConsole.java | 17 ++-
184 files changed, 2037 insertions(+), 158 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..2a6c58aea19
--- /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",
+ "name": "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/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-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/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..40eec35602f
--- /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",
+ "name": "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..c079f636c25
--- /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",
+ "name": "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..76f4d498ac9
--- /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",
+ "name": "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..d7653bec27d
--- /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",
+ "name": "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..81213ab7bc8
--- /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",
+ "name": "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..6caa284f69a
--- /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",
+ "name": "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..5cf8731b25e
--- /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",
+ "name": "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..a6ef2bbaafc
--- /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",
+ "name": "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..31f2c2565b0
--- /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",
+ "name": "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..1c009d5db68
--- /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",
+ "name": "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..08c68178984
--- /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",
+ "name": "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..7ac2091fbf0
--- /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",
+ "name": "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..1d9ec216984
--- /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",
+ "name": "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..74ebae13b00
--- /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",
+ "name": "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..7135acdc3f0
--- /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",
+ "name": "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..3f1ed7f85c0
--- /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",
+ "name": "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..8f78ece00b9
--- /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",
+ "name": "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..2dddb0a85cf
--- /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",
+ "name": "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..5b6b4fb82d1
--- /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",
+ "name": "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..21b73f22d48
--- /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",
+ "name": "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..3e223a870a0
--- /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",
+ "name": "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..98c2481468f
--- /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",
+ "name": "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..05624328434
--- /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",
+ "name": "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..f30f3adceec
--- /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",
+ "name": "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..c5ef30c9fdb
--- /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",
+ "name": "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..ecc93c54e74
--- /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",
+ "name": "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..251f7f0a9c7
--- /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",
+ "name": "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..1ff61b72ade
--- /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",
+ "name": "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..2a5c089c335
--- /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",
+ "name": "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..75668138496
--- /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",
+ "name": "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..d5a7fff4006
--- /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",
+ "name": "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..ad9ca12f312
--- /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",
+ "name": "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..e919ccc1394
--- /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",
+ "name": "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..73761bdc3e3
--- /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",
+ "name": "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..f95c4375e13
--- /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",
+ "name": "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..66374a265db
--- /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",
+ "name": "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..98ec18bb1d9
--- /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",
+ "name": "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..5fa13493f46
--- /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",
+ "name": "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..b2b59833d78
--- /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",
+ "name": "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..6663487da5b
--- /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",
+ "name": "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..2af11b40b66
--- /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",
+ "name": "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..9ac41f70363 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
@@ -26,6 +26,7 @@ import org.apache.camel.tooling.model.ArtifactModel;
import org.apache.camel.tooling.model.BaseModel;
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.LanguageModel;
import org.apache.camel.tooling.model.MainModel;
@@ -198,6 +199,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 +514,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
*/
@@ -547,6 +558,12 @@ public interface CamelCatalog {
*/
TransformerModel transformerModel(String name);
+ /**
+ * @param name the dev-console name to look up
+ * @return the requested dev-console or {@code null} in case it is not available in this {@link CamelCatalog}
+ */
+ DevConsoleModel devConsoleModel(String name);
+
/**
* @param name the other name to look up
* @return the requested other or {@code null} in case it is not available in this {@link CamelCatalog}
@@ -581,6 +598,8 @@ public interface CamelCatalog {
return languageModel(name);
case transformer:
return transformerModel(name);
+ case console:
+ return devConsoleModel(name);
case other:
return otherModel(name);
case eip:
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..adc5e84aa8e 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
@@ -38,6 +38,7 @@ import org.apache.camel.tooling.model.ArtifactModel;
import org.apache.camel.tooling.model.BaseModel;
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;
@@ -64,8 +65,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 +234,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 +349,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);
@@ -351,6 +364,11 @@ public class DefaultCamelCatalog extends AbstractCamelCatalog implements CamelCa
return cache("transformer-model-" + name, name, super::transformerModel);
}
+ @Override
+ public DevConsoleModel devConsoleModel(String name) {
+ return cache("dev-console-model-" + name, name, super::devConsoleModel);
+ }
+
@Override
public String otherJSonSchema(String name) {
return cache("other-" + name, name, super::otherJSonSchema);
@@ -456,6 +474,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()
@@ -520,6 +547,12 @@ public class DefaultCamelCatalog extends AbstractCamelCatalog implements CamelCa
return am;
}
}
+ for (String name : findDevConsoleNames()) {
+ ArtifactModel<?> am = devConsoleModel(name);
+ if (matchArtifact(am, groupId, artifactId, version)) {
+ return am;
+ }
+ }
return null;
}
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/Kind.java b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/Kind.java
index 6ca4c43b5ad..c1f589d02ea 100644
--- a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/Kind.java
+++ b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/Kind.java
@@ -24,6 +24,7 @@ public enum Kind {
dataformat,
language,
transformer,
+ console,
other,
eip
}
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/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..40eec35602f
--- /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",
+ "name": "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/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-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..c079f636c25
--- /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",
+ "name": "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/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-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..76f4d498ac9
--- /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",
+ "name": "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/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-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..74ebae13b00
--- /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",
+ "name": "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/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-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..7cd4a695aa4
--- /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",
+ "name": "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/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-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..3e223a870a0
--- /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",
+ "name": "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/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-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..7ac2091fbf0
--- /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",
+ "name": "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/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-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..ec0aa6b4ac0 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,12 @@ 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..98c2481468f
--- /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",
+ "name": "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/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-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..05624328434
--- /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",
+ "name": "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/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-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..f30f3adceec
--- /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",
+ "name": "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/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-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..c5ef30c9fdb
--- /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",
+ "name": "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/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-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..251f7f0a9c7
--- /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",
+ "name": "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/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-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..2a5c089c335
--- /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",
+ "name": "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/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-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..9e3c45c2ccc 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,8 @@ 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..f95c4375e13
--- /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",
+ "name": "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/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/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-api/src/main/java/org/apache/camel/CatalogCamelContext.java b/core/camel-api/src/main/java/org/apache/camel/CatalogCamelContext.java
index 7b2e7ffdd69..c2f8c1b3b40 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/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..d7653bec27d
--- /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",
+ "name": "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..81213ab7bc8
--- /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",
+ "name": "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..6caa284f69a
--- /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",
+ "name": "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..5cf8731b25e
--- /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",
+ "name": "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..a6ef2bbaafc
--- /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",
+ "name": "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..31f2c2565b0
--- /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",
+ "name": "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..1c009d5db68
--- /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",
+ "name": "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..08c68178984
--- /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",
+ "name": "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..1d9ec216984
--- /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",
+ "name": "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..7135acdc3f0
--- /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",
+ "name": "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..3f1ed7f85c0
--- /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",
+ "name": "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..8f78ece00b9
--- /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",
+ "name": "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..2dddb0a85cf
--- /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",
+ "name": "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..5b6b4fb82d1
--- /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",
+ "name": "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..21b73f22d48
--- /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",
+ "name": "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..ecc93c54e74
--- /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",
+ "name": "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..1ff61b72ade
--- /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",
+ "name": "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..75668138496
--- /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",
+ "name": "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..d5a7fff4006
--- /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",
+ "name": "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..ad9ca12f312
--- /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",
+ "name": "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..e919ccc1394
--- /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",
+ "name": "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..73761bdc3e3
--- /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",
+ "name": "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..66374a265db
--- /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",
+ "name": "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..98ec18bb1d9
--- /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",
+ "name": "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..5fa13493f46
--- /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",
+ "name": "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..b2b59833d78
--- /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",
+ "name": "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..6663487da5b
--- /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",
+ "name": "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..2af11b40b66
--- /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",
+ "name": "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/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-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/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/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..b4b21ac3464
--- /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",
+ "name": "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..fc8fe37e06d
--- /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",
+ "name": "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/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-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/CamelJBangMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java
index da0b6af9cca..89ef4cdd0fe 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java
@@ -24,6 +24,7 @@ import org.apache.camel.dsl.jbang.core.commands.action.*;
import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogCommand;
import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogComponent;
import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogDataFormat;
+import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogDevConsole;
import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogDoc;
import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogKamelet;
import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogLanguage;
@@ -127,6 +128,7 @@ public class CamelJBangMain implements Callable<Integer> {
.addSubcommand("dataformat", new CommandLine(new CatalogDataFormat(main)))
.addSubcommand("language", new CommandLine(new CatalogLanguage(main)))
.addSubcommand("transformer", new CommandLine(new CatalogTransformer(main)))
+ .addSubcommand("dev-console", new CommandLine(new CatalogDevConsole(main)))
.addSubcommand("other", new CommandLine(new CatalogOther(main)))
.addSubcommand("kamelet", new CommandLine(new CatalogKamelet(main))))
.addSubcommand("doc", new CommandLine(new CatalogDoc(main)))
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDevConsole.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDevConsole.java
new file mode 100644
index 00000000000..afdf4ebd278
--- /dev/null
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDevConsole.java
@@ -0,0 +1,56 @@
+/*
+ * 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.dsl.jbang.core.commands.catalog;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
+import org.apache.camel.tooling.model.DevConsoleModel;
+import picocli.CommandLine;
+
+@CommandLine.Command(name = "dev-console",
+ description = "List dev-consoles from the Camel Catalog", sortOptions = false)
+public class CatalogDevConsole extends CatalogBaseCommand {
+
+ public CatalogDevConsole(CamelJBangMain main) {
+ super(main);
+ }
+
+ @Override
+ List<Row> collectRows() {
+ List<Row> rows = new ArrayList<>();
+ for (String name : catalog.findDevConsoleNames()) {
+ DevConsoleModel model = catalog.devConsoleModel(name);
+ if (model != null) {
+ Row row = new Row();
+ row.name = model.getName();
+ row.title = model.getTitle();
+ row.level = model.getSupportLevel().name();
+ row.since = fixQuarkusSince(model.getFirstVersionShort());
+ row.description = model.getDescription();
+ row.label = model.getLabel() != null ? model.getLabel() : "";
+ row.deprecated = model.isDeprecated();
+ row.nativeSupported = model.isNativeSupported();
+ row.gav = getGAV(model);
+ rows.add(row);
+ }
+ }
+ return rows;
+ }
+
+}
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..2bc8b5863ec
--- /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-jbang",
+ "name": "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/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/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..7cee7322700 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,12 @@ 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/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/Kind.java b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/DevConsoleModel.java
similarity index 67%
copy from catalog/camel-catalog/src/main/java/org/apache/camel/catalog/Kind.java
copy to tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/DevConsoleModel.java
index 6ca4c43b5ad..214b958a40d 100644
--- a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/Kind.java
+++ b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/DevConsoleModel.java
@@ -14,16 +14,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.catalog;
+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";
+ }
-/**
- * Kind of a Camel part, such as component, dataformat, language, etc.
- */
-public enum Kind {
- component,
- dataformat,
- language,
- transformer,
- other,
- eip
}
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/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 67%
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..97a063fe5b2 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 group;
private String name;
- private String from;
- private String to;
+ 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 getName() {
+ return name;
}
- public void setFrom(String from) {
- this.from = from;
+ public void setName(String name) {
+ this.name = name;
}
- 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,84 @@ 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.setName(annotationValue(a, "name"));
+ model.setDisplayName(annotationValue(a, "displayName"));
+ model.setDescription(annotationValue(a, "description"));
+ // skip default registry
+ boolean skip = "default-registry".equals(model.getName());
+ if (!skip) {
+ models.add(model);
}
- models.add(model);
});
- models.sort(Comparator.comparing(DataTypeTransformerModel::getName));
+ models.sort(Comparator.comparing(DevConsoleModel::getName));
+
+ // 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.getName());
JsonObject jo = asJsonObject(model);
String json = jo.toJson();
json = Jsoner.prettyPrint(json, 2);
String fn = sanitizeFileName(model.getName()) + 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.getName());
}
}
// 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);
+ 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);
}
}
}
- 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("kind", "console");
+ if (model.group != null) {
+ jo.put("group", model.getGroup());
+ } else {
+ jo.put("group", "camel");
+ }
jo.put("name", model.getName());
- jo.put("title", asTitle(model.getName()));
- if (model.getDescription() != null) {
- jo.put("description", model.getDescription());
+ if (model.getDisplayName() != null) {
+ jo.put("title", asTitle(model.getDisplayName()));
+ } else {
+ jo.put("title", asTitle(model.getName()));
}
+ 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/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);
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();
}