diff --git a/catalog/camel-catalog-console/src/generated/resources/META-INF/org/apache/camel/dev-console/catalog.json b/catalog/camel-catalog-console/src/generated/resources/META-INF/org/apache/camel/dev-console/catalog.json new file mode 100644 index 0000000000000..2a6c58aea190c --- /dev/null +++ b/catalog/camel-catalog-console/src/generated/resources/META-INF/org/apache/camel/dev-console/catalog.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "catalog", + "title": "Catalog", + "description": "Information about used Camel artifacts", + "deprecated": false, + "javaType": "org.apache.camel.catalog.console.CatalogConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-catalog-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/catalog/camel-catalog-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..d50469997eecd --- /dev/null +++ b/catalog/camel-catalog-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=catalog +groupId=org.apache.camel +artifactId=camel-catalog-console +version=4.5.0-SNAPSHOT +projectName=Camel :: Catalog :: Console +projectDescription=Camel Catalog Developer Console diff --git a/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java b/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java index 6b01274c83417..97475eab8c6c1 100644 --- a/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java +++ b/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java @@ -29,14 +29,14 @@ import org.apache.camel.tooling.model.OtherModel; import org.apache.camel.util.json.JsonObject; -@DevConsole("catalog") +@DevConsole(name = "catalog", description = "Information about used Camel artifacts") public class CatalogConsole extends AbstractDevConsole { private static final String CP = System.getProperty("java.class.path"); private final CamelCatalog catalog = new DefaultCamelCatalog(true); public CatalogConsole() { - super("camel", "catalog", "Catalog", "Lists all the used Camel Components"); + super("camel", "catalog", "Catalog", "Information about used Camel artifacts"); } @Override diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles.properties new file mode 100644 index 0000000000000..407203014fc7e --- /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 0000000000000..40eec35602f72 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/aws-secrets.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "aws-secrets", + "title": "AWS Secrets", + "description": "AWS Secrets Manager", + "deprecated": false, + "javaType": "org.apache.camel.component.aws.secretsmanager.SecretsDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-aws-secrets-manager", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/aws2-s3.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/aws2-s3.json new file mode 100644 index 0000000000000..c079f636c2509 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/aws2-s3.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "aws2-s3", + "title": "AWS S3", + "description": "AWS S3 Consumer", + "deprecated": false, + "javaType": "org.apache.camel.component.aws2.s3.AWS2S3Console", + "groupId": "org.apache.camel", + "artifactId": "camel-aws2-s3", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/azure-secrets.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/azure-secrets.json new file mode 100644 index 0000000000000..76f4d498ac948 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/azure-secrets.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "azure-secrets", + "title": "Azure Key Vault Secrets", + "description": "Azure Key Vault Secret Manager", + "deprecated": false, + "javaType": "org.apache.camel.component.azure.key.vault.AzureKeyVaultManagerDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-azure-key-vault", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/bean.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/bean.json new file mode 100644 index 0000000000000..d7653bec27d18 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/bean.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "bean", + "title": "Bean", + "description": "Displays Java beans from the registry", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.BeanDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/blocked.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/blocked.json new file mode 100644 index 0000000000000..81213ab7bc8ad --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/blocked.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "blocked", + "title": "Blocked Exchanges", + "description": "Display blocked exchanges", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.BlockedConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/circuit-breaker.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/circuit-breaker.json new file mode 100644 index 0000000000000..6caa284f69a70 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/circuit-breaker.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "circuit-breaker", + "title": "Circuit Breaker", + "description": "Display circuit breaker information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.CircuitBreakerDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/consumer.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/consumer.json new file mode 100644 index 0000000000000..5cf8731b25e86 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/consumer.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "consumer", + "title": "Consumers", + "description": "Display information about Camel consumers", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.ConsumerDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/context.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/context.json new file mode 100644 index 0000000000000..a6ef2bbaafc52 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/context.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "context", + "title": "CamelContext", + "description": "Overall information about the CamelContext", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.ContextDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/debug.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/debug.json new file mode 100644 index 0000000000000..31f2c2565b0e4 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/debug.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "debug", + "title": "Debug", + "description": "Camel route debugger", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.DebugDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/endpoint.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/endpoint.json new file mode 100644 index 0000000000000..1c009d5db6893 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/endpoint.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "endpoint", + "title": "Endpoints", + "description": "Endpoint Registry information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.EndpointDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/event.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/event.json new file mode 100644 index 0000000000000..08c6817898417 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/event.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "event", + "title": "Camel Events", + "description": "The most recent Camel events", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.EventConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/fault-tolerance.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/fault-tolerance.json new file mode 100644 index 0000000000000..7ac2091fbf031 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/fault-tolerance.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "fault-tolerance", + "title": "MicroProfile Circuit Breaker", + "description": "Display circuit breaker information", + "deprecated": false, + "javaType": "org.apache.camel.component.microprofile.faulttolerance.FaultToleranceConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-microprofile-fault-tolerance", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/gc.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/gc.json new file mode 100644 index 0000000000000..1d9ec2169842b --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/gc.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "gc", + "title": "Garbage Collector", + "description": "Displays Garbage Collector information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.GarbageCollectorDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/gcp-secrets.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/gcp-secrets.json new file mode 100644 index 0000000000000..74ebae13b0097 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/gcp-secrets.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "gcp-secrets", + "title": "GCP Secrets", + "description": "GCP Secret Manager", + "deprecated": false, + "javaType": "org.apache.camel.component.google.secret.manager.GoogleSecretManagerDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-google-secret-manager", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/health.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/health.json new file mode 100644 index 0000000000000..7135acdc3f0cc --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/health.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "health", + "title": "Health Check", + "description": "Health Check Status", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.HealthDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/inflight.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/inflight.json new file mode 100644 index 0000000000000..3f1ed7f85c011 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/inflight.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "inflight", + "title": "Inflight Exchanges", + "description": "Display inflight exchanges", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.InflightConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/java-security.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/java-security.json new file mode 100644 index 0000000000000..8f78ece00b9e9 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/java-security.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "java-security", + "title": "Java Security", + "description": "Displays Java Security (JSSE) information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.JavaSecurityDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/jvm.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/jvm.json new file mode 100644 index 0000000000000..2dddb0a85cfb3 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/jvm.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "jvm", + "title": "JVM", + "description": "Displays JVM information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.JvmDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/log.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/log.json new file mode 100644 index 0000000000000..5b6b4fb82d186 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/log.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "log", + "title": "Log", + "description": "Logging framework", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.LogDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/memory.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/memory.json new file mode 100644 index 0000000000000..21b73f22d489f --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/memory.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "memory", + "title": "JVM Memory", + "description": "Displays JVM memory information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.MemoryDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/micrometer.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/micrometer.json new file mode 100644 index 0000000000000..3e223a870a028 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/micrometer.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "micrometer", + "title": "Micrometer", + "description": "Display runtime metrics", + "deprecated": false, + "javaType": "org.apache.camel.component.micrometer.MicrometerConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-micrometer", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/mina.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/mina.json new file mode 100644 index 0000000000000..98c2481468f71 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/mina.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "mina", + "title": "Mina", + "description": "Embedded Mina Server", + "deprecated": false, + "javaType": "org.apache.camel.component.mina.MinaConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-mina", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/mllp.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/mllp.json new file mode 100644 index 0000000000000..056243284343c --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/mllp.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "mllp", + "title": "MLLP", + "description": "Embedded MLLP Server", + "deprecated": false, + "javaType": "org.apache.camel.component.mllp.MllpConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-mllp", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/netty.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/netty.json new file mode 100644 index 0000000000000..f30f3adceec0e --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/netty.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "netty", + "title": "Netty", + "description": "Embedded Netty Server", + "deprecated": false, + "javaType": "org.apache.camel.component.netty.NettyConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-netty", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/platform-http.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/platform-http.json new file mode 100644 index 0000000000000..c5ef30c9fdb7d --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/platform-http.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "platform-http", + "title": "Platform HTTP", + "description": "Embedded HTTP Server", + "deprecated": false, + "javaType": "org.apache.camel.component.platform.http.PlatformHttpConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-platform-http", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/properties.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/properties.json new file mode 100644 index 0000000000000..ecc93c54e749b --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/properties.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "properties", + "title": "Properties", + "description": "Displays the properties loaded by Camel", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.PropertiesDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/quartz.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/quartz.json new file mode 100644 index 0000000000000..251f7f0a9c791 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/quartz.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "quartz", + "title": "Quartz", + "description": "Quartz Scheduler", + "deprecated": false, + "javaType": "org.apache.camel.component.quartz.QuartzConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-quartz", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/reload.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/reload.json new file mode 100644 index 0000000000000..1ff61b72ade8f --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/reload.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "reload", + "title": "Reload", + "description": "Console for reloading running Camel", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.ReloadDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/resilience4j.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/resilience4j.json new file mode 100644 index 0000000000000..2a5c089c335c3 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/resilience4j.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "resilience4j", + "title": "Resilience Circuit Breaker", + "description": "Display circuit breaker information", + "deprecated": false, + "javaType": "org.apache.camel.component.resilience4j.ResilienceConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-resilience4j", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route-controller.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route-controller.json new file mode 100644 index 0000000000000..756681384962e --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route-controller.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "route-controller", + "title": "Route Controller", + "description": "Route controller information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.RouteControllerConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route-dump.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route-dump.json new file mode 100644 index 0000000000000..d5a7fff400603 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route-dump.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "route-dump", + "title": "Route Dump", + "description": "Dump route in XML or YAML format", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.RouteDumpDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route.json new file mode 100644 index 0000000000000..ad9ca12f3121d --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/route.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "route", + "title": "Route", + "description": "Route information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.RouteDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/source.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/source.json new file mode 100644 index 0000000000000..e919ccc139473 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/source.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "source", + "title": "Source", + "description": "Dump route source code", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.SourceDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/startup-recorder.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/startup-recorder.json new file mode 100644 index 0000000000000..73761bdc3e354 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/startup-recorder.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "startup-recorder", + "title": "Startup Recorder", + "description": "Starting recording information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.StartupRecorderDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/stub.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/stub.json new file mode 100644 index 0000000000000..f95c4375e13ce --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/stub.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "stub", + "title": "Stub", + "description": "Browse messages on stub endpoints", + "deprecated": false, + "javaType": "org.apache.camel.component.stub.StubConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-stub", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/thread.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/thread.json new file mode 100644 index 0000000000000..66374a265db17 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/thread.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "thread", + "title": "Thread", + "description": "Displays JVM Threads information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.ThreadDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/top.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/top.json new file mode 100644 index 0000000000000..98ec18bb1d994 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/top.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "top", + "title": "Top Routes", + "description": "Display the top routes", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.TopDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/trace.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/trace.json new file mode 100644 index 0000000000000..5fa13493f4698 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/trace.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "trace", + "title": "Camel Tracing", + "description": "Trace routed messages", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.TraceDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/transformers.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/transformers.json new file mode 100644 index 0000000000000..b2b59833d78db --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/transformers.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "transformers", + "title": "Data Type Transformers", + "description": "Data-type transformer information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.TransformerConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/type-converters.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/type-converters.json new file mode 100644 index 0000000000000..6663487da5b75 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/type-converters.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "type-converters", + "title": "Type Converters", + "description": "Camel Type Converter information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.TypeConverterConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/variables.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/variables.json new file mode 100644 index 0000000000000..2af11b40b66bb --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/variables.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "variables", + "title": "Variables", + "description": "Displays variables", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.VariablesDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java index ec167d2490e62..9ac41f7036338 100644 --- a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java +++ b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java @@ -26,6 +26,7 @@ import org.apache.camel.tooling.model.BaseModel; import org.apache.camel.tooling.model.ComponentModel; import org.apache.camel.tooling.model.DataFormatModel; +import org.apache.camel.tooling.model.DevConsoleModel; import org.apache.camel.tooling.model.EipModel; import org.apache.camel.tooling.model.LanguageModel; import org.apache.camel.tooling.model.MainModel; @@ -198,6 +199,11 @@ public interface CamelCatalog { */ List findTransformerNames(); + /** + * Find all the dev-console names from the Camel catalog + */ + List findDevConsoleNames(); + /** * Find all the model names from the Camel catalog */ @@ -508,6 +514,11 @@ EndpointValidationResult validateEndpointProperties( */ String listTransformersAsJson(); + /** + * Lists all the dev-consoles summary details in JSon + */ + String listDevConsolesAsJson(); + /** * Lists all the models (EIPs) summary details in JSon */ @@ -547,6 +558,12 @@ EndpointValidationResult validateEndpointProperties( */ TransformerModel transformerModel(String name); + /** + * @param name the dev-console name to look up + * @return the requested dev-console or {@code null} in case it is not available in this {@link CamelCatalog} + */ + DevConsoleModel devConsoleModel(String name); + /** * @param name the other name to look up * @return the requested other or {@code null} in case it is not available in this {@link CamelCatalog} @@ -581,6 +598,8 @@ default BaseModel model(Kind kind, String name) { return languageModel(name); case transformer: return transformerModel(name); + case console: + return devConsoleModel(name); case other: return otherModel(name); case eip: diff --git a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalogJSonSchemaResolver.java b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalogJSonSchemaResolver.java index 52285d31c11f9..c5251125a2c50 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 String getTransformerJSonSchema(String name) { 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 3fbca05ec17d6..adc5e84aa8ee2 100644 --- a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java +++ b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java @@ -38,6 +38,7 @@ import org.apache.camel.tooling.model.BaseModel; import org.apache.camel.tooling.model.ComponentModel; import org.apache.camel.tooling.model.DataFormatModel; +import org.apache.camel.tooling.model.DevConsoleModel; import org.apache.camel.tooling.model.EipModel; import org.apache.camel.tooling.model.JsonMapper; import org.apache.camel.tooling.model.LanguageModel; @@ -64,8 +65,10 @@ public class DefaultCamelCatalog extends AbstractCamelCatalog implements CamelCa public static final String LIST_DATA_FORMATS_AS_JSON = "listDataFormatsAsJson"; public static final String FIND_LANGUAGE_NAMES = "findLanguageNames"; public static final String FIND_TRANSFORMER_NAMES = "findTransformerNames"; + public static final String FIND_CONSOLE_NAMES = "findConsoleNames"; public static final String LIST_LANGUAGES_AS_JSON = "listLanguagesAsJson"; public static final String LIST_TRANSFORMERS_AS_JSON = "listTransformersAsJson"; + public static final String LIST_CONSOLES_AS_JSON = "listConsolesAsJson"; private final VersionHelper version = new VersionHelper(); @@ -231,6 +234,11 @@ public List findTransformerNames() { return cache(FIND_TRANSFORMER_NAMES, runtimeProvider::findTransformerNames); } + @Override + public List findDevConsoleNames() { + return cache(FIND_CONSOLE_NAMES, runtimeProvider::findDevConsoleNames); + } + @Override public List findModelNames() { return cache("findModelNames", () -> { @@ -341,6 +349,11 @@ public String transformerJSonSchema(String name) { return cache("transformer-" + name, name, super::transformerJSonSchema); } + @Override + public String devConsoleJSonSchema(String name) { + return cache("dev-console-" + name, name, super::devConsoleJSonSchema); + } + @Override public LanguageModel languageModel(String name) { return cache("language-model-" + name, name, super::languageModel); @@ -351,6 +364,11 @@ public TransformerModel transformerModel(String name) { return cache("transformer-model-" + name, name, super::transformerModel); } + @Override + public DevConsoleModel devConsoleModel(String name) { + return cache("dev-console-model-" + name, name, super::devConsoleModel); + } + @Override public String otherJSonSchema(String name) { return cache("other-" + name, name, super::otherJSonSchema); @@ -456,6 +474,15 @@ public String listTransformersAsJson() { .toList())); } + @Override + public String listDevConsolesAsJson() { + return cache(LIST_CONSOLES_AS_JSON, () -> JsonMapper.serialize(findDevConsoleNames().stream() + .map(this::devConsoleJSonSchema) + .map(JsonMapper::deserialize) + .map(o -> o.get("console")) + .toList())); + } + @Override public String listModelsAsJson() { return cache("listModelsAsJson", () -> JsonMapper.serialize(findModelNames().stream() @@ -520,6 +547,12 @@ public ArtifactModel modelFromMavenGAV(String groupId, String artifactId, Str return am; } } + for (String name : findDevConsoleNames()) { + ArtifactModel am = devConsoleModel(name); + if (matchArtifact(am, groupId, artifactId, version)) { + return am; + } + } return null; } diff --git a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultRuntimeProvider.java b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultRuntimeProvider.java index 308b0de64f9cf..caebf7098eae4 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 String getTransformerJSonSchemaDirectory() { return TRANSFORMER_DIR; } + @Override + public String getDevConsoleJSonSchemaDirectory() { + return CONSOLE_DIR; + } + @Override public String getOtherJSonSchemaDirectory() { return OTHER_DIR; @@ -111,6 +118,10 @@ protected String getTransformerCatalog() { return TRANSFORMER_CATALOG; } + protected String getDevConsoleCatalog() { + return CONSOLE_CATALOG; + } + protected String getOtherCatalog() { return OTHER_CATALOG; } @@ -183,6 +194,23 @@ public List findTransformerNames() { return names; } + @Override + public List findDevConsoleNames() { + List 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 findOtherNames() { List names = new ArrayList<>(); diff --git a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/Kind.java b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/Kind.java index 6ca4c43b5ad7f..c1f589d02eab1 100644 --- a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/Kind.java +++ b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/Kind.java @@ -24,6 +24,7 @@ public enum Kind { dataformat, language, transformer, + console, other, eip } diff --git a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/RuntimeProvider.java b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/RuntimeProvider.java index 2122773f5dc05..3731dce8815f0 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 findTransformerNames(); + /** + * Find all the dev console names from the Camel catalog supported by the provider + */ + List 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 bfe803898051b..a4c168436a4d1 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 void testFindTransformerNames() { assertTrue(names.contains("http-application-cloudevents")); } + @Test + public void testFindDevConsoleNames() { + List 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 names = catalog.findModelNames(); @@ -890,6 +903,17 @@ public void testListTransformersAsJson() throws Exception { assertNotNull(tree); } + @Test + public void testListDevConsolesAsJson() throws Exception { + String json = catalog.listDevConsolesAsJson(); + assertNotNull(json); + + // validate we can parse the json + ObjectMapper mapper = new ObjectMapper(); + JsonNode tree = mapper.readTree(json); + assertNotNull(tree); + } + @Test public void testListModelsAsJson() throws Exception { String json = catalog.listModelsAsJson(); diff --git a/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/aws-secrets.json b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/aws-secrets.json new file mode 100644 index 0000000000000..40eec35602f72 --- /dev/null +++ b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/aws-secrets.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "aws-secrets", + "title": "AWS Secrets", + "description": "AWS Secrets Manager", + "deprecated": false, + "javaType": "org.apache.camel.component.aws.secretsmanager.SecretsDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-aws-secrets-manager", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..00362fb7a400a --- /dev/null +++ b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=aws-secrets +groupId=org.apache.camel +artifactId=camel-aws-secrets-manager +version=4.5.0-SNAPSHOT +projectName=Camel :: AWS2 Secrets Manager +projectDescription=Execute different operations on Amazon Secrets Manager service diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java index a3c64de24a5e7..b37baabc9670e 100644 --- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java +++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java @@ -33,7 +33,7 @@ import org.apache.camel.util.json.JsonObject; import org.apache.camel.vault.AwsVaultConfiguration; -@DevConsole("aws-secrets") +@DevConsole(name = "aws-secrets", displayName = "AWS Secrets", description = "AWS Secrets Manager") public class SecretsDevConsole extends AbstractDevConsole { private SecretsManagerPropertiesFunction propertiesFunction; diff --git a/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/org/apache/camel/dev-console/aws2-s3.json b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/org/apache/camel/dev-console/aws2-s3.json new file mode 100644 index 0000000000000..c079f636c2509 --- /dev/null +++ b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/org/apache/camel/dev-console/aws2-s3.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "aws2-s3", + "title": "AWS S3", + "description": "AWS S3 Consumer", + "deprecated": false, + "javaType": "org.apache.camel.component.aws2.s3.AWS2S3Console", + "groupId": "org.apache.camel", + "artifactId": "camel-aws2-s3", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..47f679f968e8e --- /dev/null +++ b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=aws2-s3 +groupId=org.apache.camel +artifactId=camel-aws2-s3 +version=4.5.0-SNAPSHOT +projectName=Camel :: AWS2 S3 +projectDescription=Consume files and upload files through AWS S3 Service diff --git a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Console.java b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Console.java index 50711ad24ee57..b205d40a25e1a 100644 --- a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Console.java +++ b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Console.java @@ -27,7 +27,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("aws2-s3") +@DevConsole(name = "aws2-s3", displayName = "AWS S3", description = "AWS S3 Consumer") public class AWS2S3Console extends AbstractDevConsole { public AWS2S3Console() { diff --git a/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/org/apache/camel/dev-console/azure-secrets.json b/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/org/apache/camel/dev-console/azure-secrets.json new file mode 100644 index 0000000000000..76f4d498ac948 --- /dev/null +++ b/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/org/apache/camel/dev-console/azure-secrets.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "azure-secrets", + "title": "Azure Key Vault Secrets", + "description": "Azure Key Vault Secret Manager", + "deprecated": false, + "javaType": "org.apache.camel.component.azure.key.vault.AzureKeyVaultManagerDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-azure-key-vault", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..6a83993de7846 --- /dev/null +++ b/components/camel-azure/camel-azure-key-vault/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=azure-secrets +groupId=org.apache.camel +artifactId=camel-azure-key-vault +version=4.5.0-SNAPSHOT +projectName=Camel :: Azure :: Key Vault +projectDescription=Camel Azure Key Vault Component diff --git a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java index e995b197927fd..733efdcb62ef8 100644 --- a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java +++ b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java @@ -32,7 +32,7 @@ import org.apache.camel.util.json.JsonObject; import org.apache.camel.vault.AzureVaultConfiguration; -@DevConsole("azure-secrets") +@DevConsole(name = "azure-secrets", displayName = "Azure Key Vault Secrets", description = "Azure Key Vault Secret Manager") public class AzureKeyVaultManagerDevConsole extends AbstractDevConsole { private KeyVaultPropertiesFunction propertiesFunction; diff --git a/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/gcp-secrets.json b/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/gcp-secrets.json new file mode 100644 index 0000000000000..74ebae13b0097 --- /dev/null +++ b/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/org/apache/camel/dev-console/gcp-secrets.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "gcp-secrets", + "title": "GCP Secrets", + "description": "GCP Secret Manager", + "deprecated": false, + "javaType": "org.apache.camel.component.google.secret.manager.GoogleSecretManagerDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-google-secret-manager", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..0f10f96cded7e --- /dev/null +++ b/components/camel-google/camel-google-secret-manager/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=gcp-secrets +groupId=org.apache.camel +artifactId=camel-google-secret-manager +version=4.5.0-SNAPSHOT +projectName=Camel :: Google :: Secret Manager +projectDescription=Camel Component for Google Cloud Platform Secrets Manager diff --git a/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java b/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java index 89072482f2fd4..34fbe10086135 100644 --- a/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java +++ b/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java @@ -33,7 +33,7 @@ import org.apache.camel.util.json.JsonObject; import org.apache.camel.vault.GcpVaultConfiguration; -@DevConsole("gcp-secrets") +@DevConsole(name = "gcp-secrets", displayName = "GCP Secrets", description = "GCP Secret Manager") public class GoogleSecretManagerDevConsole extends AbstractDevConsole { private GoogleSecretManagerPropertiesFunction propertiesFunction; diff --git a/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/org/apache/camel/dev-console/knative.json b/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/org/apache/camel/dev-console/knative.json new file mode 100644 index 0000000000000..7cd4a695aa4f9 --- /dev/null +++ b/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/org/apache/camel/dev-console/knative.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "knative", + "title": "Knative", + "description": "Knative HTTP Service", + "deprecated": false, + "javaType": "org.apache.camel.component.knative.http.KnativeHttpConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-knative-http", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..cdf1bfd1b7f10 --- /dev/null +++ b/components/camel-knative/camel-knative-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=knative +groupId=org.apache.camel +artifactId=camel-knative-http +version=4.5.0-SNAPSHOT +projectName=Camel :: Knative HTTP +projectDescription=Camel Knative HTTP diff --git a/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpConsole.java b/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpConsole.java index 324d674558633..457c6a12c3ff6 100644 --- a/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpConsole.java +++ b/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpConsole.java @@ -32,7 +32,7 @@ import org.apache.camel.util.StringHelper; import org.apache.camel.util.json.JsonObject; -@DevConsole("knative") +@DevConsole(name = "knative", displayName = "Knative", description = "Knative HTTP Service") public class KnativeHttpConsole extends AbstractDevConsole { public KnativeHttpConsole() { diff --git a/components/camel-micrometer/src/generated/resources/META-INF/org/apache/camel/dev-console/micrometer.json b/components/camel-micrometer/src/generated/resources/META-INF/org/apache/camel/dev-console/micrometer.json new file mode 100644 index 0000000000000..3e223a870a028 --- /dev/null +++ b/components/camel-micrometer/src/generated/resources/META-INF/org/apache/camel/dev-console/micrometer.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "micrometer", + "title": "Micrometer", + "description": "Display runtime metrics", + "deprecated": false, + "javaType": "org.apache.camel.component.micrometer.MicrometerConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-micrometer", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-micrometer/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-micrometer/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..29f9ce7fd2e71 --- /dev/null +++ b/components/camel-micrometer/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=micrometer +groupId=org.apache.camel +artifactId=camel-micrometer +version=4.5.0-SNAPSHOT +projectName=Camel :: Micrometer +projectDescription=Camel Micrometer based monitoring component diff --git a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConsole.java b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConsole.java index a4c869a62751a..699b6b7faecfb 100644 --- a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConsole.java +++ b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConsole.java @@ -34,7 +34,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("micrometer") +@DevConsole(name = "micrometer", description = "Display runtime metrics") public class MicrometerConsole extends AbstractDevConsole { /** diff --git a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/org/apache/camel/dev-console/fault-tolerance.json b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/org/apache/camel/dev-console/fault-tolerance.json new file mode 100644 index 0000000000000..7ac2091fbf031 --- /dev/null +++ b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/org/apache/camel/dev-console/fault-tolerance.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "fault-tolerance", + "title": "MicroProfile Circuit Breaker", + "description": "Display circuit breaker information", + "deprecated": false, + "javaType": "org.apache.camel.component.microprofile.faulttolerance.FaultToleranceConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-microprofile-fault-tolerance", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..46ad2a3ef8e0c --- /dev/null +++ b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=fault-tolerance +groupId=org.apache.camel +artifactId=camel-microprofile-fault-tolerance +version=4.5.0-SNAPSHOT +projectName=Camel :: MicroProfile :: Fault Tolerance +projectDescription=Circuit Breaker EIP using MicroProfile Fault Tolerance diff --git a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java index 1713376d79f77..ec0aa6b4ac081 100644 --- a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java +++ b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java @@ -27,11 +27,12 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("fault-tolerance") +@DevConsole(name = "fault-tolerance", displayName = "MicroProfile Circuit Breaker", + description = "Display circuit breaker information") public class FaultToleranceConsole extends AbstractDevConsole { public FaultToleranceConsole() { - super("camel", "fault-tolerance", "MicroProfile Fault Tolerance Circuit Breaker", + super("camel", "fault-tolerance", "MicroProfile Circuit Breaker", "Display circuit breaker information"); } diff --git a/components/camel-mina/src/generated/resources/META-INF/org/apache/camel/dev-console/mina.json b/components/camel-mina/src/generated/resources/META-INF/org/apache/camel/dev-console/mina.json new file mode 100644 index 0000000000000..98c2481468f71 --- /dev/null +++ b/components/camel-mina/src/generated/resources/META-INF/org/apache/camel/dev-console/mina.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "mina", + "title": "Mina", + "description": "Embedded Mina Server", + "deprecated": false, + "javaType": "org.apache.camel.component.mina.MinaConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-mina", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-mina/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-mina/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..1eedff9d192dc --- /dev/null +++ b/components/camel-mina/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=mina +groupId=org.apache.camel +artifactId=camel-mina +version=4.5.0-SNAPSHOT +projectName=Camel :: MINA +projectDescription=Camel MINA support diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsole.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsole.java index 7a240b03bc584..cafde44205e49 100644 --- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsole.java +++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsole.java @@ -27,7 +27,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("mina") +@DevConsole(name = "mina", description = "Embedded Mina Server") public class MinaConsole extends AbstractDevConsole { public MinaConsole() { diff --git a/components/camel-mllp/src/generated/resources/META-INF/org/apache/camel/dev-console/mllp.json b/components/camel-mllp/src/generated/resources/META-INF/org/apache/camel/dev-console/mllp.json new file mode 100644 index 0000000000000..056243284343c --- /dev/null +++ b/components/camel-mllp/src/generated/resources/META-INF/org/apache/camel/dev-console/mllp.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "mllp", + "title": "MLLP", + "description": "Embedded MLLP Server", + "deprecated": false, + "javaType": "org.apache.camel.component.mllp.MllpConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-mllp", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-mllp/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-mllp/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..6eedebd2efa5f --- /dev/null +++ b/components/camel-mllp/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=mllp +groupId=org.apache.camel +artifactId=camel-mllp +version=4.5.0-SNAPSHOT +projectName=Camel :: MLLP +projectDescription=Camel MLLP Component diff --git a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConsole.java b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConsole.java index 456c46d2196a7..d3beedc242330 100644 --- a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConsole.java +++ b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConsole.java @@ -27,7 +27,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("mllp") +@DevConsole(name = "mllp", displayName = "MLLP", description = "Embedded MLLP Server") public class MllpConsole extends AbstractDevConsole { public MllpConsole() { diff --git a/components/camel-netty/src/generated/resources/META-INF/org/apache/camel/dev-console/netty.json b/components/camel-netty/src/generated/resources/META-INF/org/apache/camel/dev-console/netty.json new file mode 100644 index 0000000000000..f30f3adceec0e --- /dev/null +++ b/components/camel-netty/src/generated/resources/META-INF/org/apache/camel/dev-console/netty.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "netty", + "title": "Netty", + "description": "Embedded Netty Server", + "deprecated": false, + "javaType": "org.apache.camel.component.netty.NettyConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-netty", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-netty/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-netty/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..0e7b5cc4e42c8 --- /dev/null +++ b/components/camel-netty/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=netty +groupId=org.apache.camel +artifactId=camel-netty +version=4.5.0-SNAPSHOT +projectName=Camel :: Netty +projectDescription=Camel Netty NIO based socket communication component diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsole.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsole.java index fe042f77f2b13..c99c2357adf55 100644 --- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsole.java +++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsole.java @@ -27,7 +27,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("netty") +@DevConsole(name = "netty", description = "Embedded Netty Server") public class NettyConsole extends AbstractDevConsole { public NettyConsole() { diff --git a/components/camel-platform-http/src/generated/resources/META-INF/org/apache/camel/dev-console/platform-http.json b/components/camel-platform-http/src/generated/resources/META-INF/org/apache/camel/dev-console/platform-http.json new file mode 100644 index 0000000000000..c5ef30c9fdb7d --- /dev/null +++ b/components/camel-platform-http/src/generated/resources/META-INF/org/apache/camel/dev-console/platform-http.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "platform-http", + "title": "Platform HTTP", + "description": "Embedded HTTP Server", + "deprecated": false, + "javaType": "org.apache.camel.component.platform.http.PlatformHttpConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-platform-http", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-platform-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-platform-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..bc59635699abd --- /dev/null +++ b/components/camel-platform-http/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=platform-http +groupId=org.apache.camel +artifactId=camel-platform-http +version=4.5.0-SNAPSHOT +projectName=Camel :: Platform HTTP +projectDescription=HTTP service leveraging existing runtime platform HTTP server diff --git a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpConsole.java b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpConsole.java index e4c47ba15b799..3263348f505f0 100644 --- a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpConsole.java +++ b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpConsole.java @@ -25,7 +25,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("platform-http") +@DevConsole(name = "platform-http", displayName = "Platform HTTP", description = "Embedded HTTP Server") public class PlatformHttpConsole extends AbstractDevConsole { public PlatformHttpConsole() { diff --git a/components/camel-quartz/src/generated/resources/META-INF/org/apache/camel/dev-console/quartz.json b/components/camel-quartz/src/generated/resources/META-INF/org/apache/camel/dev-console/quartz.json new file mode 100644 index 0000000000000..251f7f0a9c791 --- /dev/null +++ b/components/camel-quartz/src/generated/resources/META-INF/org/apache/camel/dev-console/quartz.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "quartz", + "title": "Quartz", + "description": "Quartz Scheduler", + "deprecated": false, + "javaType": "org.apache.camel.component.quartz.QuartzConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-quartz", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-quartz/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-quartz/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..53b1d4ad1865b --- /dev/null +++ b/components/camel-quartz/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=quartz +groupId=org.apache.camel +artifactId=camel-quartz +version=4.5.0-SNAPSHOT +projectName=Camel :: Quartz +projectDescription=Camel Quartz support diff --git a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsole.java b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsole.java index 3fdbcfcf97ce1..a02280551ce68 100644 --- a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsole.java +++ b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsole.java @@ -29,7 +29,7 @@ import org.quartz.Scheduler; import org.quartz.SchedulerMetaData; -@DevConsole("quartz") +@DevConsole(name = "quartz", description = "Quartz Scheduler") public class QuartzConsole extends AbstractDevConsole { public QuartzConsole() { diff --git a/components/camel-resilience4j/src/generated/resources/META-INF/org/apache/camel/dev-console/resilience4j.json b/components/camel-resilience4j/src/generated/resources/META-INF/org/apache/camel/dev-console/resilience4j.json new file mode 100644 index 0000000000000..2a5c089c335c3 --- /dev/null +++ b/components/camel-resilience4j/src/generated/resources/META-INF/org/apache/camel/dev-console/resilience4j.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "resilience4j", + "title": "Resilience Circuit Breaker", + "description": "Display circuit breaker information", + "deprecated": false, + "javaType": "org.apache.camel.component.resilience4j.ResilienceConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-resilience4j", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-resilience4j/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-resilience4j/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..e22a5035d9fe8 --- /dev/null +++ b/components/camel-resilience4j/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=resilience4j +groupId=org.apache.camel +artifactId=camel-resilience4j +version=4.5.0-SNAPSHOT +projectName=Camel :: Resilience4j +projectDescription=Circuit Breaker EIP using Resilience4j diff --git a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java b/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java index f74485b52a0af..9e3c45c2cccef 100644 --- a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java +++ b/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java @@ -27,7 +27,8 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("resilience4j") +@DevConsole(name = "resilience4j", displayName = "Resilience Circuit Breaker", + description = "Display circuit breaker information") public class ResilienceConsole extends AbstractDevConsole { public ResilienceConsole() { diff --git a/components/camel-stub/src/generated/resources/META-INF/org/apache/camel/dev-console/stub.json b/components/camel-stub/src/generated/resources/META-INF/org/apache/camel/dev-console/stub.json new file mode 100644 index 0000000000000..f95c4375e13ce --- /dev/null +++ b/components/camel-stub/src/generated/resources/META-INF/org/apache/camel/dev-console/stub.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "stub", + "title": "Stub", + "description": "Browse messages on stub endpoints", + "deprecated": false, + "javaType": "org.apache.camel.component.stub.StubConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-stub", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/components/camel-stub/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/components/camel-stub/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..dd9967c1aed6d --- /dev/null +++ b/components/camel-stub/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=stub +groupId=org.apache.camel +artifactId=camel-stub +version=4.5.0-SNAPSHOT +projectName=Camel :: Stub +projectDescription=Camel Stub component diff --git a/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubConsole.java b/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubConsole.java index 8a645f414b159..b05d66e24f7e1 100644 --- a/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubConsole.java +++ b/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubConsole.java @@ -31,7 +31,7 @@ import org.apache.camel.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; -@DevConsole("stub") +@DevConsole(name = "stub", description = "Browse messages on stub endpoints") public class StubConsole extends AbstractDevConsole { /** @@ -55,7 +55,7 @@ public class StubConsole extends AbstractDevConsole { public static final String BROWSE = "browse"; public StubConsole() { - super("camel", "stub", "Stub", "Browse messages on stub"); + super("camel", "stub", "Stub", "Browse messages on stub endpoints"); } @Override diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/DevConsole.java b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/DevConsole.java index f504ea000b273..337360203da4f 100644 --- a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/DevConsole.java +++ b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/DevConsole.java @@ -31,9 +31,24 @@ @ServiceFactory("dev-console") public @interface DevConsole { + /** + * The group of the dev console + */ + String group() default "camel"; + /** * The ID of the dev console. */ - String value(); + String name(); + + /** + * Display name (title) + */ + String displayName() default ""; + + /** + * Description of the console + */ + String description(); } diff --git a/core/camel-api/src/main/java/org/apache/camel/CatalogCamelContext.java b/core/camel-api/src/main/java/org/apache/camel/CatalogCamelContext.java index 7b2e7ffdd69ab..c2f8c1b3b40c6 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 null 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 788fc9b96b66b..7d04305e0f26c 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 d9e9f236e1ce0..0bd5970c3011d 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 String getTransformerParameterJsonSchema(String transformerName) throws I return null; } + @Override + public String getDevConsoleParameterJsonSchema(String devConsoleName) throws IOException { + String name = sanitizeFileName(devConsoleName) + ".json"; + String path = DefaultDevConsoleResolver.DEV_CONSOLE_RESOURCE_PATH + name; + String inputStream = doLoadResource(devConsoleName, path, "console"); + if (inputStream != null) { + return inputStream; + } + return null; + } + // Helper methods // ----------------------------------------------------------------------- diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/bean.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/bean.json new file mode 100644 index 0000000000000..d7653bec27d18 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/bean.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "bean", + "title": "Bean", + "description": "Displays Java beans from the registry", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.BeanDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/blocked.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/blocked.json new file mode 100644 index 0000000000000..81213ab7bc8ad --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/blocked.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "blocked", + "title": "Blocked Exchanges", + "description": "Display blocked exchanges", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.BlockedConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/circuit-breaker.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/circuit-breaker.json new file mode 100644 index 0000000000000..6caa284f69a70 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/circuit-breaker.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "circuit-breaker", + "title": "Circuit Breaker", + "description": "Display circuit breaker information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.CircuitBreakerDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/consumer.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/consumer.json new file mode 100644 index 0000000000000..5cf8731b25e86 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/consumer.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "consumer", + "title": "Consumers", + "description": "Display information about Camel consumers", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.ConsumerDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/context.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/context.json new file mode 100644 index 0000000000000..a6ef2bbaafc52 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/context.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "context", + "title": "CamelContext", + "description": "Overall information about the CamelContext", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.ContextDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/debug.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/debug.json new file mode 100644 index 0000000000000..31f2c2565b0e4 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/debug.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "debug", + "title": "Debug", + "description": "Camel route debugger", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.DebugDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/endpoint.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/endpoint.json new file mode 100644 index 0000000000000..1c009d5db6893 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/endpoint.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "endpoint", + "title": "Endpoints", + "description": "Endpoint Registry information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.EndpointDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/event.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/event.json new file mode 100644 index 0000000000000..08c6817898417 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/event.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "event", + "title": "Camel Events", + "description": "The most recent Camel events", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.EventConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/gc.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/gc.json new file mode 100644 index 0000000000000..1d9ec2169842b --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/gc.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "gc", + "title": "Garbage Collector", + "description": "Displays Garbage Collector information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.GarbageCollectorDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/health.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/health.json new file mode 100644 index 0000000000000..7135acdc3f0cc --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/health.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "health", + "title": "Health Check", + "description": "Health Check Status", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.HealthDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/inflight.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/inflight.json new file mode 100644 index 0000000000000..3f1ed7f85c011 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/inflight.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "inflight", + "title": "Inflight Exchanges", + "description": "Display inflight exchanges", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.InflightConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/java-security.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/java-security.json new file mode 100644 index 0000000000000..8f78ece00b9e9 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/java-security.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "java-security", + "title": "Java Security", + "description": "Displays Java Security (JSSE) information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.JavaSecurityDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jvm.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jvm.json new file mode 100644 index 0000000000000..2dddb0a85cfb3 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jvm.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "jvm", + "title": "JVM", + "description": "Displays JVM information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.JvmDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/log.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/log.json new file mode 100644 index 0000000000000..5b6b4fb82d186 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/log.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "log", + "title": "Log", + "description": "Logging framework", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.LogDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/memory.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/memory.json new file mode 100644 index 0000000000000..21b73f22d489f --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/memory.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "memory", + "title": "JVM Memory", + "description": "Displays JVM memory information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.MemoryDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/properties.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/properties.json new file mode 100644 index 0000000000000..ecc93c54e749b --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/properties.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "properties", + "title": "Properties", + "description": "Displays the properties loaded by Camel", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.PropertiesDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/reload.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/reload.json new file mode 100644 index 0000000000000..1ff61b72ade8f --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/reload.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "reload", + "title": "Reload", + "description": "Console for reloading running Camel", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.ReloadDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-controller.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-controller.json new file mode 100644 index 0000000000000..756681384962e --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-controller.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "route-controller", + "title": "Route Controller", + "description": "Route controller information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.RouteControllerConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-dump.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-dump.json new file mode 100644 index 0000000000000..d5a7fff400603 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-dump.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "route-dump", + "title": "Route Dump", + "description": "Dump route in XML or YAML format", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.RouteDumpDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route.json new file mode 100644 index 0000000000000..ad9ca12f3121d --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "route", + "title": "Route", + "description": "Route information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.RouteDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source.json new file mode 100644 index 0000000000000..e919ccc139473 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "source", + "title": "Source", + "description": "Dump route source code", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.SourceDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/startup-recorder.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/startup-recorder.json new file mode 100644 index 0000000000000..73761bdc3e354 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/startup-recorder.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "startup-recorder", + "title": "Startup Recorder", + "description": "Starting recording information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.StartupRecorderDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/thread.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/thread.json new file mode 100644 index 0000000000000..66374a265db17 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/thread.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "thread", + "title": "Thread", + "description": "Displays JVM Threads information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.ThreadDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/top.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/top.json new file mode 100644 index 0000000000000..98ec18bb1d994 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/top.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "top", + "title": "Top Routes", + "description": "Display the top routes", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.TopDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/trace.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/trace.json new file mode 100644 index 0000000000000..5fa13493f4698 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/trace.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "trace", + "title": "Camel Tracing", + "description": "Trace routed messages", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.TraceDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/transformers.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/transformers.json new file mode 100644 index 0000000000000..b2b59833d78db --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/transformers.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "transformers", + "title": "Data Type Transformers", + "description": "Data-type transformer information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.TransformerConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/type-converters.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/type-converters.json new file mode 100644 index 0000000000000..6663487da5b75 --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/type-converters.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "type-converters", + "title": "Type Converters", + "description": "Camel Type Converter information", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.TypeConverterConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/variables.json b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/variables.json new file mode 100644 index 0000000000000..2af11b40b66bb --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/variables.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel", + "name": "variables", + "title": "Variables", + "description": "Displays variables", + "deprecated": false, + "javaType": "org.apache.camel.impl.console.VariablesDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/circuit-breaker b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/circuit-breaker new file mode 100644 index 0000000000000..62c91276e873d --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/circuit-breaker @@ -0,0 +1,2 @@ +# Generated by camel build tools - do NOT edit this file! +class=org.apache.camel.impl.console.CircuitBreakerDevConsole diff --git a/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/route-circuit-breaker b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/route-circuit-breaker deleted file mode 100644 index 8500cb624bbbd..0000000000000 --- a/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/route-circuit-breaker +++ /dev/null @@ -1,2 +0,0 @@ -# Generated by camel build tools - do NOT edit this file! -class=org.apache.camel.impl.console.RouteCircuitBreakerDevConsole diff --git a/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..946daf1a1ceab --- /dev/null +++ b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=bean blocked circuit-breaker consumer context debug endpoint event gc health inflight java-security jvm log memory properties reload route route-controller route-dump source startup-recorder thread top trace transformers type-converters variables +groupId=org.apache.camel +artifactId=camel-console +version=4.5.0-SNAPSHOT +projectName=Camel :: Console +projectDescription=Camel Developer Console diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/BeanDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/BeanDevConsole.java index f94dd33642176..ad74cb0c332d2 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/BeanDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/BeanDevConsole.java @@ -23,7 +23,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("bean") +@DevConsole(name = "bean", description = "Displays Java beans from the registry") public class BeanDevConsole extends AbstractDevConsole { public BeanDevConsole() { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/BlockedConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/BlockedConsole.java index 8c897dc9b93e5..b641ade30121d 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/BlockedConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/BlockedConsole.java @@ -27,7 +27,7 @@ import org.apache.camel.util.TimeUtils; import org.apache.camel.util.json.JsonObject; -@DevConsole("blocked") +@DevConsole(name = "blocked", displayName = "Blocked Exchanges", description = "Display blocked exchanges") public class BlockedConsole extends AbstractDevConsole { public BlockedConsole() { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteCircuitBreakerDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/CircuitBreakerDevConsole.java similarity index 90% rename from core/camel-console/src/main/java/org/apache/camel/impl/console/RouteCircuitBreakerDevConsole.java rename to core/camel-console/src/main/java/org/apache/camel/impl/console/CircuitBreakerDevConsole.java index ce0ec6061b686..27f5a0dfda1e0 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteCircuitBreakerDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/CircuitBreakerDevConsole.java @@ -28,11 +28,11 @@ import org.apache.camel.util.TimeUtils; import org.apache.camel.util.json.JsonObject; -@DevConsole("route-circuit-breaker") -public class RouteCircuitBreakerDevConsole extends AbstractDevConsole { +@DevConsole(name = "circuit-breaker", description = "Display circuit breaker information") +public class CircuitBreakerDevConsole extends AbstractDevConsole { - public RouteCircuitBreakerDevConsole() { - super("camel", "route-circuit-breaker", "Route Circuit Breaker", "Display circuit breaker information"); + public CircuitBreakerDevConsole() { + super("camel", "circuit-breaker", "Circuit Breaker", "Display circuit breaker information"); } @Override diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java index a75ea58d2fb1d..1fa40f79cb82a 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java @@ -34,7 +34,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("consumer") +@DevConsole(name = "consumer", displayName = "Consumers", description = "Display information about Camel consumers") public class ConsumerDevConsole extends AbstractDevConsole { public ConsumerDevConsole() { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java index 3b332b769ee77..0f80a08d782f1 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java @@ -29,7 +29,7 @@ import org.apache.camel.util.TimeUtils; import org.apache.camel.util.json.JsonObject; -@DevConsole("context") +@DevConsole(name = "context", displayName = "CamelContext", description = "Overall information about the CamelContext") public class ContextDevConsole extends AbstractDevConsole { public ContextDevConsole() { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java index 72100c0295aee..2d1a542747c8a 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java @@ -39,7 +39,7 @@ import org.apache.camel.util.json.JsonObject; import org.apache.camel.util.json.Jsoner; -@DevConsole("debug") +@DevConsole(name = "debug", description = "Camel route debugger") public class DebugDevConsole extends AbstractDevConsole { public static final String COMMAND = "command"; diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java index 159590ed284c7..8b6c2b882c321 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java @@ -39,7 +39,7 @@ /** * Default {@link org.apache.camel.console.DevConsoleRegistry}. */ -@org.apache.camel.spi.annotations.DevConsole(DevConsoleRegistry.NAME) +@org.apache.camel.spi.annotations.DevConsole(name = DevConsoleRegistry.NAME, description = "Default Console Registry") @DeferredContextBinding public class DefaultDevConsoleRegistry extends ServiceSupport implements DevConsoleRegistry { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java index d5180306d9126..a6343a7070a65 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java @@ -29,7 +29,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("endpoint") +@DevConsole(name = "endpoint", displayName = "Endpoints", description = "Endpoint Registry information") public class EndpointDevConsole extends AbstractDevConsole { public EndpointDevConsole() { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java index 1415ec7ccc5f0..106472c941660 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java @@ -30,7 +30,7 @@ import org.apache.camel.util.TimeUtils; import org.apache.camel.util.json.JsonObject; -@DevConsole("event") +@DevConsole(name = "event", displayName = "Camel Events", description = "The most recent Camel events") @Configurer(bootstrap = true) public class EventConsole extends AbstractDevConsole { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java index cd7ebb7a01d9e..3a4252f723996 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java @@ -28,7 +28,7 @@ import org.apache.camel.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; -@DevConsole("gc") +@DevConsole(name = "gc", displayName = "Garbage Collector", description = "Displays Garbage Collector information") @Configurer(bootstrap = true) public class GarbageCollectorDevConsole extends AbstractDevConsole { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/HealthDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/HealthDevConsole.java index 75aca65610a4b..b71b44322e6c5 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/HealthDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/HealthDevConsole.java @@ -30,7 +30,7 @@ import org.apache.camel.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; -@DevConsole("health") +@DevConsole(name = "health", displayName = "Health Check", description = "Health Check Status") public class HealthDevConsole extends AbstractDevConsole { public HealthDevConsole() { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/InflightConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/InflightConsole.java index bc4adeea440c4..3ad4d5f258351 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/InflightConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/InflightConsole.java @@ -26,7 +26,7 @@ import org.apache.camel.util.TimeUtils; import org.apache.camel.util.json.JsonObject; -@DevConsole("inflight") +@DevConsole(name = "inflight", displayName = "Inflight Exchanges", description = "Display inflight exchanges") public class InflightConsole extends AbstractDevConsole { /** diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java index b4aa19e2ff5cd..8feb6c7637b24 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java @@ -27,7 +27,7 @@ import org.apache.camel.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; -@DevConsole("java-security") +@DevConsole(name = "java-security", description = "Displays Java Security (JSSE) information") @Configurer(bootstrap = true) public class JavaSecurityDevConsole extends AbstractDevConsole { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java index 22a991a98cb5d..a89fa7c7e5b9a 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java @@ -27,7 +27,7 @@ import org.apache.camel.util.TimeUtils; import org.apache.camel.util.json.JsonObject; -@DevConsole("jvm") +@DevConsole(name = "jvm", displayName = "JVM", description = "Displays JVM information") @Configurer(bootstrap = true) public class JvmDevConsole extends AbstractDevConsole { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/LogDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/LogDevConsole.java index a4ba2053d5bcc..3e90ae12ff57d 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/LogDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/LogDevConsole.java @@ -28,7 +28,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("log") +@DevConsole(name = "log", description = "Logging framework") public class LogDevConsole extends AbstractDevConsole { // log4j support diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java index f5007abdce32b..f02708dfb8030 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java @@ -27,7 +27,7 @@ import static org.apache.camel.util.UnitUtils.printUnitFromBytesDot; -@DevConsole("memory") +@DevConsole(name = "memory", displayName = "JVM Memory", description = "Displays JVM memory information") @Configurer(bootstrap = true) public class MemoryDevConsole extends AbstractDevConsole { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/PropertiesDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/PropertiesDevConsole.java index abde673d4ebbb..a539b893036ce 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/PropertiesDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/PropertiesDevConsole.java @@ -23,7 +23,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("properties") +@DevConsole(name = "properties", description = "Displays the properties loaded by Camel") public class PropertiesDevConsole extends AbstractDevConsole { public PropertiesDevConsole() { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/ReloadDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/ReloadDevConsole.java index 83057664c3d59..8d82525d20266 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/ReloadDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/ReloadDevConsole.java @@ -26,7 +26,7 @@ import org.apache.camel.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; -@DevConsole("reload") +@DevConsole(name = "reload", description = "Console for reloading running Camel") public class ReloadDevConsole extends AbstractDevConsole { /** diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java index f727cdd5e3885..5a9264857a4ae 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java @@ -38,14 +38,14 @@ import org.apache.camel.util.json.JsonObject; import org.apache.camel.util.json.Jsoner; -@DevConsole("route-controller") +@DevConsole(name = "route-controller", description = "Route controller information") public class RouteControllerConsole extends AbstractDevConsole { public static final String STACKTRACE = "stacktrace"; public static final String ERROR = "error"; public RouteControllerConsole() { - super("camel", "route-controller", "Route Controller", "Route startup information"); + super("camel", "route-controller", "Route Controller", "Route controller information"); } @Override diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java index a289c96982ea6..3f53ba6a20d94 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java @@ -40,7 +40,7 @@ import org.apache.camel.util.json.JsonObject; import org.apache.camel.util.json.Jsoner; -@DevConsole("route") +@DevConsole(name = "route", description = "Route information") public class RouteDevConsole extends AbstractDevConsole { /** diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java index 63c127b0d8278..65b46aeb8384f 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java @@ -33,7 +33,7 @@ import org.apache.camel.util.StringHelper; import org.apache.camel.util.json.JsonObject; -@DevConsole("route-dump") +@DevConsole(name = "route-dump", description = "Dump route in XML or YAML format") public class RouteDumpDevConsole extends AbstractDevConsole { /** @@ -57,7 +57,7 @@ public class RouteDumpDevConsole extends AbstractDevConsole { public static final String URI_AS_PARAMETERS = "uriAsParameters"; public RouteDumpDevConsole() { - super("camel", "route-dump", "Route Dump", "Dump route structure in XML or YAML format"); + super("camel", "route-dump", "Route Dump", "Dump route in XML or YAML format"); } @Override diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java index ba7faf6e3d5cb..82c7f57fbee7e 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java @@ -37,7 +37,7 @@ import org.apache.camel.util.StringHelper; import org.apache.camel.util.json.JsonObject; -@DevConsole("source") +@DevConsole(name = "source", description = "Dump route source code") public class SourceDevConsole extends AbstractDevConsole { /** @@ -51,7 +51,7 @@ public class SourceDevConsole extends AbstractDevConsole { public static final String LIMIT = "limit"; public SourceDevConsole() { - super("camel", "source", "Source", "Display route source code"); + super("camel", "source", "Source", "Dump route source code"); } @Override diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/StartupRecorderDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/StartupRecorderDevConsole.java index c67b8499fc613..e2130cb157abf 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/StartupRecorderDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/StartupRecorderDevConsole.java @@ -27,11 +27,11 @@ import org.apache.camel.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; -@DevConsole("startup-recorder") +@DevConsole(name = "startup-recorder", description = "Starting recording information") public class StartupRecorderDevConsole extends AbstractDevConsole { public StartupRecorderDevConsole() { - super("camel", "startup-recorder", "Startup Recorder", "Display startup recording"); + super("camel", "startup-recorder", "Startup Recorder", "Starting recording information"); } @Override diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java index 3deb5a82bcbac..8f7680392f3ae 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java @@ -28,12 +28,12 @@ import org.apache.camel.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; -@DevConsole("thread") +@DevConsole(name = "thread", description = "Displays JVM Threads information") @Configurer(bootstrap = true) public class ThreadDevConsole extends AbstractDevConsole { public ThreadDevConsole() { - super("jvm", "thread", "Thread", "Displays Threads information"); + super("jvm", "thread", "Thread", "Displays JVM Threads information"); } @Override diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java index 54358b7105955..f17264715b373 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java @@ -42,7 +42,7 @@ import org.apache.camel.util.json.JsonObject; import org.apache.camel.util.json.Jsoner; -@DevConsole("top") +@DevConsole(name = "top", displayName = "Top Routes", description = "Display the top routes") public class TopDevConsole extends AbstractDevConsole { /** @@ -56,7 +56,7 @@ public class TopDevConsole extends AbstractDevConsole { public static final String LIMIT = "limit"; public TopDevConsole() { - super("camel", "top", "Top", "Display the top routes"); + super("camel", "top", "Top Routes", "Display the top routes"); } @Override diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java index 771c472dda652..8fea16ac83ac4 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.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; -@DevConsole("trace") +@DevConsole(name = "trace", displayName = "Camel Tracing", description = "Trace routed messages") @Configurer(bootstrap = true) public class TraceDevConsole extends AbstractDevConsole { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/TransformerConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/TransformerConsole.java index ebb6e65b18c93..d400f81fc5dc5 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/TransformerConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/TransformerConsole.java @@ -25,11 +25,11 @@ import org.apache.camel.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; -@DevConsole("transformers") +@DevConsole(name = "transformers", displayName = "Data Type Transformers", description = "Data-type transformer information") public class TransformerConsole extends AbstractDevConsole { public TransformerConsole() { - super("camel", "transformers", "Data Type Transformers", "Camel Data Type Transformer information"); + super("camel", "transformers", "Data Type Transformers", "Data-type transformer information"); } @Override diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/TypeConverterConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/TypeConverterConsole.java index dd28b9b3d1071..c13365853c9c9 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/TypeConverterConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/TypeConverterConsole.java @@ -23,7 +23,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("type-converters") +@DevConsole(name = "type-converters", description = "Camel Type Converter information") public class TypeConverterConsole extends AbstractDevConsole { public TypeConverterConsole() { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java index 3769cd57a8ec9..26f0599ade095 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java @@ -26,7 +26,7 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("variables") +@DevConsole(name = "variables", description = "Displays variables") public class VariablesDevConsole extends AbstractDevConsole { public VariablesDevConsole() { diff --git a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java index 8925590214283..534ea288a177a 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.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 TransformerModel transformerModel(String name) { 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 bf427a042c401..8d32943cb444b 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 String getTransformerJSonSchema(String name) { 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 300ec9535d097..f9496c19c95ff 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 @@ public String getTransformerJSonSchema(String name) { throw new UnsupportedOperationException("Only getModelJSonSchema is in use"); } + @Override + public String getDevConsoleJSonSchema(String name) { + throw new UnsupportedOperationException("Only getModelJSonSchema is in use"); + } + @Override public String getOtherJSonSchema(String name) { throw new UnsupportedOperationException("Only getModelJSonSchema is in use"); diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc index 7b204466ca64b..98e2921388b19 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc @@ -139,6 +139,26 @@ moved into a new group `camel.debug` with more options to configure the backlog To enable backlog tracing you should now set `camel.trace.enabled=true` instead of `camel.main.backlogTracing=true`. +=== camel-console + +The `@DevConsole` annotation has been enhanced to include more information. + +Migrate from + +[source,java] +---- +@DevConsole("stub") +---- + +To + +[source,java] +---- +@DevConsole(name = "stub", description = "Browse messages on stub endpoints") +---- + +We also renamed the `route-curcuit-breaker` console to `circuit-breaker`. + === camel-jsonpath The `camel-jsonpath` will now work more similar as `camel-jq` when you specify a `resultType` and have a list of entities. diff --git a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java index 593f8369f7108..069dd3946ca1d 100644 --- a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java +++ b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java @@ -899,11 +899,11 @@ protected void statusTask() { root.put("fault-tolerance", json); } } - DevConsole dc12a = dcr.resolveById("route-circuit-breaker"); + DevConsole dc12a = dcr.resolveById("circuit-breaker"); if (dc12a != null) { JsonObject json = (JsonObject) dc12a.call(DevConsole.MediaType.JSON); if (json != null && !json.isEmpty()) { - root.put("route-circuit-breaker", json); + root.put("circuit-breaker", json); } } DevConsole dc12 = camelContext.getCamelContextExtension().getContextPlugin(DevConsoleRegistry.class) diff --git a/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jbang.json b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jbang.json new file mode 100644 index 0000000000000..b4b21ac3464db --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/jbang.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel-jbang", + "name": "jbang", + "title": "Camel JBang", + "description": "Information about Camel JBang", + "deprecated": false, + "javaType": "org.apache.camel.jbang.console.JBangDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-jbang-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source-dir.json b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source-dir.json new file mode 100644 index 0000000000000..fc8fe37e06dcf --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/org/apache/camel/dev-console/source-dir.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel-jbang", + "name": "source-dir", + "title": "Source Directory", + "description": "Information about Camel JBang source files", + "deprecated": false, + "javaType": "org.apache.camel.jbang.console.SourceDirDevConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-jbang-console", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..0aa1d1696ca8b --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=jbang source-dir +groupId=org.apache.camel +artifactId=camel-jbang-console +version=4.5.0-SNAPSHOT +projectName=Camel :: JBang :: Console +projectDescription=Camel JBang Console diff --git a/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/JBangDevConsole.java b/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/JBangDevConsole.java index 9645b9015402c..b81f10c14d1fe 100644 --- a/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/JBangDevConsole.java +++ b/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/JBangDevConsole.java @@ -22,11 +22,11 @@ import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.json.JsonObject; -@DevConsole("jbang") +@DevConsole(name = "jbang", group = "camel-jbang", displayName = "Camel JBang", description = "Information about Camel JBang") public class JBangDevConsole extends AbstractDevConsole { public JBangDevConsole() { - super("camel", "jbang", "Camel JBang", "Information about Camel JBang"); + super("camel-jbang", "jbang", "Camel JBang", "Information about Camel JBang"); } @Override diff --git a/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/SourceDirDevConsole.java b/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/SourceDirDevConsole.java index 87e2bf48ba3b9..6ad7a2b9e6a0b 100644 --- a/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/SourceDirDevConsole.java +++ b/dsl/camel-jbang/camel-jbang-console/src/main/java/org/apache/camel/jbang/console/SourceDirDevConsole.java @@ -35,7 +35,8 @@ import org.apache.camel.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; -@DevConsole("source-dir") +@DevConsole(name = "source-dir", group = "camel-jbang", displayName = "Source Directory", + description = "Information about Camel JBang source files") public class SourceDirDevConsole extends AbstractDevConsole { /** @@ -44,7 +45,7 @@ public class SourceDirDevConsole extends AbstractDevConsole { public static final String SOURCE = "source"; public SourceDirDevConsole() { - super("camel", "source-dir", "Source Directory", "Information about Camel JBang source files"); + super("camel-jbang", "source-dir", "Source Directory", "Information about Camel JBang source files"); } @Override diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java index da0b6af9ccaff..89ef4cdd0fe60 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java @@ -24,6 +24,7 @@ import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogCommand; import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogComponent; import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogDataFormat; +import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogDevConsole; import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogDoc; import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogKamelet; import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogLanguage; @@ -127,6 +128,7 @@ public static void run(CamelJBangMain main, String... args) { .addSubcommand("dataformat", new CommandLine(new CatalogDataFormat(main))) .addSubcommand("language", new CommandLine(new CatalogLanguage(main))) .addSubcommand("transformer", new CommandLine(new CatalogTransformer(main))) + .addSubcommand("dev-console", new CommandLine(new CatalogDevConsole(main))) .addSubcommand("other", new CommandLine(new CatalogOther(main))) .addSubcommand("kamelet", new CommandLine(new CatalogKamelet(main)))) .addSubcommand("doc", new CommandLine(new CatalogDoc(main))) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDevConsole.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDevConsole.java new file mode 100644 index 0000000000000..afdf4ebd2781e --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDevConsole.java @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.dsl.jbang.core.commands.catalog; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain; +import org.apache.camel.tooling.model.DevConsoleModel; +import picocli.CommandLine; + +@CommandLine.Command(name = "dev-console", + description = "List dev-consoles from the Camel Catalog", sortOptions = false) +public class CatalogDevConsole extends CatalogBaseCommand { + + public CatalogDevConsole(CamelJBangMain main) { + super(main); + } + + @Override + List collectRows() { + List rows = new ArrayList<>(); + for (String name : catalog.findDevConsoleNames()) { + DevConsoleModel model = catalog.devConsoleModel(name); + if (model != null) { + Row row = new Row(); + row.name = model.getName(); + row.title = model.getTitle(); + row.level = model.getSupportLevel().name(); + row.since = fixQuarkusSince(model.getFirstVersionShort()); + row.description = model.getDescription(); + row.label = model.getLabel() != null ? model.getLabel() : ""; + row.deprecated = model.isDeprecated(); + row.nativeSupported = model.isNativeSupported(); + row.gav = getGAV(model); + rows.add(row); + } + } + return rows; + } + +} diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListCircuitBreaker.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListCircuitBreaker.java index 7f81185d02a32..7d86cb9552d4e 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListCircuitBreaker.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListCircuitBreaker.java @@ -108,7 +108,7 @@ public Integer doProcessWatchCall() throws Exception { } } } - mo = (JsonObject) root.get("route-circuit-breaker"); + mo = (JsonObject) root.get("circuit-breaker"); if (mo != null) { JsonArray arr = (JsonArray) mo.get("circuitBreakers"); if (arr != null) { diff --git a/dsl/camel-kamelet-main/src/generated/resources/META-INF/org/apache/camel/dev-console/dependency-downloader.json b/dsl/camel-kamelet-main/src/generated/resources/META-INF/org/apache/camel/dev-console/dependency-downloader.json new file mode 100644 index 0000000000000..2bc8b5863ec88 --- /dev/null +++ b/dsl/camel-kamelet-main/src/generated/resources/META-INF/org/apache/camel/dev-console/dependency-downloader.json @@ -0,0 +1,15 @@ +{ + "console": { + "kind": "console", + "group": "camel-jbang", + "name": "dependency-downloader", + "title": "Maven Dependency Downloader", + "description": "Displays information about dependencies downloaded at runtime", + "deprecated": false, + "javaType": "org.apache.camel.main.console.DependencyDownloaderConsole", + "groupId": "org.apache.camel", + "artifactId": "camel-kamelet-main", + "version": "4.5.0-SNAPSHOT" + } +} + diff --git a/dsl/camel-kamelet-main/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties b/dsl/camel-kamelet-main/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties new file mode 100644 index 0000000000000..06c80a54be0f6 --- /dev/null +++ b/dsl/camel-kamelet-main/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +dev-consoles=dependency-downloader +groupId=org.apache.camel +artifactId=camel-kamelet-main +version=4.5.0-SNAPSHOT +projectName=Camel :: Kamelet Main +projectDescription=Main to run Kamelet standalone diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java index e08afe9562087..7cee7322700cc 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java @@ -27,11 +27,12 @@ import org.apache.camel.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; -@DevConsole("dependency-downloader") +@DevConsole(name = "dependency-downloader", group = "camel-jbang", displayName = "Maven Dependency Downloader", + description = "Displays information about dependencies downloaded at runtime") public class DependencyDownloaderConsole extends AbstractDevConsole { public DependencyDownloaderConsole() { - super("jvm", "dependency-downloader", "Maven Dependency Downloader", + super("camel-jbang", "dependency-downloader", "Maven Dependency Downloader", "Displays information about dependencies downloaded at runtime"); } diff --git a/tooling/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 0000000000000..214b958a40db9 --- /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 { + + 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 7dbd3b3c493ba..2cda577d49115 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 static BaseModel generateModel(JsonObject obj) { 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 static JsonObject asJsonObject(TransformerModel model) { return wrapper; } + public static DevConsoleModel generateDevConsoleModel(String json) { + JsonObject obj = deserialize(json); + return generateDevConsoleModel(obj); + } + + public static DevConsoleModel generateDevConsoleModel(JsonObject obj) { + JsonObject mobj = (JsonObject) obj.get("console"); + DevConsoleModel model = new DevConsoleModel(); + parseModel(mobj, model); + model.setGroup(mobj.getString("group")); + parseArtifact(mobj, model); + return model; + } + + public static String createParameterJsonSchema(DevConsoleModel model) { + JsonObject wrapper = asJsonObject(model); + return serialize(wrapper); + } + + public static JsonObject asJsonObject(DevConsoleModel model) { + JsonObject obj = new JsonObject(); + baseToJson(model, obj); + artifactToJson(model, obj); + obj.put("group", model.getGroup()); + obj.entrySet().removeIf(e -> e.getValue() == null); + JsonObject wrapper = new JsonObject(); + wrapper.put("console", obj); + return wrapper; + } + public static OtherModel generateOtherModel(String json) { JsonObject obj = deserialize(json); return generateOtherModel(obj); diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java index 39e69a47d0ad6..54e8563c891e3 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java @@ -50,6 +50,8 @@ protected void doExecute() throws MojoFailureException, MojoExecutionException { invoke(GenerateInvokeOnHeaderMojo.class); // generate data-type-transformer invoke(GenerateDataTypeTransformerMojo.class); + // generate dev-console + invoke(GenerateDevConsoleMojo.class); // prepare-components invoke(PrepareComponentMojo.class); // validate-components diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java index bf93e9984c22c..39525ac332c9c 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java @@ -37,6 +37,8 @@ import org.jboss.jandex.DotName; import org.jboss.jandex.Index; +import static org.apache.camel.maven.packaging.MojoHelper.annotationValue; + /** * Factory for generating code for @DataTypeTransformer. */ @@ -143,22 +145,10 @@ public void execute() throws MojoExecutionException, MojoFailureException { = a.target().asClass().hasAnnotation(Deprecated.class) || project.getName().contains("(deprecated)"); model.setClassName(currentClass); model.setDeprecated(deprecated); - var name = a.value("name"); - if (name != null) { - model.setName(name.value().toString()); - } - var from = a.value("from"); - if (from != null) { - model.setFrom(from.value().toString()); - } - var to = a.value("to"); - if (to != null) { - model.setFrom(to.value().toString()); - } - var desc = a.value("description"); - if (desc != null) { - model.setDescription(desc.value().toString()); - } + model.setName(annotationValue(a, "name")); + model.setFrom(annotationValue(a, "from")); + model.setTo(annotationValue(a, "to")); + model.setDescription(annotationValue(a, "description")); models.add(model); }); models.sort(Comparator.comparing(DataTypeTransformerModel::getName)); diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java new file mode 100644 index 0000000000000..97a063fe5b23b --- /dev/null +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDevConsoleMojo.java @@ -0,0 +1,236 @@ +/* + * 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.maven.packaging; + +import java.io.File; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.StringJoiner; + +import org.apache.camel.maven.packaging.generics.PackagePluginUtils; +import org.apache.camel.tooling.util.PackageHelper; +import org.apache.camel.tooling.util.Strings; +import org.apache.camel.util.json.JsonObject; +import org.apache.camel.util.json.Jsoner; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.plugins.annotations.ResolutionScope; +import org.jboss.jandex.AnnotationInstance; +import org.jboss.jandex.DotName; +import org.jboss.jandex.Index; + +import static org.apache.camel.maven.packaging.MojoHelper.annotationValue; + +/** + * Factory for generating metadata for @DevConsole. + * + * This mojo will only generate json metadata with details of the dev consoles. The general spi-generator will generate + * the marker files + */ +@Mojo(name = "generate-dev-console", threadSafe = true, defaultPhase = LifecyclePhase.PROCESS_CLASSES, + requiresDependencyCollection = ResolutionScope.COMPILE, + requiresDependencyResolution = ResolutionScope.COMPILE) +public class GenerateDevConsoleMojo extends AbstractGeneratorMojo { + + public static final DotName DEV_CONSOLE_ANNOTATION = DotName.createSimple("org.apache.camel.spi.annotations.DevConsole"); + + /** + * The project build directory + */ + @Parameter(defaultValue = "${project.build.directory}") + protected File buildDir; + + @Parameter(defaultValue = "${project.basedir}/src/generated/resources") + protected File resourcesOutputDir; + + private static class DevConsoleModel { + private String className; + private String group; + private String name; + private String displayName; + private String description; + private boolean deprecated; + + public String getClassName() { + return className; + } + + public void setClassName(String className) { + this.className = className; + } + + public String getGroup() { + return group; + } + + public void setGroup(String group) { + this.group = group; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public boolean isDeprecated() { + return deprecated; + } + + public void setDeprecated(boolean deprecated) { + this.deprecated = deprecated; + } + } + + public GenerateDevConsoleMojo() { + } + + @Override + public void execute() throws MojoExecutionException, MojoFailureException { + if ("pom".equals(project.getPackaging())) { + return; + } + + buildDir = new File(project.getBuild().getDirectory()); + + if (resourcesOutputDir == null) { + resourcesOutputDir = new File(project.getBasedir(), "src/generated/resources"); + } + + Index index = PackagePluginUtils.readJandexIndexIgnoreMissing(project, getLog()); + if (index == null) { + return; + } + + List models = new ArrayList<>(); + List annotations = index.getAnnotations(DEV_CONSOLE_ANNOTATION); + annotations.forEach(a -> { + DevConsoleModel model = new DevConsoleModel(); + + String currentClass = a.target().asClass().name().toString(); + boolean deprecated + = a.target().asClass().hasAnnotation(Deprecated.class) || project.getName().contains("(deprecated)"); + model.setClassName(currentClass); + model.setDeprecated(deprecated); + model.setGroup(annotationValue(a, "group")); + model.setName(annotationValue(a, "name")); + model.setDisplayName(annotationValue(a, "displayName")); + model.setDescription(annotationValue(a, "description")); + // skip default registry + boolean skip = "default-registry".equals(model.getName()); + if (!skip) { + models.add(model); + } + }); + models.sort(Comparator.comparing(DevConsoleModel::getName)); + + // remove default-registry as it's special + + if (!models.isEmpty()) { + try { + StringJoiner ids = new StringJoiner(" "); + for (var model : models) { + ids.add(model.getName()); + + JsonObject jo = asJsonObject(model); + String json = jo.toJson(); + json = Jsoner.prettyPrint(json, 2); + String fn = sanitizeFileName(model.getName()) + PackageHelper.JSON_SUFIX; + boolean updated = updateResource(resourcesOutputDir.toPath(), + "META-INF/org/apache/camel/dev-console/" + fn, + json + NL); + if (updated) { + getLog().info("Updated dev-console json: " + model.getName()); + } + } + + // generate marker file + File camelMetaDir = new File(resourcesOutputDir, "META-INF/services/org/apache/camel/"); + int count = models.size(); + String properties = createProperties(project, "dev-consoles", ids.toString()); + updateResource(camelMetaDir.toPath(), "dev-consoles.properties", properties); + getLog().info("Generated dev-consoles.properties containing " + count + " Camel " + + (count > 1 ? "consoles: " : "console: ") + ids); + } catch (Exception e) { + throw new MojoExecutionException(e); + } + } + } + + private JsonObject asJsonObject(DevConsoleModel model) { + JsonObject jo = new JsonObject(); + // we need to know the maven GAV also + jo.put("kind", "console"); + if (model.group != null) { + jo.put("group", model.getGroup()); + } else { + jo.put("group", "camel"); + } + jo.put("name", model.getName()); + if (model.getDisplayName() != null) { + jo.put("title", asTitle(model.getDisplayName())); + } else { + jo.put("title", asTitle(model.getName())); + } + jo.put("description", model.getDescription()); + jo.put("deprecated", model.isDeprecated()); + jo.put("javaType", model.getClassName()); + jo.put("groupId", project.getGroupId()); + jo.put("artifactId", project.getArtifactId()); + jo.put("version", project.getVersion()); + JsonObject root = new JsonObject(); + root.put("console", jo); + return root; + } + + private String sanitizeFileName(String fileName) { + return fileName.replaceAll("[^A-Za-z0-9+-/]", "-"); + } + + private String asTitle(String name) { + name = Strings.camelDashToTitle(name); + String part = Strings.after(name, ":"); + if (part != null) { + part = Strings.capitalize(part); + name = Strings.before(name, ":") + " (" + part + ")"; + } + return name; + } + +} diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java index b93ce0826ceb7..982f872be2001 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java @@ -52,6 +52,8 @@ protected void doExecute() throws MojoFailureException, MojoExecutionException { invoke(GenerateInvokeOnHeaderMojo.class); // generate data-type-transformer invoke(GenerateDataTypeTransformerMojo.class); + // generate dev-console + invoke(GenerateDevConsoleMojo.class); // prepare-components invoke(PrepareComponentMojo.class); // prepare-main diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java index a2f85b5f116ff..f4b742e9985b8 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java @@ -21,6 +21,8 @@ import java.util.Collections; import java.util.List; +import org.jboss.jandex.AnnotationInstance; + public final class MojoHelper { private MojoHelper() { @@ -113,4 +115,20 @@ public static List getComponentPath(Path dir) { } } + public static String annotationValue(AnnotationInstance ann, String key) { + if (ann == null) { + return null; + } + var v = ann.value(key); + if (v == null) { + return null; + } + var o = v.value(); + if (o == null) { + return null; + } + var s = o.toString(); + return s == null || s.isBlank() ? null : s; + } + } diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java index 41007dda5f9cb..fa2fce2ff3882 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.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 void execute() throws MojoExecutionException, MojoFailureException { Set dataformats = executeDataFormats(); Set languages = executeLanguages(); Set transformers = executeTransformers(); + Set consoles = executeDevConsoles(); Set others = executeOthers(); executeDocuments(components, dataformats, languages, others); executeXmlSchemas(); @@ -763,6 +771,48 @@ protected Set executeTransformers() throws Exception { return transformerNames; } + protected Set executeDevConsoles() throws Exception { + Path consolesOutDir = this.consolesOutDir.toPath(); + + getLog().info("Copying all Camel dev-consoles json descriptors"); + + // lets use sorted set/maps + Set jsonFiles; + Set duplicateJsonFiles; + Set 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 newJsons = map(jsonFiles, p -> p, p -> consolesOutDir.resolve(p.getFileName())); + try (Stream stream = list(consolesOutDir).filter(p -> !newJsons.containsValue(p))) { + stream.forEach(this::delete); + } + newJsons.forEach(this::copy); + + Path all = consolesOutDir.resolve("../dev-consoles.properties"); + Set 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 executeOthers() throws Exception { Path othersOutDir = this.othersOutDir.toPath(); @@ -1222,6 +1272,23 @@ private void printTransformersReport( getLog().info(SEPARATOR); } + private void printConsolesReport( + Set json, Set 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 json, Set duplicate, Map> usedLabels, Set missingFirstVersions) { getLog().info(SEPARATOR); diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java index 8dee2695138fe..1b5e953ef5d1f 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java @@ -135,7 +135,7 @@ public void execute() throws MojoExecutionException, MojoFailureException { continue; } String pvals; - // @DataTypeTransformer uses name instead of value + // @DataTypeTransformer/@DevConsole uses name instead of value if (annotation.value() == null) { pvals = annotation.values().stream() .filter(annotationValue -> "name".equals(annotationValue.name())) diff --git a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/DevConsole.java b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/DevConsole.java index f504ea000b273..337360203da4f 100644 --- a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/DevConsole.java +++ b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/DevConsole.java @@ -31,9 +31,24 @@ @ServiceFactory("dev-console") public @interface DevConsole { + /** + * The group of the dev console + */ + String group() default "camel"; + /** * The ID of the dev console. */ - String value(); + String name(); + + /** + * Display name (title) + */ + String displayName() default ""; + + /** + * Description of the console + */ + String description(); }