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 2026/08/29 11:04:40 UTC
(camel) 02/02: CAMEL-24514: camel-console - Surface readOnly flag in DevConsole catalog metadata
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch feature/CAMEL-24514-devconsole-openapi-get
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 67f15ff0f0513daf6143c80a3b8aef67d4653aa7
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Aug 29 13:04:19 2026 +0200
CAMEL-24514: camel-console - Surface readOnly flag in DevConsole catalog metadata
Move the read-only/mutating classification from a per-class isReadOnly()
override onto a new @DevConsole(readOnly=...) annotation attribute, so it is
available both at runtime (AbstractDevConsole reads it reflectively) and at
build time. GenerateDevConsoleMojo now emits "readOnly" into each console's
generated dev-console/*.json, so the static catalog metadata already carries
the safe/mutating classification ahead of a future release-time static
OpenAPI doc generator, without needing a running CamelContext.
Regenerated the dev-console JSON for every module with a @DevConsole class
(core, camel-jfr, and ~24 component/dsl/catalog modules) to pick up the new
field; no Java behavior changes outside camel-console and camel-jfr.
Co-Authored-By: Claude Sonnet 5 <no...@anthropic.com>
Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
.../META-INF/org/apache/camel/dev-console/catalog.json | 1 +
.../META-INF/org/apache/camel/dev-console/aws-secrets.json | 1 +
.../META-INF/org/apache/camel/dev-console/aws2-s3.json | 1 +
.../META-INF/org/apache/camel/dev-console/azure-secrets.json | 1 +
.../META-INF/org/apache/camel/dev-console/route-diagram.json | 1 +
.../resources/META-INF/org/apache/camel/dev-console/sftp.json | 1 +
.../META-INF/org/apache/camel/dev-console/gcp-secrets.json | 1 +
.../META-INF/org/apache/camel/dev-console/groovy.json | 1 +
.../org/apache/camel/dev-console/hashicorp-secrets.json | 1 +
.../META-INF/org/apache/camel/dev-console/ibm-secrets.json | 1 +
.../resources/META-INF/org/apache/camel/dev-console/jfr.json | 1 +
.../java/org/apache/camel/runtime/jfr/CamelJfrDevConsole.java | 7 +------
.../META-INF/org/apache/camel/dev-console/kafka.json | 1 +
.../org/apache/camel/dev-console/kubernetes-configmaps.json | 1 +
.../org/apache/camel/dev-console/kubernetes-secrets.json | 1 +
.../META-INF/org/apache/camel/dev-console/micrometer.json | 1 +
.../org/apache/camel/dev-console/fault-tolerance.json | 1 +
.../META-INF/org/apache/camel/dev-console/opentelemetry.json | 1 +
.../org/apache/camel/dev-console/main-http-server.json | 1 +
.../META-INF/org/apache/camel/dev-console/platform-http.json | 1 +
.../META-INF/org/apache/camel/dev-console/quartz.json | 1 +
.../META-INF/org/apache/camel/dev-console/resilience4j.json | 1 +
.../resources/META-INF/org/apache/camel/dev-console/stub.json | 1 +
.../org/apache/camel/dev-console/vertx-websocket.json | 1 +
.../java/org/apache/camel/spi/annotations/DevConsole.java | 8 ++++++++
.../META-INF/org/apache/camel/dev-console/activity.json | 1 +
.../resources/META-INF/org/apache/camel/dev-console/api.json | 1 +
.../resources/META-INF/org/apache/camel/dev-console/bean.json | 1 +
.../META-INF/org/apache/camel/dev-console/blocked.json | 1 +
.../META-INF/org/apache/camel/dev-console/browse.json | 1 +
.../org/apache/camel/dev-console/circuit-breaker.json | 1 +
.../META-INF/org/apache/camel/dev-console/consumer.json | 1 +
.../META-INF/org/apache/camel/dev-console/context.json | 1 +
.../META-INF/org/apache/camel/dev-console/datasource.json | 1 +
.../META-INF/org/apache/camel/dev-console/debug.json | 1 +
.../META-INF/org/apache/camel/dev-console/endpoint.json | 1 +
.../META-INF/org/apache/camel/dev-console/errors.json | 1 +
.../META-INF/org/apache/camel/dev-console/eval-language.json | 1 +
.../META-INF/org/apache/camel/dev-console/event.json | 1 +
.../resources/META-INF/org/apache/camel/dev-console/gc.json | 1 +
.../META-INF/org/apache/camel/dev-console/health.json | 1 +
.../META-INF/org/apache/camel/dev-console/heap-dump.json | 1 +
.../META-INF/org/apache/camel/dev-console/heap-histogram.json | 1 +
.../META-INF/org/apache/camel/dev-console/inflight.json | 1 +
.../META-INF/org/apache/camel/dev-console/internal-tasks.json | 1 +
.../META-INF/org/apache/camel/dev-console/java-security.json | 1 +
.../org/apache/camel/dev-console/jfr-memory-leak.json | 1 +
.../resources/META-INF/org/apache/camel/dev-console/jvm.json | 1 +
.../resources/META-INF/org/apache/camel/dev-console/log.json | 1 +
.../META-INF/org/apache/camel/dev-console/memory.json | 1 +
.../org/apache/camel/dev-console/message-history.json | 1 +
.../org/apache/camel/dev-console/processor-detail.json | 1 +
.../META-INF/org/apache/camel/dev-console/processor.json | 1 +
.../META-INF/org/apache/camel/dev-console/producer.json | 1 +
.../META-INF/org/apache/camel/dev-console/properties.json | 1 +
.../META-INF/org/apache/camel/dev-console/receive.json | 1 +
.../META-INF/org/apache/camel/dev-console/reload.json | 1 +
.../META-INF/org/apache/camel/dev-console/rest-spec.json | 1 +
.../resources/META-INF/org/apache/camel/dev-console/rest.json | 1 +
.../org/apache/camel/dev-console/route-controller.json | 1 +
.../META-INF/org/apache/camel/dev-console/route-dump.json | 1 +
.../META-INF/org/apache/camel/dev-console/route-group.json | 1 +
.../org/apache/camel/dev-console/route-structure.json | 1 +
.../META-INF/org/apache/camel/dev-console/route-topology.json | 1 +
.../META-INF/org/apache/camel/dev-console/route.json | 1 +
.../resources/META-INF/org/apache/camel/dev-console/send.json | 1 +
.../META-INF/org/apache/camel/dev-console/service.json | 1 +
.../org/apache/camel/dev-console/simple-language.json | 1 +
.../META-INF/org/apache/camel/dev-console/source.json | 1 +
.../META-INF/org/apache/camel/dev-console/sql-query.json | 1 +
.../META-INF/org/apache/camel/dev-console/sql-trace.json | 1 +
.../org/apache/camel/dev-console/startup-recorder.json | 1 +
.../org/apache/camel/dev-console/system-properties.json | 1 +
.../META-INF/org/apache/camel/dev-console/thread.json | 1 +
.../resources/META-INF/org/apache/camel/dev-console/top.json | 1 +
.../META-INF/org/apache/camel/dev-console/trace.json | 1 +
.../META-INF/org/apache/camel/dev-console/transformers.json | 1 +
.../org/apache/camel/dev-console/type-converters.json | 1 +
.../META-INF/org/apache/camel/dev-console/variables.json | 1 +
.../java/org/apache/camel/impl/console/DebugDevConsole.java | 7 +------
.../org/apache/camel/impl/console/EvalLanguageDevConsole.java | 8 ++------
.../org/apache/camel/impl/console/HeapDumpDevConsole.java | 7 +------
.../apache/camel/impl/console/JfrMemoryLeakDevConsole.java | 7 +------
.../org/apache/camel/impl/console/ProcessorDevConsole.java | 7 +------
.../java/org/apache/camel/impl/console/ReceiveDevConsole.java | 8 ++------
.../java/org/apache/camel/impl/console/ReloadDevConsole.java | 7 +------
.../java/org/apache/camel/impl/console/RouteDevConsole.java | 7 +------
.../org/apache/camel/impl/console/RouteGroupDevConsole.java | 7 +------
.../java/org/apache/camel/impl/console/SendDevConsole.java | 7 +------
.../org/apache/camel/impl/console/SqlQueryDevConsole.java | 8 ++------
.../java/org/apache/camel/impl/console/TraceDevConsole.java | 7 +------
.../META-INF/org/apache/camel/dev-console/bean-model.json | 1 +
.../org/apache/camel/dev-console/main-configuration.json | 1 +
.../org/apache/camel/support/console/AbstractDevConsole.java | 7 +++++++
.../META-INF/org/apache/camel/dev-console/jbang.json | 1 +
.../META-INF/org/apache/camel/dev-console/source-dir.json | 1 +
.../org/apache/camel/dev-console/dependency-downloader.json | 1 +
.../apache/camel/maven/packaging/GenerateDevConsoleMojo.java | 11 +++++++++++
.../java/org/apache/camel/spi/annotations/DevConsole.java | 8 ++++++++
99 files changed, 132 insertions(+), 78 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
index e3831053d358..cf9b99383714 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Catalog",
"description": "Information about used Camel artifacts",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.catalog.console.CatalogConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-catalog-console",
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
index b97e902cc923..d0f70871f2a5 100644
--- 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
@@ -6,6 +6,7 @@
"title": "AWS Secrets",
"description": "AWS Secrets Manager",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.aws.secretsmanager.SecretsDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-aws-secrets-manager",
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
index e9be83caf8a8..ce0e95b664b0 100644
--- 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
@@ -6,6 +6,7 @@
"title": "AWS S3",
"description": "AWS S3 Consumer",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.aws2.s3.AWS2S3Console",
"groupId": "org.apache.camel",
"artifactId": "camel-aws2-s3",
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
index 628682ac5f97..a5054e19e5c4 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Azure Key Vault Secrets",
"description": "Azure Key Vault Secret Manager",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.azure.key.vault.AzureKeyVaultManagerDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-azure-key-vault",
diff --git a/components/camel-diagram/src/generated/resources/META-INF/org/apache/camel/dev-console/route-diagram.json b/components/camel-diagram/src/generated/resources/META-INF/org/apache/camel/dev-console/route-diagram.json
index 8b826a92455e..ead0c381c918 100644
--- a/components/camel-diagram/src/generated/resources/META-INF/org/apache/camel/dev-console/route-diagram.json
+++ b/components/camel-diagram/src/generated/resources/META-INF/org/apache/camel/dev-console/route-diagram.json
@@ -6,6 +6,7 @@
"title": "Route Diagram",
"description": "Visual route diagrams",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.diagram.DiagramDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-diagram",
diff --git a/components/camel-ftp/src/generated/resources/META-INF/org/apache/camel/dev-console/sftp.json b/components/camel-ftp/src/generated/resources/META-INF/org/apache/camel/dev-console/sftp.json
index cba9575de6f1..655a877681b5 100644
--- a/components/camel-ftp/src/generated/resources/META-INF/org/apache/camel/dev-console/sftp.json
+++ b/components/camel-ftp/src/generated/resources/META-INF/org/apache/camel/dev-console/sftp.json
@@ -6,6 +6,7 @@
"title": "SFTP",
"description": "Secure FTP using JSCH",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.file.remote.SftpDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-ftp",
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
index 2db63f44d2db..6c705b200b9d 100644
--- 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
@@ -6,6 +6,7 @@
"title": "GCP Secrets",
"description": "GCP Secret Manager",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.google.secret.manager.GoogleSecretManagerDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-google-secret-manager",
diff --git a/components/camel-groovy/src/generated/resources/META-INF/org/apache/camel/dev-console/groovy.json b/components/camel-groovy/src/generated/resources/META-INF/org/apache/camel/dev-console/groovy.json
index 513ef16d49cc..078f567341ee 100644
--- a/components/camel-groovy/src/generated/resources/META-INF/org/apache/camel/dev-console/groovy.json
+++ b/components/camel-groovy/src/generated/resources/META-INF/org/apache/camel/dev-console/groovy.json
@@ -6,6 +6,7 @@
"title": "Groovy",
"description": "Groovy Language",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.language.groovy.GroovyDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-groovy",
diff --git a/components/camel-hashicorp-vault/src/generated/resources/META-INF/org/apache/camel/dev-console/hashicorp-secrets.json b/components/camel-hashicorp-vault/src/generated/resources/META-INF/org/apache/camel/dev-console/hashicorp-secrets.json
index 47e2800607a0..bc159fc67b39 100644
--- a/components/camel-hashicorp-vault/src/generated/resources/META-INF/org/apache/camel/dev-console/hashicorp-secrets.json
+++ b/components/camel-hashicorp-vault/src/generated/resources/META-INF/org/apache/camel/dev-console/hashicorp-secrets.json
@@ -6,6 +6,7 @@
"title": "HashiCorp Secrets",
"description": "HashiCorp Vault Secrets",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.hashicorp.vault.SecretsDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-hashicorp-vault",
diff --git a/components/camel-ibm/camel-ibm-secrets-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/ibm-secrets.json b/components/camel-ibm/camel-ibm-secrets-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/ibm-secrets.json
index 33a3d8558138..5235512e6bbf 100644
--- a/components/camel-ibm/camel-ibm-secrets-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/ibm-secrets.json
+++ b/components/camel-ibm/camel-ibm-secrets-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/ibm-secrets.json
@@ -6,6 +6,7 @@
"title": "IBM Secrets",
"description": "IBM Secrets Manager",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.ibm.secrets.manager.SecretsDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-ibm-secrets-manager",
diff --git a/components/camel-jfr/src/generated/resources/META-INF/org/apache/camel/dev-console/jfr.json b/components/camel-jfr/src/generated/resources/META-INF/org/apache/camel/dev-console/jfr.json
index 8fc43cff3864..fddf05f6a74b 100644
--- a/components/camel-jfr/src/generated/resources/META-INF/org/apache/camel/dev-console/jfr.json
+++ b/components/camel-jfr/src/generated/resources/META-INF/org/apache/camel/dev-console/jfr.json
@@ -6,6 +6,7 @@
"title": "JFR Runtime Instrumentation",
"description": "Status and live control of camel-jfr runtime instrumentation",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.runtime.jfr.CamelJfrDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-jfr",
diff --git a/components/camel-jfr/src/main/java/org/apache/camel/runtime/jfr/CamelJfrDevConsole.java b/components/camel-jfr/src/main/java/org/apache/camel/runtime/jfr/CamelJfrDevConsole.java
index 7b57a2cdc4ef..8dff129be7a7 100644
--- a/components/camel-jfr/src/main/java/org/apache/camel/runtime/jfr/CamelJfrDevConsole.java
+++ b/components/camel-jfr/src/main/java/org/apache/camel/runtime/jfr/CamelJfrDevConsole.java
@@ -49,7 +49,7 @@ import org.apache.camel.util.json.JsonObject;
* @since 4.22
*/
@DevConsole(name = "jfr", displayName = "JFR Runtime Instrumentation",
- description = "Status and live control of camel-jfr runtime instrumentation")
+ description = "Status and live control of camel-jfr runtime instrumentation", readOnly = false)
public class CamelJfrDevConsole extends AbstractDevConsole {
@Metadata(label = "query", description = "Command to perform", javaType = "java.lang.String",
@@ -83,11 +83,6 @@ public class CamelJfrDevConsole extends AbstractDevConsole {
"Status and live control of camel-jfr runtime instrumentation");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
private boolean isInstrumentationRegistered() {
CamelContext ctx = getCamelContext();
if (ctx == null) {
diff --git a/components/camel-kafka/src/generated/resources/META-INF/org/apache/camel/dev-console/kafka.json b/components/camel-kafka/src/generated/resources/META-INF/org/apache/camel/dev-console/kafka.json
index d00ed37bbd02..a62ec0cceef8 100644
--- a/components/camel-kafka/src/generated/resources/META-INF/org/apache/camel/dev-console/kafka.json
+++ b/components/camel-kafka/src/generated/resources/META-INF/org/apache/camel/dev-console/kafka.json
@@ -6,6 +6,7 @@
"title": "Kafka",
"description": "Apache Kafka",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.kafka.KafkaDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-kafka",
diff --git a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/dev-console/kubernetes-configmaps.json b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/dev-console/kubernetes-configmaps.json
index a6aad11d4626..56d3db2e6a1d 100644
--- a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/dev-console/kubernetes-configmaps.json
+++ b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/dev-console/kubernetes-configmaps.json
@@ -6,6 +6,7 @@
"title": "Kubernetes Config Maps",
"description": "Kubernetes Cluster Config Maps",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.kubernetes.config_maps.vault.ConfigmapsDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-kubernetes",
diff --git a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/dev-console/kubernetes-secrets.json b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/dev-console/kubernetes-secrets.json
index 6c054feee0c0..9bffab3a5997 100644
--- a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/dev-console/kubernetes-secrets.json
+++ b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/dev-console/kubernetes-secrets.json
@@ -6,6 +6,7 @@
"title": "Kubernetes Secrets",
"description": "Kubernetes Cluster Secrets",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.kubernetes.secrets.vault.SecretsDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-kubernetes",
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
index cf7ccb455e6c..1b7f0790f5a9 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Micrometer",
"description": "Display runtime metrics",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.micrometer.MicrometerConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-micrometer",
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
index a0f18c4e1045..86d20f11be29 100644
--- 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
@@ -6,6 +6,7 @@
"title": "MicroProfile Circuit Breaker",
"description": "Display circuit breaker information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.microprofile.faulttolerance.FaultToleranceConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-microprofile-fault-tolerance",
diff --git a/components/camel-opentelemetry2/src/generated/resources/META-INF/org/apache/camel/dev-console/opentelemetry.json b/components/camel-opentelemetry2/src/generated/resources/META-INF/org/apache/camel/dev-console/opentelemetry.json
index 2ad91bca36e1..f1825f1e26a8 100644
--- a/components/camel-opentelemetry2/src/generated/resources/META-INF/org/apache/camel/dev-console/opentelemetry.json
+++ b/components/camel-opentelemetry2/src/generated/resources/META-INF/org/apache/camel/dev-console/opentelemetry.json
@@ -6,6 +6,7 @@
"title": "OpenTelemetry Spans",
"description": "OpenTelemetry span data captured in dev mode",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.opentelemetry2.OpenTelemetryDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-opentelemetry2",
diff --git a/components/camel-platform-http-main/src/generated/resources/META-INF/org/apache/camel/dev-console/main-http-server.json b/components/camel-platform-http-main/src/generated/resources/META-INF/org/apache/camel/dev-console/main-http-server.json
index c472ad472389..2a601f4e1a6e 100644
--- a/components/camel-platform-http-main/src/generated/resources/META-INF/org/apache/camel/dev-console/main-http-server.json
+++ b/components/camel-platform-http-main/src/generated/resources/META-INF/org/apache/camel/dev-console/main-http-server.json
@@ -6,6 +6,7 @@
"title": "Main HTTP Server",
"description": "Camel Main HTTP Server",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.platform.http.main.MainHttpServerDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-platform-http-main",
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
index d07aecc32730..373be8a7e29b 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Platform HTTP",
"description": "Embedded HTTP Server",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.platform.http.PlatformHttpConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-platform-http",
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
index f97ae20916f6..d2d4c1561783 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Quartz",
"description": "Quartz Scheduler",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.quartz.QuartzConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-quartz",
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
index 5ed2e3cccfb2..e0abe6cb770d 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Resilience Circuit Breaker",
"description": "Display circuit breaker information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.resilience4j.ResilienceConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-resilience4j",
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
index 549225c95dcd..82a20938adb1 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Stub",
"description": "Browse messages on stub endpoints",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.stub.StubConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-stub",
diff --git a/components/camel-vertx/camel-vertx-websocket/src/generated/resources/META-INF/org/apache/camel/dev-console/vertx-websocket.json b/components/camel-vertx/camel-vertx-websocket/src/generated/resources/META-INF/org/apache/camel/dev-console/vertx-websocket.json
index a204e5a42b15..aab4753de9d6 100644
--- a/components/camel-vertx/camel-vertx-websocket/src/generated/resources/META-INF/org/apache/camel/dev-console/vertx-websocket.json
+++ b/components/camel-vertx/camel-vertx-websocket/src/generated/resources/META-INF/org/apache/camel/dev-console/vertx-websocket.json
@@ -6,6 +6,7 @@
"title": "Vert.x WebSocket",
"description": "Vert.x WebSocket consumer details",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.component.vertx.websocket.VertxWebsocketDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-vertx-websocket",
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 337360203da4..1f93908cac86 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
@@ -51,4 +51,12 @@ public @interface DevConsole {
*/
String description();
+ /**
+ * Whether this console is read-only (safe, and does not change any runtime state).
+ * <p/>
+ * Consoles that mutate state (such as starting/stopping a route, sending a message, or triggering a heap dump) must
+ * set this to {@code false}.
+ */
+ boolean readOnly() default true;
+
}
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/activity.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/activity.json
index fd0b049476fd..7139adb66b3e 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/activity.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/activity.json
@@ -6,6 +6,7 @@
"title": "Camel Activity",
"description": "Recent completed exchange activity",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.ActivityDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/api.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/api.json
index 815d84495893..9fa8ce489e4f 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/api.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/api.json
@@ -6,6 +6,7 @@
"title": "API",
"description": "OpenAPI specification for the dev console API",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.ApiDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index f281d19180be..379d778fcd71 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Bean",
"description": "Displays Java beans from the registry",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.BeanDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 47e637c0bc53..da11ffd63cae 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Blocked Exchanges",
"description": "Display blocked exchanges",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.BlockedConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/browse.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/browse.json
index 35d4431083cd..1baf361f8071 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/browse.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/browse.json
@@ -6,6 +6,7 @@
"title": "Browse",
"description": "Browse pending messages on Camel components",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.BrowseDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 2c735d14513a..5426d9653234 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Circuit Breaker",
"description": "Display circuit breaker information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.CircuitBreakerDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index e5aa0f91d75c..b846c934a55f 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Consumers",
"description": "Display information about Camel consumers",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.ConsumerDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index b55bdbc2c90e..aa9c21003630 100644
--- 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
@@ -6,6 +6,7 @@
"title": "CamelContext",
"description": "Overall information about the CamelContext",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.ContextDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/datasource.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/datasource.json
index ac0e5983d0ea..2ac439d18181 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/datasource.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/datasource.json
@@ -6,6 +6,7 @@
"title": "DataSource",
"description": "Displays DataSource connection pool metrics",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.DataSourceDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 92eab4e852a8..04b95b63dd64 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Debug",
"description": "Camel route debugger",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.DebugDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 4e2f6e662a06..a8b4fb61bd92 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Endpoints",
"description": "Endpoint Registry information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.EndpointDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/errors.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/errors.json
index 38d6d50322f6..1522e583d3ea 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/errors.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/errors.json
@@ -6,6 +6,7 @@
"title": "Error Registry",
"description": "Display captured routing errors",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.ErrorRegistryConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/eval-language.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/eval-language.json
index 4f32f0a2c412..0086f1b21082 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/eval-language.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/eval-language.json
@@ -6,6 +6,7 @@
"title": "Evaluate Language",
"description": "Evaluate Language and display result",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.EvalLanguageDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 28836520fd22..1fc4fbdce8eb 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Camel Events",
"description": "The most recent Camel events",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.EventConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 83df44fdfa99..66e21ec22064 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Garbage Collector",
"description": "Displays Garbage Collector information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.GarbageCollectorDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 32bbfc1c5c04..e5083a15e3e5 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Health Check",
"description": "Health Check Status",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.HealthDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/heap-dump.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/heap-dump.json
index a430cc1420ee..781c565a9d80 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/heap-dump.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/heap-dump.json
@@ -6,6 +6,7 @@
"title": "Heap Dump",
"description": "Write a heap dump (.hprof) file for deep memory analysis",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.HeapDumpDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/heap-histogram.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/heap-histogram.json
index 2353f33b9456..69148a67e464 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/heap-histogram.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/heap-histogram.json
@@ -6,6 +6,7 @@
"title": "Heap Histogram",
"description": "Displays class-level heap memory usage",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.HeapHistogramDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index d40ea6b4a80e..b758445cf916 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Inflight Exchanges",
"description": "Display inflight exchanges",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.InflightConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/internal-tasks.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/internal-tasks.json
index 869038a890d6..0fb582f03c1e 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/internal-tasks.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/internal-tasks.json
@@ -6,6 +6,7 @@
"title": "Internal Tasks",
"description": "Display information about internal tasks",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.TaskRegistryDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index a26a922dfa11..c5877f34274c 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Java Security",
"description": "Displays Java Security (JSSE) information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.JavaSecurityDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jfr-memory-leak.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jfr-memory-leak.json
index 9060eac5e162..d6dd0387587f 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jfr-memory-leak.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jfr-memory-leak.json
@@ -6,6 +6,7 @@
"title": "JFR Memory Leak",
"description": "JFR-based old object sampling for memory leak diagnosis",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.JfrMemoryLeakDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 4d8cd2789763..c4d5d32567db 100644
--- 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
@@ -6,6 +6,7 @@
"title": "JVM",
"description": "Displays JVM information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.JvmDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 15bd74e81283..30f93775f196 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Log",
"description": "Logging framework",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.LogDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 9f7d8b403df7..0bd7215dde80 100644
--- 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
@@ -6,6 +6,7 @@
"title": "JVM Memory",
"description": "Displays JVM memory information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.MemoryDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/message-history.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/message-history.json
index e950b50cd95c..cb4f9e2a0fb6 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/message-history.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/message-history.json
@@ -6,6 +6,7 @@
"title": "Message History",
"description": "History of latest completed exchange",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.MessageHistoryDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/processor-detail.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/processor-detail.json
index 8e22af1c1968..ebf8ce65ad2d 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/processor-detail.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/processor-detail.json
@@ -6,6 +6,7 @@
"title": "Processor Detail",
"description": "Show configured options for all processors in a route",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.ProcessorDetailDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/processor.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/processor.json
index c92c77296a08..4187206fd03d 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/processor.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/processor.json
@@ -6,6 +6,7 @@
"title": "Processor",
"description": "Processor information",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.ProcessorDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/producer.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/producer.json
index dbac98c57280..865f49fa969e 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/producer.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/producer.json
@@ -6,6 +6,7 @@
"title": "Producers",
"description": "Display information about Camel producers",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.ProducerDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 8c661d342d80..8a70c7b3e1f6 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Properties",
"description": "Displays the properties loaded by Camel",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.PropertiesDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/receive.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/receive.json
index faa96aca845f..d6eef0033fb7 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/receive.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/receive.json
@@ -6,6 +6,7 @@
"title": "Camel Receive",
"description": "Consume messages from endpoints",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.ReceiveDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 48b8737e0b16..9a9ac8798415 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Reload",
"description": "Console for reloading running Camel",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.ReloadDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/rest-spec.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/rest-spec.json
index 46ddad46dcc1..e9f5e8eaa235 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/rest-spec.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/rest-spec.json
@@ -6,6 +6,7 @@
"title": "Rest Spec",
"description": "OpenAPI specification content for contract-first REST services",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.RestSpecDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/rest.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/rest.json
index 7d237debce0c..865442fdcdea 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/rest.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/rest.json
@@ -6,6 +6,7 @@
"title": "Rest",
"description": "Rest DSL Registry information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.RestDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 986252e5ca52..2e26709b7178 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Route Controller",
"description": "Route controller information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.RouteControllerConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 3795188ace1a..b456dd2bcfa1 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Route Dump",
"description": "Dump route in XML, YAML, or Java DSL format",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.RouteDumpDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-group.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-group.json
index c2fd5b8c8502..385cdd8cd957 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-group.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-group.json
@@ -6,6 +6,7 @@
"title": "Route Group",
"description": "Route Group information",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.RouteGroupDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-structure.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-structure.json
index cad3cda9403f..ea33d5983a20 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-structure.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-structure.json
@@ -6,6 +6,7 @@
"title": "Route Structure",
"description": "Dump route structure",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.RouteStructureDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-topology.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-topology.json
index 2a5a27807324..7986ba7bddbf 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-topology.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-topology.json
@@ -6,6 +6,7 @@
"title": "Route Topology",
"description": "Route topology showing inter-route connections",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.RouteTopologyDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 36f75cd52f6d..555a1a0dd5c1 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Route",
"description": "Route information",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.RouteDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/send.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/send.json
index a15a608be3f5..0900fa44626c 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/send.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/send.json
@@ -6,6 +6,7 @@
"title": "Camel Send",
"description": "Send messages to endpoints",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.SendDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/service.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/service.json
index 33138f8dd4c9..b56cf0641d0c 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/service.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/service.json
@@ -6,6 +6,7 @@
"title": "Services",
"description": "Services used for network communication with clients",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.ServiceDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/simple-language.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/simple-language.json
index 07ebd2626447..3c84e7ff2202 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/simple-language.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/simple-language.json
@@ -6,6 +6,7 @@
"title": "Simple Language",
"description": "Display simple language details",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.SimpleLanguageDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index b641917712e6..824a1f09535b 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Source",
"description": "Dump route source code",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.SourceDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/sql-query.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/sql-query.json
index bde872c3cde3..131e314fd5b8 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/sql-query.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/sql-query.json
@@ -6,6 +6,7 @@
"title": "SQL Query",
"description": "Execute SQL queries on DataSource beans",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.SqlQueryDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/sql-trace.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/sql-trace.json
index 43ee6575ec41..1b2c4a040bfd 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/sql-trace.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/sql-trace.json
@@ -6,6 +6,7 @@
"title": "SQL Trace",
"description": "Trace SQL query executions",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.SqlTraceDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 83bbb40681e9..b258f1962d36 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Startup Recorder",
"description": "Starting recording information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.StartupRecorderDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/system-properties.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/system-properties.json
index 972f953ae340..d8f996856e7e 100644
--- a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/system-properties.json
+++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/system-properties.json
@@ -6,6 +6,7 @@
"title": "System Properties",
"description": "Displays Java System Properties",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.SystemPropertiesDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index 4b9008704da5..7ef081e60cf5 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Thread",
"description": "Displays JVM Threads information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.ThreadDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index f6d95b92dd95..58e79ae88399 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Top Routes",
"description": "Display the top routes",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.TopDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index e9814d31eb7a..9edb3eca5601 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Camel Tracing",
"description": "Trace routed messages",
"deprecated": false,
+ "readOnly": false,
"javaType": "org.apache.camel.impl.console.TraceDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index fae346548208..e5490278b2fe 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Data Type Transformers",
"description": "Data-type transformer information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.TransformerConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index fbc09620bc17..45f5ea1da158 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Type Converters",
"description": "Camel Type Converter information",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.TypeConverterConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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
index d73b94b813c7..0f2c9c059fa8 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Variables",
"description": "Displays variables",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.impl.console.VariablesDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-console",
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 decaa2f7e681..1d726e7d911f 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
@@ -41,7 +41,7 @@ import org.apache.camel.util.json.JsonArray;
import org.apache.camel.util.json.JsonObject;
import org.apache.camel.util.json.Jsoner;
-@DevConsole(name = "debug", description = "Camel route debugger")
+@DevConsole(name = "debug", description = "Camel route debugger", readOnly = false)
public class DebugDevConsole extends AbstractDevConsole {
@Metadata(label = "query", description = "Action command to execute on the debugger", javaType = "java.lang.String")
@@ -61,11 +61,6 @@ public class DebugDevConsole extends AbstractDevConsole {
super("camel", "debug", "Debug", "Camel route debugger");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
@Override
protected String doCallText(Map<String, Object> options) {
String command = optionString(options, COMMAND);
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/EvalLanguageDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/EvalLanguageDevConsole.java
index aed61a0f7e2d..0dd14f26f844 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/EvalLanguageDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/EvalLanguageDevConsole.java
@@ -28,7 +28,8 @@ import org.apache.camel.support.MessageHelper;
import org.apache.camel.support.console.AbstractDevConsole;
import org.apache.camel.util.json.JsonObject;
-@DevConsole(name = "eval-language", displayName = "Evaluate Language", description = "Evaluate Language and display result")
+@DevConsole(name = "eval-language", displayName = "Evaluate Language", description = "Evaluate Language and display result",
+ readOnly = false)
public class EvalLanguageDevConsole extends AbstractDevConsole {
@Metadata(label = "query", description = "The language to use", javaType = "java.lang.String", defaultValue = "simple")
@@ -55,11 +56,6 @@ public class EvalLanguageDevConsole extends AbstractDevConsole {
super("camel", "eval-language", "Evaluate Language", "Evaluate Language and display result");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
@Override
protected String doCallText(Map<String, Object> options) {
StringBuilder sb = new StringBuilder();
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/HeapDumpDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/HeapDumpDevConsole.java
index 5f208ba50b7d..9280c7a397a3 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/HeapDumpDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/HeapDumpDevConsole.java
@@ -33,7 +33,7 @@ import org.apache.camel.support.console.AbstractDevConsole;
import org.apache.camel.util.json.JsonObject;
@DevConsole(name = "heap-dump", displayName = "Heap Dump",
- description = "Write a heap dump (.hprof) file for deep memory analysis")
+ description = "Write a heap dump (.hprof) file for deep memory analysis", readOnly = false)
@Configurer(extended = true)
public class HeapDumpDevConsole extends AbstractDevConsole {
@@ -51,11 +51,6 @@ public class HeapDumpDevConsole extends AbstractDevConsole {
super("jvm", "heap-dump", "Heap Dump", "Write a heap dump (.hprof) file for deep memory analysis");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
@Override
protected String doCallText(Map<String, Object> options) {
JsonObject json = doCallJson(options);
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/JfrMemoryLeakDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/JfrMemoryLeakDevConsole.java
index 1ebdcdcbb319..0c8ffc94c33a 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/JfrMemoryLeakDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/JfrMemoryLeakDevConsole.java
@@ -52,7 +52,7 @@ import org.slf4j.LoggerFactory;
* chains back to GC roots, enabling memory leak diagnosis.
*/
@DevConsole(name = "jfr-memory-leak", displayName = "JFR Memory Leak",
- description = "JFR-based old object sampling for memory leak diagnosis")
+ description = "JFR-based old object sampling for memory leak diagnosis", readOnly = false)
@Configurer(extended = true)
public class JfrMemoryLeakDevConsole extends AbstractDevConsole {
@@ -99,11 +99,6 @@ public class JfrMemoryLeakDevConsole extends AbstractDevConsole {
"JFR-based old object sampling for memory leak diagnosis");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
@Override
protected String doCallText(Map<String, Object> options) {
JsonObject json = doCallJson(options);
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/ProcessorDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/ProcessorDevConsole.java
index dd830b513a8a..f65f956013eb 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/ProcessorDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/ProcessorDevConsole.java
@@ -42,7 +42,7 @@ import org.apache.camel.util.json.Jsoner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-@DevConsole(name = "processor", description = "Processor information")
+@DevConsole(name = "processor", description = "Processor information", readOnly = false)
public class ProcessorDevConsole extends AbstractDevConsole {
private static final Logger LOG = LoggerFactory.getLogger(ProcessorDevConsole.class);
@@ -64,11 +64,6 @@ public class ProcessorDevConsole extends AbstractDevConsole {
super("camel", "processor", "Processor", "Processor information");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
@Override
protected String doCallText(Map<String, Object> options) {
String action = optionString(options, ACTION);
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/ReceiveDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/ReceiveDevConsole.java
index 32d935674459..776f836041ab 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/ReceiveDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/ReceiveDevConsole.java
@@ -47,7 +47,8 @@ import org.apache.camel.util.json.JsonArray;
import org.apache.camel.util.json.JsonObject;
import org.apache.camel.util.json.Jsoner;
-@DevConsole(name = "receive", displayName = "Camel Receive", description = "Consume messages from endpoints")
+@DevConsole(name = "receive", displayName = "Camel Receive", description = "Consume messages from endpoints",
+ readOnly = false)
@Configurer(extended = true)
public class ReceiveDevConsole extends AbstractDevConsole {
@@ -85,11 +86,6 @@ public class ReceiveDevConsole extends AbstractDevConsole {
super("camel", "receive", "Camel Receive", "Consume messages from endpoints");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
public int getCapacity() {
return capacity;
}
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 582badf694e2..995226c32eb1 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
@@ -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(name = "reload", description = "Console for reloading running Camel")
+@DevConsole(name = "reload", description = "Console for reloading running Camel", readOnly = false)
public class ReloadDevConsole extends AbstractDevConsole {
@Metadata(label = "query", description = "Option to trigger reloading", javaType = "java.lang.Boolean",
@@ -49,11 +49,6 @@ public class ReloadDevConsole extends AbstractDevConsole {
super("camel", "reload", "Reload", "Console for reloading running Camel");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
protected String doCallText(Map<String, Object> options) {
boolean trigger = optionBoolean(options, RELOAD, false);
boolean wait = optionBoolean(options, RELOAD_WAIT, false);
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 826b1a8514f4..62fe9db3d0fc 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
@@ -45,7 +45,7 @@ import org.apache.camel.util.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-@DevConsole(name = "route", description = "Route information")
+@DevConsole(name = "route", description = "Route information", readOnly = false)
public class RouteDevConsole extends AbstractDevConsole {
private static final Logger LOG = LoggerFactory.getLogger(RouteDevConsole.class);
@@ -70,11 +70,6 @@ public class RouteDevConsole extends AbstractDevConsole {
super("camel", "route", "Route", "Route information");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
@Override
protected String doCallText(Map<String, Object> options) {
String action = optionString(options, ACTION);
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteGroupDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteGroupDevConsole.java
index b05e1de71819..5c0180d9ce34 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteGroupDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteGroupDevConsole.java
@@ -43,7 +43,7 @@ import org.apache.camel.util.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-@DevConsole(name = "route-group", description = "Route Group information")
+@DevConsole(name = "route-group", description = "Route Group information", readOnly = false)
public class RouteGroupDevConsole extends AbstractDevConsole {
private static final Logger LOG = LoggerFactory.getLogger(RouteGroupDevConsole.class);
@@ -62,11 +62,6 @@ public class RouteGroupDevConsole extends AbstractDevConsole {
super("camel", "route-group", "Route Group", "Route Group information");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
@Override
protected String doCallText(Map<String, Object> options) {
String action = optionString(options, ACTION);
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/SendDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/SendDevConsole.java
index c75f6b9db08b..d9aeeaa1ffce 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/SendDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/SendDevConsole.java
@@ -43,7 +43,7 @@ import org.apache.camel.util.StopWatch;
import org.apache.camel.util.TimeUtils;
import org.apache.camel.util.json.JsonObject;
-@DevConsole(name = "send", displayName = "Camel Send", description = "Send messages to endpoints")
+@DevConsole(name = "send", displayName = "Camel Send", description = "Send messages to endpoints", readOnly = false)
@Configurer(extended = true)
public class SendDevConsole extends AbstractDevConsole {
@@ -87,11 +87,6 @@ public class SendDevConsole extends AbstractDevConsole {
super("camel", "send", "Camel Send", "Send messages to endpoints");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
@Override
protected void doInit() throws Exception {
super.doInit();
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/SqlQueryDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/SqlQueryDevConsole.java
index 1b92020f9021..1a6ba861c709 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/SqlQueryDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/SqlQueryDevConsole.java
@@ -40,7 +40,8 @@ import org.apache.camel.util.json.JsonArray;
import org.apache.camel.util.json.JsonObject;
import org.apache.camel.util.json.Jsoner;
-@DevConsole(name = "sql-query", displayName = "SQL Query", description = "Execute SQL queries on DataSource beans")
+@DevConsole(name = "sql-query", displayName = "SQL Query", description = "Execute SQL queries on DataSource beans",
+ readOnly = false)
@Configurer(extended = true)
public class SqlQueryDevConsole extends AbstractDevConsole {
@@ -88,11 +89,6 @@ public class SqlQueryDevConsole extends AbstractDevConsole {
super("camel", "sql-query", "SQL Query", "Execute SQL queries on DataSource beans");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
public int getDefaultMaxRows() {
return defaultMaxRows;
}
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 7782ea4ed879..eb59c10534d3 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(name = "trace", displayName = "Camel Tracing", description = "Trace routed messages")
+@DevConsole(name = "trace", displayName = "Camel Tracing", description = "Trace routed messages", readOnly = false)
@Configurer(extended = true)
public class TraceDevConsole extends AbstractDevConsole {
@@ -51,11 +51,6 @@ public class TraceDevConsole extends AbstractDevConsole {
super("camel", "trace", "Camel Tracing", "Trace routed messages");
}
- @Override
- public boolean isReadOnly() {
- return false;
- }
-
public int getCapacity() {
return capacity;
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/dev-console/bean-model.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/dev-console/bean-model.json
index 23840a6e83e8..6ee5e78ec5f2 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/dev-console/bean-model.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/dev-console/bean-model.json
@@ -6,6 +6,7 @@
"title": "Bean Model",
"description": "Displays beans from the DSL model",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.model.console.BeanModelDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-core-model",
diff --git a/core/camel-main/src/generated/resources/META-INF/org/apache/camel/dev-console/main-configuration.json b/core/camel-main/src/generated/resources/META-INF/org/apache/camel/dev-console/main-configuration.json
index bcdda430dafb..35d1fc8dc0d1 100644
--- a/core/camel-main/src/generated/resources/META-INF/org/apache/camel/dev-console/main-configuration.json
+++ b/core/camel-main/src/generated/resources/META-INF/org/apache/camel/dev-console/main-configuration.json
@@ -6,6 +6,7 @@
"title": "Main Configuration",
"description": "Display Camel startup configuration",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.main.MainConfigurationDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-main",
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/console/AbstractDevConsole.java b/core/camel-support/src/main/java/org/apache/camel/support/console/AbstractDevConsole.java
index bfe752d92475..ce888aa9e7b0 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/console/AbstractDevConsole.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/console/AbstractDevConsole.java
@@ -61,6 +61,13 @@ public abstract class AbstractDevConsole extends ServiceSupport implements DevCo
return true;
}
+ @Override
+ public boolean isReadOnly() {
+ org.apache.camel.spi.annotations.DevConsole ann
+ = getClass().getAnnotation(org.apache.camel.spi.annotations.DevConsole.class);
+ return ann == null || ann.readOnly();
+ }
+
@Override
public String getGroup() {
return group;
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
index baaca0aeee09..616c7d091054 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Camel CLI",
"description": "Information about Camel CLI",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.jbang.console.JBangDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-jbang-console",
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
index 492f7d07826b..f7e60cfb3684 100644
--- 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
@@ -6,6 +6,7 @@
"title": "Source Directory",
"description": "Information about Camel CLI source files",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.jbang.console.SourceDirDevConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-jbang-console",
diff --git a/dsl/camel-kamelet-main/src/generated/resources/META-INF/org/apache/camel/dev-console/dependency-downloader.json b/dsl/camel-kamelet-main/src/generated/resources/META-INF/org/apache/camel/dev-console/dependency-downloader.json
index b3ed8a6458e0..a9e68394e0d6 100644
--- a/dsl/camel-kamelet-main/src/generated/resources/META-INF/org/apache/camel/dev-console/dependency-downloader.json
+++ b/dsl/camel-kamelet-main/src/generated/resources/META-INF/org/apache/camel/dev-console/dependency-downloader.json
@@ -6,6 +6,7 @@
"title": "Maven Dependency Downloader",
"description": "Displays information about dependencies downloaded at runtime",
"deprecated": false,
+ "readOnly": true,
"javaType": "org.apache.camel.main.console.DependencyDownloaderConsole",
"groupId": "org.apache.camel",
"artifactId": "camel-kamelet-main",
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java
index 8c3fa3d24bbf..2f2c0976b70b 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java
@@ -83,6 +83,7 @@ public class GenerateDevConsoleMojo extends AbstractGeneratorMojo {
private String displayName;
private String description;
private boolean deprecated;
+ private boolean readOnly = true;
private final List<DevConsoleOptionModel> options = new ArrayList<>();
public String getClassName() {
@@ -133,6 +134,14 @@ public class GenerateDevConsoleMojo extends AbstractGeneratorMojo {
this.deprecated = deprecated;
}
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+
+ public void setReadOnly(boolean readOnly) {
+ this.readOnly = readOnly;
+ }
+
public List<DevConsoleOptionModel> getOptions() {
return options;
}
@@ -169,6 +178,7 @@ public class GenerateDevConsoleMojo extends AbstractGeneratorMojo {
model.setName(annotationValue(a, "name"));
model.setDisplayName(annotationValue(a, "displayName"));
model.setDescription(annotationValue(a, "description"));
+ model.setReadOnly(!"false".equals(annotationValue(a, "readOnly")));
// skip default registry
boolean skip = "default-registry".equals(model.getName());
if (!skip) {
@@ -228,6 +238,7 @@ public class GenerateDevConsoleMojo extends AbstractGeneratorMojo {
}
jo.put("description", model.getDescription());
jo.put("deprecated", model.isDeprecated());
+ jo.put("readOnly", model.isReadOnly());
jo.put("javaType", model.getClassName());
jo.put("groupId", project.getGroupId());
jo.put("artifactId", project.getArtifactId());
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 337360203da4..1f93908cac86 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
@@ -51,4 +51,12 @@ public @interface DevConsole {
*/
String description();
+ /**
+ * Whether this console is read-only (safe, and does not change any runtime state).
+ * <p/>
+ * Consoles that mutate state (such as starting/stopping a route, sending a message, or triggering a heap dump) must
+ * set this to {@code false}.
+ */
+ boolean readOnly() default true;
+
}