This is an automated email from the ASF dual-hosted git repository.
fmariani pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 401a6367aec Use Camel Catalog to retrieve Camel Infra metadata
401a6367aec is described below
commit 401a6367aec8c311c170d127e75ec5f07f1a9de0
Author: Croway <[email protected]>
AuthorDate: Wed Jan 15 16:30:27 2025 +0100
Use Camel Catalog to retrieve Camel Infra metadata
---
catalog/camel-catalog/pom.xml | 2 +
.../apache/camel/catalog/test-infra/metadata.json | 295 ++++++++++++++++-----
dsl/camel-jbang/camel-jbang-core/pom.xml | 11 -
.../core/commands/infra/InfraBaseCommand.java | 14 +-
.../dsl/jbang/core/commands/infra/InfraRun.java | 53 +++-
.../{test-infra-metadata.json => metadata.json} | 295 ++++++++++++++++-----
.../services/IgniteEmbeddedInfraService.java | 4 +
.../CamelTestInfraGenerateMetadataMojo.java | 65 ++++-
.../packaging/UpdateTestInfraMetadataMojo.java | 71 +++++
9 files changed, 663 insertions(+), 147 deletions(-)
diff --git a/catalog/camel-catalog/pom.xml b/catalog/camel-catalog/pom.xml
index 1c4706eb213..7363e60d9b9 100644
--- a/catalog/camel-catalog/pom.xml
+++ b/catalog/camel-catalog/pom.xml
@@ -153,6 +153,8 @@
<goal>update-sensitive-helper</goal>
<!-- update names in camel-main -->
<goal>update-main-helper</goal>
+ <!-- update test-infra metadata -->
+ <goal>update-test-infra-metadata</goal>
</goals>
<phase>generate-resources</phase>
</execution>
diff --git
a/test-infra/camel-test-infra-all/src/generated/resources/META-INF/test-infra-metadata.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/test-infra/metadata.json
similarity index 65%
copy from
test-infra/camel-test-infra-all/src/generated/resources/META-INF/test-infra-metadata.json
copy to
catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/test-infra/metadata.json
index 29fbd82fff7..caed72878f4 100644
---
a/test-infra/camel-test-infra-all/src/generated/resources/META-INF/test-infra-metadata.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/test-infra/metadata.json
@@ -3,353 +3,530 @@
"description" : "Milvus Vector Database",
"implementation" :
"org.apache.camel.test.infra.milvus.services.MilvusLocalContainerInfraService",
"alias" : [ "milvus" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-milvus",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSKinesisLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "kinesis" ]
+ "aliasImplementation" : [ "kinesis" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSConfigLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "config" ]
+ "aliasImplementation" : [ "config" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSCloudWatchLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "cloud-watch" ]
+ "aliasImplementation" : [ "cloud-watch" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSEventBridgeLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "event-bridge" ]
+ "aliasImplementation" : [ "event-bridge" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSSQSLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "sqs" ]
+ "aliasImplementation" : [ "sqs" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSSecretsManagerLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "secrets-manager" ]
+ "aliasImplementation" : [ "secrets-manager" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.zookeeper.services.ZooKeeperInfraService",
"description" : "Zookeeper is a server for highly reliable distributed
coordination of cloud applications",
"implementation" :
"org.apache.camel.test.infra.zookeeper.services.ZooKeeperLocalContainerInfraService",
"alias" : [ "zookeeper" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-zookeeper",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.cassandra.services.CassandraInfraService",
"description" : "Apache Cassandra NoSQL Database",
"implementation" :
"org.apache.camel.test.infra.cassandra.services.CassandraLocalContainerInfraService",
"alias" : [ "cassandra" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-cassandra",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSSTSLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "sts" ]
+ "aliasImplementation" : [ "sts" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.redis.services.RedisInfraService",
"description" : "In Memory Database",
"implementation" :
"org.apache.camel.test.infra.redis.services.RedisLocalContainerInfraService",
"alias" : [ "redis" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-redis",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.elasticsearch.services.ElasticSearchInfraService",
"description" : "NoSQL Database Elasticsearch",
"implementation" :
"org.apache.camel.test.infra.elasticsearch.services.ElasticSearchLocalContainerInfraService",
"alias" : [ "elasticsearch" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-elasticsearch",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSEC2LocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "ec2" ]
+ "aliasImplementation" : [ "ec2" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.kafka.services.KafkaInfraService",
"description" : "Apache Kafka, Distributed event streaming platform",
"implementation" :
"org.apache.camel.test.infra.kafka.services.StrimziInfraService",
"alias" : [ "kafka" ],
- "aliasImplementation" : [ "strimzi" ]
+ "aliasImplementation" : [ "strimzi" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-kafka",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.nats.services.NatsInfraService",
"description" : "Messaging Platform NATS",
"implementation" :
"org.apache.camel.test.infra.nats.services.NatsLocalContainerInfraService",
"alias" : [ "nats" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-nats",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSKMSLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "kms" ]
+ "aliasImplementation" : [ "kms" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.hazelcast.services.HazelcastInfraService",
"description" : "In Memory Database Hazelcast",
"implementation" :
"org.apache.camel.test.infra.hazelcast.services.HazelcastEmbeddedInfraService",
"alias" : [ "hazelcast" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-hazelcast",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.postgres.services.PostgresInfraService",
"description" : "Postgres SQL Database",
"implementation" :
"org.apache.camel.test.infra.postgres.services.PostgresLocalContainerInfraService",
"alias" : [ "postgres" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-postgres",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.hivemq.services.HiveMQInfraService",
"description" : "MQTT Platform HiveMQ",
"implementation" :
"org.apache.camel.test.infra.hivemq.services.LocalHiveMQSparkplugTCKInfraService",
"alias" : [ "hive-mq" ],
- "aliasImplementation" : [ "sparkplug" ]
+ "aliasImplementation" : [ "sparkplug" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-hivemq",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.kafka.services.KafkaInfraService",
"description" : "Apache Kafka, Distributed event streaming platform",
"implementation" :
"org.apache.camel.test.infra.kafka.services.RedpandaInfraService",
"alias" : [ "kafka" ],
- "aliasImplementation" : [ "redpanda" ]
+ "aliasImplementation" : [ "redpanda" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-kafka",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.hashicorp.vault.services.HashicorpVaultInfraService",
"description" : "Vault is a tool for securely accessing secrets",
"implementation" :
"org.apache.camel.test.infra.hashicorp.vault.services.HashicorpVaultLocalContainerInfraService",
"alias" : [ "hashicorp" ],
- "aliasImplementation" : [ "vault" ]
+ "aliasImplementation" : [ "vault" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-hashicorp-vault",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSSNSLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "sns" ]
+ "aliasImplementation" : [ "sns" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.artemis.services.ArtemisInfraService",
"description" : "Apache Artemis is an open source message broker",
"implementation" :
"org.apache.camel.test.infra.artemis.services.ArtemisAMQPInfraService",
"alias" : [ "artemis" ],
- "aliasImplementation" : [ "amqp" ]
+ "aliasImplementation" : [ "amqp" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-artemis",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.microprofile.lra.services.MicroprofileLRAInfraService",
"description" : "MicroProfile LRA provides a simple, loosely coupled
transaction model for microservices that is based on the SAGA pattern for
distributed transaction.",
"implementation" :
"org.apache.camel.test.infra.microprofile.lra.services.MicroprofileLRALocalContainerInfraService",
"alias" : [ "microprofile" ],
- "aliasImplementation" : [ "lra" ]
+ "aliasImplementation" : [ "lra" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-microprofile-lra",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.minio.services.MinioInfraService",
"description" : "MinIO Object Storage, S3 compatible",
"implementation" :
"org.apache.camel.test.infra.minio.services.MinioLocalContainerInfraService",
"alias" : [ "minio" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-minio",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.solr.services.SolrInfraService",
"description" : "Apache Solr is a Search Platform",
"implementation" :
"org.apache.camel.test.infra.solr.services.SolrLocalContainerInfraService",
"alias" : [ "solr" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-solr",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.couchbase.services.CouchbaseInfraService",
"description" : "NoSQL database Couchbase",
"implementation" :
"org.apache.camel.test.infra.couchbase.services.CouchbaseLocalContainerInfraService",
"alias" : [ "couchbase" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-couchbase",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.kafka.services.KafkaInfraService",
"description" : "Apache Kafka, Distributed event streaming platform",
"implementation" :
"org.apache.camel.test.infra.kafka.services.ContainerLocalKafkaInfraService",
"alias" : [ "kafka" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-kafka",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.azure.common.services.AzureInfraService",
"description" : "Local Azure services with Azurite",
"implementation" :
"org.apache.camel.test.infra.azure.storage.queue.services.AzureStorageQueueLocalContainerInfraService",
"alias" : [ "azure" ],
- "aliasImplementation" : [ "storage-queue" ]
+ "aliasImplementation" : [ "storage-queue" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-azure-storage-queue",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.etcd3.services.Etcd3InfraService",
"description" : "Key Value store etcd3",
"implementation" :
"org.apache.camel.test.infra.etcd3.services.Etcd3LocalContainerInfraService",
"alias" : [ "etcd3" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-etcd3",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.ftp.services.FtpInfraService",
"description" : "Embedded SFTP Server",
"implementation" :
"org.apache.camel.test.infra.ftp.services.embedded.SftpEmbeddedInfraService",
"alias" : [ "sftp" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-ftp",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSDynamodbLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "dynamodb", "dynamo-db" ]
+ "aliasImplementation" : [ "dynamodb", "dynamo-db" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.couchdb.services.CouchDbInfraService",
"description" : "SQL Clustered database CouchDB",
"implementation" :
"org.apache.camel.test.infra.couchdb.services.CouchDbLocalContainerInfraService",
"alias" : [ "couchdb" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-couchdb",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.artemis.services.ArtemisInfraService",
"description" : "Apache Artemis is an open source message broker",
"implementation" :
"org.apache.camel.test.infra.artemis.services.ArtemisVMInfraService",
"alias" : [ "artemis" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-artemis",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.hivemq.services.HiveMQInfraService",
"description" : "MQTT Platform HiveMQ",
"implementation" :
"org.apache.camel.test.infra.hivemq.services.LocalHiveMQInfraService",
"alias" : [ "hive-mq" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-hivemq",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.infinispan.services.InfinispanInfraService",
"description" : "Distributed Database For High‑Performance Applications With
In‑Memory Speed",
"implementation" :
"org.apache.camel.test.infra.infinispan.services.InfinispanLocalContainerInfraService",
"alias" : [ "infinispan" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-infinispan",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSS3LocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "s3" ]
+ "aliasImplementation" : [ "s3" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.smb.services.SmbLocalContainerInfraService",
"description" : "SAMBA File Server",
"implementation" :
"org.apache.camel.test.infra.smb.services.SmbLocalContainerInfraService",
"alias" : [ "smb" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-smb",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.openldap.services.OpenldapInfraService",
"description" : "OpenLDAP is an implementation of the Lightweight Directory
Access Protocol",
"implementation" :
"org.apache.camel.test.infra.openldap.services.OpenldapLocalContainerInfraService",
"alias" : [ "openldap" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-openldap",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.artemis.services.ArtemisInfraService",
"description" : "Apache Artemis is an open source message broker",
"implementation" :
"org.apache.camel.test.infra.artemis.services.ArtemisPersistentVMInfraService",
"alias" : [ "artemis" ],
- "aliasImplementation" : [ "persistent" ]
+ "aliasImplementation" : [ "persistent" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-artemis",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.xmpp.services.XmppInfraService",
"description" : "Test XMPP Server",
"implementation" :
"org.apache.camel.test.infra.xmpp.services.XmppLocalContainerInfraService",
"alias" : [ "xmpp" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-xmpp",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.artemis.services.ArtemisInfraService",
"description" : "Apache Artemis is an open source message broker",
"implementation" :
"org.apache.camel.test.infra.artemis.services.ArtemisMQTTInfraService",
"alias" : [ "artemis" ],
- "aliasImplementation" : [ "mqtt" ]
+ "aliasImplementation" : [ "mqtt" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-artemis",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.pulsar.services.PulsarInfraService",
"description" : "Distributed messaging and streaming platform",
"implementation" :
"org.apache.camel.test.infra.pulsar.services.PulsarLocalContainerInfraService",
"alias" : [ "pulsar" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-pulsar",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.qdrant.services.QdrantInfraService",
"description" : "Vector Database and Vector Search Engine",
"implementation" :
"org.apache.camel.test.infra.qdrant.services.QdrantLocalContainerInfraService",
"alias" : [ "qdrant" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-qdrant",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.ftp.services.FtpInfraService",
"description" : "Embedded FTPS Server",
"implementation" :
"org.apache.camel.test.infra.ftp.services.embedded.FtpsEmbeddedInfraService",
"alias" : [ "ftps" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-ftp",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.ollama.services.OllamaInfraService",
"description" : "Build and run LLMs with Ollama",
"implementation" :
"org.apache.camel.test.infra.ollama.services.OllamaLocalContainerInfraService",
"alias" : [ "ollama" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-ollama",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.azure.common.services.AzureInfraService",
"description" : "Local Azure services with Azurite",
"implementation" :
"org.apache.camel.test.infra.azure.storage.blob.services.AzureStorageBlobLocalContainerInfraService",
"alias" : [ "azure" ],
- "aliasImplementation" : [ "storage-blob" ]
+ "aliasImplementation" : [ "storage-blob" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-azure-storage-blob",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.torchserve.services.TorchServeInfraService",
"description" : "TorchServe is a flexible tool for serving PyTorch",
"implementation" :
"org.apache.camel.test.infra.torchserve.services.TorchServeLocalContainerInfraService",
"alias" : [ "torch-serve" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-torchserve",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSIAMLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "iam" ]
+ "aliasImplementation" : [ "iam" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.fhir.services.FhirInfraService",
"description" : "HAPI FHIR RESTful test server",
"implementation" :
"org.apache.camel.test.infra.fhir.services.FhirLocalContainerInfraService",
"alias" : [ "fhir" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-fhir",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSLambdaLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "lambda" ]
+ "aliasImplementation" : [ "lambda" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.google.pubsub.services.GooglePubSubInfraService",
"description" : "Google Cloud SDK Tool",
"implementation" :
"org.apache.camel.test.infra.google.pubsub.services.GooglePubSubLocalContainerInfraService",
"alias" : [ "google" ],
- "aliasImplementation" : [ "pub-sub" ]
+ "aliasImplementation" : [ "pub-sub" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-google-pubsub",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.chatscript.services.ChatScriptInfraService",
"description" : "ChatBot Engine",
"implementation" :
"org.apache.camel.test.infra.chatscript.services.ChatScriptLocalContainerInfraService",
"alias" : [ "chat-script" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-chatscript",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.arangodb.services.ArangoDBInfraService",
"description" : "ArangoDB is a multi-model database for high-performance
applications.",
"implementation" :
"org.apache.camel.test.infra.arangodb.services.ArangoDBLocalContainerInfraService",
"alias" : [ "arangodb" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-arangodb",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.ftp.services.FtpInfraService",
"description" : "Embedded FTP Server",
"implementation" :
"org.apache.camel.test.infra.ftp.services.embedded.FtpEmbeddedInfraService",
"alias" : [ "ftp" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-ftp",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.rabbitmq.services.RabbitMQInfraService",
"description" : "Messaging and streaming broker",
"implementation" :
"org.apache.camel.test.infra.rabbitmq.services.RabbitMQLocalContainerInfraService",
"alias" : [ "rabbitmq" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-rabbitmq",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.mosquitto.services.MosquittoInfraService",
"description" : "Mosquitto is a message broker that implements MQTT
protocol",
"implementation" :
"org.apache.camel.test.infra.mosquitto.services.MosquittoLocalContainerInfraService",
"alias" : [ "mosquitto" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-mosquitto",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.rocketmq.services.RocketMQInfraService",
"description" : "Apache RocketMQ is a distributed messaging and streaming
platform",
"implementation" :
"org.apache.camel.test.infra.rocketmq.services.RocketMQContainerInfraService",
"alias" : [ "rocketmq" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-rocketmq",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.mongodb.services.MongoDBInfraService",
"description" : "MongoDB NoSql Database",
"implementation" :
"org.apache.camel.test.infra.mongodb.services.MongoDBLocalContainerInfraService",
"alias" : [ "mongodb" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-mongodb",
+ "version" : "4.10.0-SNAPSHOT"
} ]
\ No newline at end of file
diff --git a/dsl/camel-jbang/camel-jbang-core/pom.xml
b/dsl/camel-jbang/camel-jbang-core/pom.xml
index 223607f1b03..8c29c6775c9 100644
--- a/dsl/camel-jbang/camel-jbang-core/pom.xml
+++ b/dsl/camel-jbang/camel-jbang-core/pom.xml
@@ -146,17 +146,6 @@
<version>${jansi-version}</version>
</dependency>
- <!-- test infra run -->
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-test-infra-all</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.datatype</groupId>
- <artifactId>jackson-datatype-jdk8</artifactId>
- </dependency>
-
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-xml</artifactId>
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraBaseCommand.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraBaseCommand.java
index 127c0a03129..a6f51ca46b4 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraBaseCommand.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraBaseCommand.java
@@ -25,8 +25,8 @@ import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import org.apache.camel.catalog.CamelCatalog;
+import org.apache.camel.catalog.DefaultCamelCatalog;
import org.apache.camel.dsl.jbang.core.commands.CamelCommand;
import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
import picocli.CommandLine;
@@ -43,8 +43,6 @@ public abstract class InfraBaseCommand extends CamelCommand {
super(main);
jsonMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
- jsonMapper.registerModule(new JavaTimeModule());
- jsonMapper.registerModule(new Jdk8Module());
jsonMapper.enable(SerializationFeature.INDENT_OUTPUT);
jsonMapper.configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY,
true);
jsonMapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS,
true);
@@ -53,8 +51,9 @@ public abstract class InfraBaseCommand extends CamelCommand {
protected List<TestInfraService> getMetadata() throws IOException {
List<TestInfraService> metadata;
+ CamelCatalog catalog = new DefaultCamelCatalog();
try (InputStream is
- =
this.getClass().getClassLoader().getResourceAsStream("META-INF/test-infra-metadata.json"))
{
+ = catalog.loadResource("test-infra", "metadata.json")) {
String json = new String(is.readAllBytes(),
StandardCharsets.UTF_8);
metadata = jsonMapper.readValue(json, new
TypeReference<List<TestInfraService>>() {
@@ -69,6 +68,9 @@ public abstract class InfraBaseCommand extends CamelCommand {
String implementation,
String description,
List<String> alias,
- List<String> aliasImplementation) {
+ List<String> aliasImplementation,
+ String groupId,
+ String artifactId,
+ String version) {
}
}
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraRun.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraRun.java
index 8552baf9381..7731df6d6c2 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraRun.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraRun.java
@@ -21,9 +21,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Scanner;
-import com.google.common.base.Strings;
import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
-import org.apache.camel.test.infra.common.services.InfrastructureService;
+import org.apache.camel.main.download.DependencyDownloaderClassLoader;
+import org.apache.camel.main.download.MavenDependencyDownloader;
+import org.apache.camel.tooling.maven.MavenArtifact;
import picocli.CommandLine;
@CommandLine.Command(name = "run",
@@ -80,34 +81,66 @@ public class InfraRun extends InfraBaseCommand {
return new IllegalArgumentException("service " +
testService + " not found" + message);
});
+ DependencyDownloaderClassLoader cl = new
DependencyDownloaderClassLoader(InfraRun.class.getClassLoader());
+
+ MavenDependencyDownloader downloader = new MavenDependencyDownloader();
+ downloader.setClassLoader(cl);
+ downloader.start();
+ // download required camel-test-infra-* dependency
+ downloader.downloadDependency(testInfraService.groupId(),
+ testInfraService.artifactId(),
+ testInfraService.version(), true);
+
+ MavenArtifact ma =
downloader.downloadArtifact(testInfraService.groupId(),
+ testInfraService.artifactId(),
+ testInfraService.version());
+ cl.addFile(ma.getFile());
+
+ // Update the class loader
+ Thread.currentThread().setContextClassLoader(cl);
+
String serviceInterface = testInfraService.service();
String serviceImpl = testInfraService.implementation();
if (!jsonOutput) {
String prefix = "";
- if (!Strings.isNullOrEmpty(testServiceImplementation)) {
+ if (testServiceImplementation != null &&
!testServiceImplementation.isEmpty()) {
prefix = " with implementation " + testServiceImplementation;
}
printer().println("Starting service " + testService + prefix);
}
- InfrastructureService actualService = (InfrastructureService)
Class.forName(serviceImpl)
- .getDeclaredConstructor(null)
- .newInstance(null);
+ Object actualService = cl.loadClass(serviceImpl).newInstance();
+
+ // Make sure the actualService can be run with initialize method
+ boolean actualServiceIsAnInfrastructureService = false;
+
+ for (Method method : actualService.getClass().getMethods()) {
+ if (method.getName().contains("initialize")) {
+ actualServiceIsAnInfrastructureService = true;
+ break;
+ }
+ }
+
+ if (!actualServiceIsAnInfrastructureService) {
+ System.err.println("Service " + serviceImpl + " is not an
InfrastructureService");
+
+ return;
+ }
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
if (actualService != null) {
try {
- actualService.shutdown();
+
actualService.getClass().getMethod("shutdown").invoke(actualService);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}));
- actualService.initialize();
+ actualService.getClass().getMethod("initialize").invoke(actualService);
- Method[] serviceMethods =
Class.forName(serviceInterface).getDeclaredMethods();
+ Method[] serviceMethods =
cl.loadClass(serviceInterface).getDeclaredMethods();
HashMap properties = new HashMap();
for (Method method : serviceMethods) {
if (method.getParameterCount() == 0 &&
!method.getName().contains("registerProperties")) {
@@ -123,7 +156,7 @@ public class InfraRun extends InfraBaseCommand {
Scanner sc = new Scanner(System.in).useDelimiter("\n");
if (sc.nextLine().equals("q")) {
- actualService.shutdown();
+
actualService.getClass().getMethod("shutdown").invoke(actualService);
sc.close();
}
}
diff --git
a/test-infra/camel-test-infra-all/src/generated/resources/META-INF/test-infra-metadata.json
b/test-infra/camel-test-infra-all/src/generated/resources/META-INF/metadata.json
similarity index 65%
rename from
test-infra/camel-test-infra-all/src/generated/resources/META-INF/test-infra-metadata.json
rename to
test-infra/camel-test-infra-all/src/generated/resources/META-INF/metadata.json
index 29fbd82fff7..caed72878f4 100644
---
a/test-infra/camel-test-infra-all/src/generated/resources/META-INF/test-infra-metadata.json
+++
b/test-infra/camel-test-infra-all/src/generated/resources/META-INF/metadata.json
@@ -3,353 +3,530 @@
"description" : "Milvus Vector Database",
"implementation" :
"org.apache.camel.test.infra.milvus.services.MilvusLocalContainerInfraService",
"alias" : [ "milvus" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-milvus",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSKinesisLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "kinesis" ]
+ "aliasImplementation" : [ "kinesis" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSConfigLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "config" ]
+ "aliasImplementation" : [ "config" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSCloudWatchLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "cloud-watch" ]
+ "aliasImplementation" : [ "cloud-watch" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSEventBridgeLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "event-bridge" ]
+ "aliasImplementation" : [ "event-bridge" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSSQSLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "sqs" ]
+ "aliasImplementation" : [ "sqs" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSSecretsManagerLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "secrets-manager" ]
+ "aliasImplementation" : [ "secrets-manager" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.zookeeper.services.ZooKeeperInfraService",
"description" : "Zookeeper is a server for highly reliable distributed
coordination of cloud applications",
"implementation" :
"org.apache.camel.test.infra.zookeeper.services.ZooKeeperLocalContainerInfraService",
"alias" : [ "zookeeper" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-zookeeper",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.cassandra.services.CassandraInfraService",
"description" : "Apache Cassandra NoSQL Database",
"implementation" :
"org.apache.camel.test.infra.cassandra.services.CassandraLocalContainerInfraService",
"alias" : [ "cassandra" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-cassandra",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSSTSLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "sts" ]
+ "aliasImplementation" : [ "sts" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.redis.services.RedisInfraService",
"description" : "In Memory Database",
"implementation" :
"org.apache.camel.test.infra.redis.services.RedisLocalContainerInfraService",
"alias" : [ "redis" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-redis",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.elasticsearch.services.ElasticSearchInfraService",
"description" : "NoSQL Database Elasticsearch",
"implementation" :
"org.apache.camel.test.infra.elasticsearch.services.ElasticSearchLocalContainerInfraService",
"alias" : [ "elasticsearch" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-elasticsearch",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSEC2LocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "ec2" ]
+ "aliasImplementation" : [ "ec2" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.kafka.services.KafkaInfraService",
"description" : "Apache Kafka, Distributed event streaming platform",
"implementation" :
"org.apache.camel.test.infra.kafka.services.StrimziInfraService",
"alias" : [ "kafka" ],
- "aliasImplementation" : [ "strimzi" ]
+ "aliasImplementation" : [ "strimzi" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-kafka",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.nats.services.NatsInfraService",
"description" : "Messaging Platform NATS",
"implementation" :
"org.apache.camel.test.infra.nats.services.NatsLocalContainerInfraService",
"alias" : [ "nats" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-nats",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSKMSLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "kms" ]
+ "aliasImplementation" : [ "kms" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.hazelcast.services.HazelcastInfraService",
"description" : "In Memory Database Hazelcast",
"implementation" :
"org.apache.camel.test.infra.hazelcast.services.HazelcastEmbeddedInfraService",
"alias" : [ "hazelcast" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-hazelcast",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.postgres.services.PostgresInfraService",
"description" : "Postgres SQL Database",
"implementation" :
"org.apache.camel.test.infra.postgres.services.PostgresLocalContainerInfraService",
"alias" : [ "postgres" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-postgres",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.hivemq.services.HiveMQInfraService",
"description" : "MQTT Platform HiveMQ",
"implementation" :
"org.apache.camel.test.infra.hivemq.services.LocalHiveMQSparkplugTCKInfraService",
"alias" : [ "hive-mq" ],
- "aliasImplementation" : [ "sparkplug" ]
+ "aliasImplementation" : [ "sparkplug" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-hivemq",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.kafka.services.KafkaInfraService",
"description" : "Apache Kafka, Distributed event streaming platform",
"implementation" :
"org.apache.camel.test.infra.kafka.services.RedpandaInfraService",
"alias" : [ "kafka" ],
- "aliasImplementation" : [ "redpanda" ]
+ "aliasImplementation" : [ "redpanda" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-kafka",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.hashicorp.vault.services.HashicorpVaultInfraService",
"description" : "Vault is a tool for securely accessing secrets",
"implementation" :
"org.apache.camel.test.infra.hashicorp.vault.services.HashicorpVaultLocalContainerInfraService",
"alias" : [ "hashicorp" ],
- "aliasImplementation" : [ "vault" ]
+ "aliasImplementation" : [ "vault" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-hashicorp-vault",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSSNSLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "sns" ]
+ "aliasImplementation" : [ "sns" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.artemis.services.ArtemisInfraService",
"description" : "Apache Artemis is an open source message broker",
"implementation" :
"org.apache.camel.test.infra.artemis.services.ArtemisAMQPInfraService",
"alias" : [ "artemis" ],
- "aliasImplementation" : [ "amqp" ]
+ "aliasImplementation" : [ "amqp" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-artemis",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.microprofile.lra.services.MicroprofileLRAInfraService",
"description" : "MicroProfile LRA provides a simple, loosely coupled
transaction model for microservices that is based on the SAGA pattern for
distributed transaction.",
"implementation" :
"org.apache.camel.test.infra.microprofile.lra.services.MicroprofileLRALocalContainerInfraService",
"alias" : [ "microprofile" ],
- "aliasImplementation" : [ "lra" ]
+ "aliasImplementation" : [ "lra" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-microprofile-lra",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.minio.services.MinioInfraService",
"description" : "MinIO Object Storage, S3 compatible",
"implementation" :
"org.apache.camel.test.infra.minio.services.MinioLocalContainerInfraService",
"alias" : [ "minio" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-minio",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.solr.services.SolrInfraService",
"description" : "Apache Solr is a Search Platform",
"implementation" :
"org.apache.camel.test.infra.solr.services.SolrLocalContainerInfraService",
"alias" : [ "solr" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-solr",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.couchbase.services.CouchbaseInfraService",
"description" : "NoSQL database Couchbase",
"implementation" :
"org.apache.camel.test.infra.couchbase.services.CouchbaseLocalContainerInfraService",
"alias" : [ "couchbase" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-couchbase",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.kafka.services.KafkaInfraService",
"description" : "Apache Kafka, Distributed event streaming platform",
"implementation" :
"org.apache.camel.test.infra.kafka.services.ContainerLocalKafkaInfraService",
"alias" : [ "kafka" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-kafka",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.azure.common.services.AzureInfraService",
"description" : "Local Azure services with Azurite",
"implementation" :
"org.apache.camel.test.infra.azure.storage.queue.services.AzureStorageQueueLocalContainerInfraService",
"alias" : [ "azure" ],
- "aliasImplementation" : [ "storage-queue" ]
+ "aliasImplementation" : [ "storage-queue" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-azure-storage-queue",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.etcd3.services.Etcd3InfraService",
"description" : "Key Value store etcd3",
"implementation" :
"org.apache.camel.test.infra.etcd3.services.Etcd3LocalContainerInfraService",
"alias" : [ "etcd3" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-etcd3",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.ftp.services.FtpInfraService",
"description" : "Embedded SFTP Server",
"implementation" :
"org.apache.camel.test.infra.ftp.services.embedded.SftpEmbeddedInfraService",
"alias" : [ "sftp" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-ftp",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSDynamodbLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "dynamodb", "dynamo-db" ]
+ "aliasImplementation" : [ "dynamodb", "dynamo-db" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.couchdb.services.CouchDbInfraService",
"description" : "SQL Clustered database CouchDB",
"implementation" :
"org.apache.camel.test.infra.couchdb.services.CouchDbLocalContainerInfraService",
"alias" : [ "couchdb" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-couchdb",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.artemis.services.ArtemisInfraService",
"description" : "Apache Artemis is an open source message broker",
"implementation" :
"org.apache.camel.test.infra.artemis.services.ArtemisVMInfraService",
"alias" : [ "artemis" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-artemis",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.hivemq.services.HiveMQInfraService",
"description" : "MQTT Platform HiveMQ",
"implementation" :
"org.apache.camel.test.infra.hivemq.services.LocalHiveMQInfraService",
"alias" : [ "hive-mq" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-hivemq",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.infinispan.services.InfinispanInfraService",
"description" : "Distributed Database For High‑Performance Applications With
In‑Memory Speed",
"implementation" :
"org.apache.camel.test.infra.infinispan.services.InfinispanLocalContainerInfraService",
"alias" : [ "infinispan" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-infinispan",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSS3LocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "s3" ]
+ "aliasImplementation" : [ "s3" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.smb.services.SmbLocalContainerInfraService",
"description" : "SAMBA File Server",
"implementation" :
"org.apache.camel.test.infra.smb.services.SmbLocalContainerInfraService",
"alias" : [ "smb" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-smb",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.openldap.services.OpenldapInfraService",
"description" : "OpenLDAP is an implementation of the Lightweight Directory
Access Protocol",
"implementation" :
"org.apache.camel.test.infra.openldap.services.OpenldapLocalContainerInfraService",
"alias" : [ "openldap" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-openldap",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.artemis.services.ArtemisInfraService",
"description" : "Apache Artemis is an open source message broker",
"implementation" :
"org.apache.camel.test.infra.artemis.services.ArtemisPersistentVMInfraService",
"alias" : [ "artemis" ],
- "aliasImplementation" : [ "persistent" ]
+ "aliasImplementation" : [ "persistent" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-artemis",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.xmpp.services.XmppInfraService",
"description" : "Test XMPP Server",
"implementation" :
"org.apache.camel.test.infra.xmpp.services.XmppLocalContainerInfraService",
"alias" : [ "xmpp" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-xmpp",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.artemis.services.ArtemisInfraService",
"description" : "Apache Artemis is an open source message broker",
"implementation" :
"org.apache.camel.test.infra.artemis.services.ArtemisMQTTInfraService",
"alias" : [ "artemis" ],
- "aliasImplementation" : [ "mqtt" ]
+ "aliasImplementation" : [ "mqtt" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-artemis",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.pulsar.services.PulsarInfraService",
"description" : "Distributed messaging and streaming platform",
"implementation" :
"org.apache.camel.test.infra.pulsar.services.PulsarLocalContainerInfraService",
"alias" : [ "pulsar" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-pulsar",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.qdrant.services.QdrantInfraService",
"description" : "Vector Database and Vector Search Engine",
"implementation" :
"org.apache.camel.test.infra.qdrant.services.QdrantLocalContainerInfraService",
"alias" : [ "qdrant" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-qdrant",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.ftp.services.FtpInfraService",
"description" : "Embedded FTPS Server",
"implementation" :
"org.apache.camel.test.infra.ftp.services.embedded.FtpsEmbeddedInfraService",
"alias" : [ "ftps" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-ftp",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.ollama.services.OllamaInfraService",
"description" : "Build and run LLMs with Ollama",
"implementation" :
"org.apache.camel.test.infra.ollama.services.OllamaLocalContainerInfraService",
"alias" : [ "ollama" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-ollama",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.azure.common.services.AzureInfraService",
"description" : "Local Azure services with Azurite",
"implementation" :
"org.apache.camel.test.infra.azure.storage.blob.services.AzureStorageBlobLocalContainerInfraService",
"alias" : [ "azure" ],
- "aliasImplementation" : [ "storage-blob" ]
+ "aliasImplementation" : [ "storage-blob" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-azure-storage-blob",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.torchserve.services.TorchServeInfraService",
"description" : "TorchServe is a flexible tool for serving PyTorch",
"implementation" :
"org.apache.camel.test.infra.torchserve.services.TorchServeLocalContainerInfraService",
"alias" : [ "torch-serve" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-torchserve",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSIAMLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "iam" ]
+ "aliasImplementation" : [ "iam" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.fhir.services.FhirInfraService",
"description" : "HAPI FHIR RESTful test server",
"implementation" :
"org.apache.camel.test.infra.fhir.services.FhirLocalContainerInfraService",
"alias" : [ "fhir" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-fhir",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.aws.common.services.AWSInfraService",
"description" : "Local AWS Services with LocalStack",
"implementation" :
"org.apache.camel.test.infra.aws2.services.AWSLambdaLocalContainerInfraService",
"alias" : [ "aws" ],
- "aliasImplementation" : [ "lambda" ]
+ "aliasImplementation" : [ "lambda" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-aws-v2",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.google.pubsub.services.GooglePubSubInfraService",
"description" : "Google Cloud SDK Tool",
"implementation" :
"org.apache.camel.test.infra.google.pubsub.services.GooglePubSubLocalContainerInfraService",
"alias" : [ "google" ],
- "aliasImplementation" : [ "pub-sub" ]
+ "aliasImplementation" : [ "pub-sub" ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-google-pubsub",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.chatscript.services.ChatScriptInfraService",
"description" : "ChatBot Engine",
"implementation" :
"org.apache.camel.test.infra.chatscript.services.ChatScriptLocalContainerInfraService",
"alias" : [ "chat-script" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-chatscript",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.arangodb.services.ArangoDBInfraService",
"description" : "ArangoDB is a multi-model database for high-performance
applications.",
"implementation" :
"org.apache.camel.test.infra.arangodb.services.ArangoDBLocalContainerInfraService",
"alias" : [ "arangodb" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-arangodb",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" : "org.apache.camel.test.infra.ftp.services.FtpInfraService",
"description" : "Embedded FTP Server",
"implementation" :
"org.apache.camel.test.infra.ftp.services.embedded.FtpEmbeddedInfraService",
"alias" : [ "ftp" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-ftp",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.rabbitmq.services.RabbitMQInfraService",
"description" : "Messaging and streaming broker",
"implementation" :
"org.apache.camel.test.infra.rabbitmq.services.RabbitMQLocalContainerInfraService",
"alias" : [ "rabbitmq" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-rabbitmq",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.mosquitto.services.MosquittoInfraService",
"description" : "Mosquitto is a message broker that implements MQTT
protocol",
"implementation" :
"org.apache.camel.test.infra.mosquitto.services.MosquittoLocalContainerInfraService",
"alias" : [ "mosquitto" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-mosquitto",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.rocketmq.services.RocketMQInfraService",
"description" : "Apache RocketMQ is a distributed messaging and streaming
platform",
"implementation" :
"org.apache.camel.test.infra.rocketmq.services.RocketMQContainerInfraService",
"alias" : [ "rocketmq" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-rocketmq",
+ "version" : "4.10.0-SNAPSHOT"
}, {
"service" :
"org.apache.camel.test.infra.mongodb.services.MongoDBInfraService",
"description" : "MongoDB NoSql Database",
"implementation" :
"org.apache.camel.test.infra.mongodb.services.MongoDBLocalContainerInfraService",
"alias" : [ "mongodb" ],
- "aliasImplementation" : [ ]
+ "aliasImplementation" : [ ],
+ "groupId" : "org.apache.camel",
+ "artifactId" : "camel-test-infra-mongodb",
+ "version" : "4.10.0-SNAPSHOT"
} ]
\ No newline at end of file
diff --git
a/test-infra/camel-test-infra-ignite/src/main/java/org/apache/camel/test/infra/ignite/services/IgniteEmbeddedInfraService.java
b/test-infra/camel-test-infra-ignite/src/main/java/org/apache/camel/test/infra/ignite/services/IgniteEmbeddedInfraService.java
index 90b6524cac8..abb9314866a 100644
---
a/test-infra/camel-test-infra-ignite/src/main/java/org/apache/camel/test/infra/ignite/services/IgniteEmbeddedInfraService.java
+++
b/test-infra/camel-test-infra-ignite/src/main/java/org/apache/camel/test/infra/ignite/services/IgniteEmbeddedInfraService.java
@@ -20,6 +20,7 @@ package org.apache.camel.test.infra.ignite.services;
import java.util.Collections;
import java.util.UUID;
+import org.apache.camel.spi.annotations.InfraService;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.IgniteConfiguration;
@@ -31,6 +32,9 @@ import
org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@InfraService(service = IgniteInfraService.class,
+ description = "Distributed Database Apache Ignite",
+ serviceAlias = "ignite")
public class IgniteEmbeddedInfraService implements IgniteInfraService {
private static final Logger LOG =
LoggerFactory.getLogger(IgniteEmbeddedInfraService.class);
diff --git
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/CamelTestInfraGenerateMetadataMojo.java
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/CamelTestInfraGenerateMetadataMojo.java
index 9358b13aae0..90a59036458 100644
---
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/CamelTestInfraGenerateMetadataMojo.java
+++
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/CamelTestInfraGenerateMetadataMojo.java
@@ -20,9 +20,12 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
import javax.inject.Inject;
@@ -31,6 +34,7 @@ import com.fasterxml.jackson.databind.SerializationFeature;
import org.apache.camel.maven.packaging.generics.PackagePluginUtils;
import org.apache.camel.spi.annotations.InfraService;
import org.apache.camel.tooling.util.FileUtil;
+import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -72,8 +76,25 @@ public class CamelTestInfraGenerateMetadataMojo extends
AbstractGeneratorMojo {
for (AnnotationInstance ai :
PackagePluginUtils.readJandexIndexQuietly(project).getAnnotations(INFRA_SERVICE))
{
InfrastructureServiceModel infrastructureServiceModel = new
InfrastructureServiceModel();
+ String targetClass = ai.target().toString();
+
+ infrastructureServiceModel.setImplementation(targetClass);
+
+ try {
+ // Search for target class in the project transitive artifacts
to retrieve maven coordinates
+ for (Artifact artifact : project.getArtifacts()) {
+ if (classExistsInJarFile(
+ targetClass.substring(targetClass.lastIndexOf(".")
+ 1),
+ artifact.getFile())) {
+
infrastructureServiceModel.setVersion(artifact.getVersion());
+
infrastructureServiceModel.setGroupId(artifact.getGroupId());
+
infrastructureServiceModel.setArtifactId(artifact.getArtifactId());
+ }
+ }
+ } catch (IOException e) {
+ throw new RuntimeException("Error reading jar file", e);
+ }
-
infrastructureServiceModel.setImplementation(ai.target().toString());
for (AnnotationValue av : ai.values()) {
if (av.name().equals("service")) {
infrastructureServiceModel.setService(av.asString());
@@ -100,18 +121,34 @@ public class CamelTestInfraGenerateMetadataMojo extends
AbstractGeneratorMojo {
FileUtil.updateFile(generatedResourcesOutputDir.toPath()
.resolve("META-INF")
- .resolve("test-infra-metadata.json"), modelsAsJson);
+ .resolve("metadata.json"), modelsAsJson);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
+ private boolean classExistsInJarFile(String className, File dependency)
throws IOException {
+ try (JarFile jarFile = new JarFile(dependency)) {
+ Enumeration<JarEntry> e = jarFile.entries();
+ while (e.hasMoreElements()) {
+ JarEntry jarEntry = e.nextElement();
+ if (jarEntry.getName().contains(className)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ }
+
private class InfrastructureServiceModel {
private String service;
private String description;
private String implementation;
private List<String> alias = new ArrayList<>();
private List<String> aliasImplementation = new ArrayList<>();
+ private String groupId;
+ private String artifactId;
+ private String version;
public String getService() {
return service;
@@ -152,5 +189,29 @@ public class CamelTestInfraGenerateMetadataMojo extends
AbstractGeneratorMojo {
public void setDescription(String description) {
this.description = description;
}
+
+ public String getGroupId() {
+ return groupId;
+ }
+
+ public void setGroupId(String groupId) {
+ this.groupId = groupId;
+ }
+
+ public String getArtifactId() {
+ return artifactId;
+ }
+
+ public void setArtifactId(String artifactId) {
+ this.artifactId = artifactId;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
}
}
diff --git
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateTestInfraMetadataMojo.java
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateTestInfraMetadataMojo.java
new file mode 100644
index 00000000000..c45596818c5
--- /dev/null
+++
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateTestInfraMetadataMojo.java
@@ -0,0 +1,71 @@
+/*
+ * 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.io.IOException;
+
+import javax.inject.Inject;
+
+import org.apache.camel.tooling.util.FileUtil;
+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.apache.maven.project.MavenProjectHelper;
+import org.codehaus.plexus.build.BuildContext;
+
+import static org.apache.camel.tooling.util.PackageHelper.findCamelDirectory;
+
+/**
+ * Copy test-infra metadata.json into the catalog
+ */
+@Mojo(name = "update-test-infra-metadata", threadSafe = true,
+ requiresDependencyResolution = ResolutionScope.COMPILE, defaultPhase =
LifecyclePhase.PROCESS_CLASSES)
+public class UpdateTestInfraMetadataMojo extends AbstractGeneratorMojo {
+
+ @Parameter(defaultValue =
"${project.basedir}/src/generated/resources/org/apache/camel/catalog/")
+ protected File propertiesDir;
+
+ @Parameter(defaultValue = "${project.basedir}/")
+ protected File baseDir;
+
+ @Inject
+ protected UpdateTestInfraMetadataMojo(MavenProjectHelper projectHelper,
BuildContext buildContext) {
+ super(projectHelper, buildContext);
+ }
+
+ @Override
+ public void execute() throws MojoExecutionException, MojoFailureException {
+ File testInfraAll = findCamelDirectory(baseDir,
"test-infra/camel-test-infra-all");
+ if (testInfraAll == null) {
+ getLog().debug("No test-infra/camel-test-infra-all folder found,
skipping execution");
+ return;
+ }
+
+ File source = new File(testInfraAll,
"src/generated/resources/META-INF/metadata.json");
+ File target = new File(propertiesDir, "test-infra/metadata.json");
+
+ try {
+ FileUtil.updateFile(source.toPath(), target.toPath());
+ } catch (IOException e) {
+ throw new MojoExecutionException("Error updating camel-catalog",
e);
+ }
+ }
+}