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