Repository navigation
CAMEL-25895: camel-openstack - align the remaining Swift header constants with the Camel naming convention - #28231
Conversation
|
🌟 Thank you for your contribution to the Apache Camel project! 🌟 🐫 Apache Camel Committers, please review the following items:
|
gnodet-bot
left a comment
There was a problem hiding this comment.
Good cleanup — renaming the constants to the Camel naming convention is the right call. One small item on the stale description:
This review was generated by an AI agent, Hermès on behalf of @gnodet.
davsclaus
left a comment
There was a problem hiding this comment.
Thanks Zineb, this looks good. The premise checks out: ContainerProducer.messageToCreateUpdateOptions only hands the values to openstack4j's CreateUpdateContainerOptions (metadata(...), versionsLocation(...), accessRead(...), accessWrite(...)), and in openstack4j-core 3.12 those methods put the X-Container-Meta-*, X-Versions-Location, X-Container-Read and X-Container-Write names on the request themselves. So the Exchange header key never reaches Swift and the rename does not change the wire request. Calling out explicitly that this partly reverses CAMEL-23580, and why, is appreciated.
Conventions check: the commit, branch and JIRA linkage follow the project guidelines. The 4.24 upgrade-guide entry covers what design/headers.adoc asks for on a header rename: the old -> new table, the renamed Endpoint DSL accessors, that code using the Java constants is unaffected, and that literal header strings must be updated. The generated artefacts are in the PR (component and catalog openstack-swift.json, SwiftEndpointBuilderFactory); the component doc only pulls the headers in through component-endpoint-headers.adoc, so the catalog doc mirror has nothing to change. No other references to the old values remain outside the upgrade guides and the test. The new tests stay in the module's JUnit + Mockito style, and the two that pin the values fail on the old code.
Non-blocking notes:
- gnodet-bot's open thread on
SwiftConstants.CONTAINER_METADATA_PREFIXis still valid: the descriptionContainer metadata prefix.described the oldX-Container-Meta-prefix, while the header now holds aMap<String, String>of metadata. A hint:Container metadata.(or something likeThe container metadata, as a map of name to value.). Changing it means regenerating the two JSON files and the Endpoint DSL again. - For the backports, per the backport upgrade-guide policy:
camel-4x-upgrade-guide-4_22.adoconmainhas nothing about this yet, and the 4.18 note currently points to CAMEL-25895. When the 4.22.x and 4.18.x ports land, the rename table with the exact patch version should go into both guides onmainas well.
CI: the build jobs are still running.
This review covers project rules and conventions only. It does not replace CodeRabbit, Sourcery or SonarCloud.
Claude Code on behalf of Claus Ibsen
This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.
…ants with the Camel naming convention CAMEL-23580 renamed the camel-openstack Exchange header constants to the CamelOpenstack* convention, but left four of them in SwiftConstants on their openstack4j values, on the understanding that those values are part of the Swift HTTP contract: CONTAINER_METADATA_PREFIX X-Container-Meta- -> CamelOpenstackSwiftContainerMetadata VERSIONS_LOCATION X-Versions-Location -> CamelOpenstackSwiftVersionsLocation CONTAINER_READ X-Container-Read -> CamelOpenstackSwiftContainerRead CONTAINER_WRITE X-Container-Write -> CamelOpenstackSwiftContainerWrite They are not. ContainerProducer passes the values to the openstack4j CreateUpdateContainerOptions, which builds the X-Container-Meta-, X-Versions-Location, X-Container-Read and X-Container-Write names of the Swift request itself, so the Exchange header key never reaches Swift and the request on the wire is unchanged by this rename. This commit therefore partly reverses the decision taken in CAMEL-23580, because the reason recorded for it does not hold. The Java field names are unchanged, so routes that reference the constants symbolically keep working. Routes that set one of these headers by its literal string value must move to the new value; the 4.24 upgrade guide carries the table, the note that the Swift request is unchanged, and the renamed Endpoint DSL accessors. design/headers.adoc listed Swift under the protocol-header exemption and pointed at these four constants as the worked example. It now states that the exemption applies only when the header name the route sets is the name that goes on the wire, which is not the case when a client library builds the wire name itself. ContainerProducerTest had no coverage of the container options path at all; six tests are added for it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Zineb Bendhiba <bendhiba.zineb@gmail.com>
5b47dc7 to
747564a
Compare
gnodet-bot
left a comment
There was a problem hiding this comment.
Following up on my earlier review — the stale description finding is addressed.
The @Metadata description for CONTAINER_METADATA_PREFIX has been updated from "Container metadata prefix." to "The container metadata." ✅
Previous findings: all addressed. No new issues in the latest commits. LGTM.
This review was generated by an AI agent, Hermès on behalf of @gnodet.
davsclaus
left a comment
There was a problem hiding this comment.
Thanks Zineb. Re-reviewed after the force-push: compared with 5b47dc7, the only change is the @Metadata description of SwiftConstants.CONTAINER_METADATA_PREFIX, now The container metadata.. It is regenerated in both openstack-swift.json files and in SwiftEndpointBuilderFactory. That covers gnodet-bot's stale-description point. The upgrade-guide entries, design/headers.adoc and the tests are as before. My earlier note about adding the rename to the 4.22 and 4.18 guides on main still applies once the backports land.
LGTM, once CI is green.
This review was generated by an AI agent (Claude Code on behalf of davsclaus) and may contain inaccuracies. Please verify all suggestions before applying.
|
🧪 CI tested the following changed modules:
🔁 6 tests passed only after a retry on JDK 25 (6 retried attempts) Recovered flaky tests on JDK 25 (6)
🔬 Scalpel shadow comparison — Scalpel: 680 of 707 tested, 24 compile-only — current: 8 all testedMaveniverse Scalpel detected 680 affected modules (current approach: 8). Skip-tests mode would test 680 modules (5 direct + 678 downstream), skip tests for 24 (generated code, meta-modules)
|
| Module | Duration | Status |
|---|---|---|
| Camel :: Consul | 58.1s | SUCCESS |
| Camel :: Telegram | 57.7s | SUCCESS |
| Camel :: JMX | 57.1s | SUCCESS |
| Camel :: Netty | 56.2s | SUCCESS |
| Camel :: MLLP | 56.1s | SUCCESS |
| Camel :: JBang :: Plugin :: TUI | 55.7s | SUCCESS |
| Camel :: DSL :: CLI Connector | 53.9s | SUCCESS |
| Camel :: Infinispan :: Remote | 53.9s | SUCCESS |
| Camel :: Long-Running-Action | 53.9s | SUCCESS |
| Camel :: MINA | 53.5s | SUCCESS |
| Camel :: Test Infra :: Common | 50.8s | SUCCESS |
| Camel :: AWS2 Bedrock | 49.8s | SUCCESS |
| Camel :: CyberArk Vault | 49.3s | SUCCESS |
| Camel :: PQC | 47.4s | SUCCESS |
| Camel :: Simple JMS | 47.4s | SUCCESS |
| Camel :: AI :: MCP Server | 46.7s | SUCCESS |
| Camel :: Endpoint DSL | 45.7s | SUCCESS |
| Camel :: AWS2 Kinesis | 45.4s | SUCCESS |
| Camel :: Lumberjack | 44.0s | SUCCESS |
| Camel :: AI :: LangChain4j :: Embedding | 43.1s | SUCCESS |
| Camel :: OpenApi Java | 42.5s | SUCCESS |
| Camel :: Paho MQTT 5 | 41.5s | SUCCESS |
| Camel :: Opentelemetry Metrics | 40.4s | SUCCESS |
| Camel :: Reactive Streams | 39.9s | SUCCESS |
| Camel :: SQL | 39.8s | SUCCESS |
| Camel :: Launcher | 39.2s | SUCCESS |
| Camel :: JPA | 39.1s | SUCCESS |
| Camel :: DataSonnet | 38.6s | SUCCESS |
| Camel :: Main | 37.9s | SUCCESS |
| Camel :: Azure :: Storage Blob | 36.9s | SUCCESS |
| Camel :: CXF :: SOAP | 36.7s | SUCCESS |
| Camel :: Slack | 36.6s | SUCCESS |
| Camel :: Reactor | 36.1s | SUCCESS |
| Camel :: Tar File | 35.4s | SUCCESS |
| Camel :: Micrometer :: Observation (deprecated) | 34.6s | SUCCESS |
| Camel :: Atom | 34.3s | SUCCESS |
| Camel :: AS2 :: Component | 34.0s | SUCCESS |
| Camel :: Kafka :: Share | 32.6s | SUCCESS |
| Camel :: ActiveMQ 5.x | 32.3s | SUCCESS |
| Camel :: AI :: Neo4j | 31.5s | SUCCESS |
| Camel :: HiveMQ | 31.5s | SUCCESS |
| Camel :: Resilience4j | 31.4s | SUCCESS |
| Camel :: ActiveMQ 6.x | 31.0s | SUCCESS |
| Camel :: Component DSL | 30.7s | SUCCESS |
| Camel :: Quartz | 30.0s | SUCCESS |
| Camel :: Jetty | 29.6s | SUCCESS |
| Camel :: CouchDB | 28.7s | SUCCESS |
| Camel :: Tahu | 28.7s | SUCCESS |
| Camel :: JBang :: MCP | 28.6s | SUCCESS |
| Camel :: JBang :: Plugin :: Validate | 28.5s | SUCCESS |
| Camel :: MyBatis | 27.0s | SUCCESS |
| Camel :: ElasticSearch Rest Client | 26.3s | SUCCESS |
| Camel :: JIRA | 26.2s | SUCCESS |
| Camel :: Undertow | 26.2s | SUCCESS |
| Camel :: AWS2 DDB | 25.7s | SUCCESS |
| Camel :: jOOR | 25.7s | SUCCESS |
| Camel :: AI :: Milvus | 25.4s | SUCCESS |
| Camel :: Knative HTTP | 24.9s | SUCCESS |
| Camel :: Console | 24.2s | SUCCESS |
| Camel :: Olingo4 (Deprecated) :: Component | 24.1s | SUCCESS |
| Camel :: Test :: Spring :: JUnit6 | 24.0s | SUCCESS |
| Camel :: Metrics | 23.3s | SUCCESS |
| Camel :: RSS | 23.3s | SUCCESS |
| Camel :: Zip File | 23.0s | SUCCESS |
| Camel :: Event | 22.7s | SUCCESS |
| Camel :: OpenTelemetry (deprecated) | 22.3s | SUCCESS |
| Camel :: Salesforce | 21.6s | SUCCESS |
| Camel :: OPA | 21.4s | SUCCESS |
| Camel :: OpenFGA | 21.1s | SUCCESS |
| Camel :: AWS2 Lambda | 21.0s | SUCCESS |
| Camel :: Test :: Spring :: JUnit5 | 20.8s | SUCCESS |
| Camel :: ClickHouse | 20.7s | SUCCESS |
| Camel :: AI :: Weaviate | 20.6s | SUCCESS |
| Camel :: Google :: Storage | 20.5s | SUCCESS |
| Camel :: AI :: OpenAI | 20.5s | SUCCESS |
| Camel :: Azure :: Storage Queue | 20.3s | SUCCESS |
| Camel :: SSH | 20.1s | SUCCESS |
| Camel :: AI :: LangChain4j :: EmbeddingStore | 20.1s | SUCCESS |
| Camel :: AWS2 Secrets Manager | 20.0s | SUCCESS |
| Camel :: PgEvent | 20.0s | SUCCESS |
| Camel :: Java DSL IO | 19.9s | SUCCESS |
| Camel :: Huawei Cloud :: OBS | 19.6s | SUCCESS |
| Camel :: MicroProfile :: Fault Tolerance | 19.3s | SUCCESS |
| Camel :: Jsch | 19.2s | SUCCESS |
| Camel :: SPIFFE | 19.0s | SUCCESS |
| Camel :: Ignite | 18.9s | SUCCESS |
| Camel :: Micrometer | 18.9s | SUCCESS |
| Camel :: DFDL | 18.5s | SUCCESS |
| Camel :: Spring Redis | 18.5s | SUCCESS |
| Camel :: Spring RabbitMQ | 18.4s | SUCCESS |
| Camel :: Solr | 18.3s | SUCCESS |
| Camel :: Azure :: Event Hubs | 18.2s | SUCCESS |
| Camel :: AI :: A2A | 18.0s | SUCCESS |
| Camel :: JAXB | 18.0s | SUCCESS |
| Camel :: AWS2 IAM | 17.7s | SUCCESS |
| Camel :: Test :: JUnit6 | 17.7s | SUCCESS |
| Camel :: Alibaba Cloud :: OSS | 17.6s | SUCCESS |
| Camel :: Python 3 | 17.6s | SUCCESS |
| Camel :: Docs | 17.3s | SUCCESS |
| Camel :: Bindy | 17.3s | SUCCESS |
| Camel :: XML Security | 17.0s | SUCCESS |
| Camel :: Platform HTTP :: Vert.x | 16.9s | SUCCESS |
| Camel :: Smooks :: Parent | 16.9s | SUCCESS |
| Camel :: OAuth | 16.8s | SUCCESS |
| Camel :: Google :: Mail | 16.8s | SUCCESS |
| Camel :: AI :: LangChain4j :: Ingest | 16.6s | SUCCESS |
| Camel :: AI :: TensorFlow Serving | 16.3s | SUCCESS |
| Camel :: SMPP | 15.9s | SUCCESS |
| Camel :: Couchbase | 15.6s | SUCCESS |
| Camel :: YAML DSL :: Validator | 15.5s | SUCCESS |
| Camel :: QuickJS | 15.3s | SUCCESS |
| Camel :: YAML DSL | 15.1s | SUCCESS |
| Camel :: MinIO (Deprecated) | 14.9s | SUCCESS |
| Camel :: Catalog :: Camel Catalog | 14.8s | SUCCESS |
| Camel :: XML DSL with camel-xml-io | 14.8s | SUCCESS |
| Camel :: StAX | 14.6s | SUCCESS |
| Camel :: HL7 | 14.5s | SUCCESS |
| Camel :: AWS2 KMS | 14.4s | SUCCESS |
| Camel :: MongoDB GridFS | 14.3s | SUCCESS |
| Camel :: JCR | 14.1s | SUCCESS |
| Camel :: Debezium :: Common | 13.9s | SUCCESS |
| Camel :: JCache | 13.8s | SUCCESS |
| Camel :: UniVocity Parsers | 13.8s | SUCCESS |
| Camel :: Docker | 13.8s | SUCCESS |
| Camel :: AI :: ChatScript | 13.7s | SUCCESS |
| Camel :: OAIPMH | 13.4s | SUCCESS |
| Camel :: Syslog | 13.2s | SUCCESS |
| Camel :: Test :: JUnit5 | 13.2s | SUCCESS |
| Camel :: Paho (deprecated) | 13.2s | SUCCESS |
| Camel :: WAL | 13.2s | SUCCESS |
| Camel :: Flink | 13.1s | SUCCESS |
| Camel :: AI :: Semantic Evaluation | 13.0s | SUCCESS |
| Camel :: AWS2 Parameter Store | 12.9s | SUCCESS |
| Camel :: REST OpenApi | 12.9s | SUCCESS |
| Camel :: Spring Web Services | 12.8s | SUCCESS |
| Camel :: AMQP | 12.8s | SUCCESS |
| Camel :: AI :: MCP Server API | 12.8s | SUCCESS |
| Camel :: AWS2 EC2 | 12.6s | SUCCESS |
| Camel :: AWS2 SNS | 12.6s | SUCCESS |
| Camel :: Wasm | 12.5s | SUCCESS |
| Camel :: Test :: Citrus | 12.4s | SUCCESS |
| Camel :: Stream | 11.7s | SUCCESS |
| Camel :: Kamelet | 11.7s | SUCCESS |
| Camel :: JGroups Raft | 11.5s | SUCCESS |
| Camel :: Salesforce :: Maven Plugin | 11.5s | SUCCESS |
| Camel :: AI :: PGVector | 11.4s | SUCCESS |
| Camel :: Dynamic Router | 11.4s | SUCCESS |
| Camel :: QuickFIX/J | 11.4s | SUCCESS |
| Camel :: AI :: Docling | 11.1s | SUCCESS |
| Camel :: LDIF | 11.1s | SUCCESS |
| Camel :: Cometd | 10.9s | SUCCESS |
| Camel :: Protobuf | 10.8s | SUCCESS |
| Camel :: AI :: Qdrant | 10.6s | SUCCESS |
| Camel :: FlatPack | 10.5s | SUCCESS |
| Camel :: CSV | 10.5s | SUCCESS |
| Camel :: AI :: TypeSafe AI | 10.4s | SUCCESS |
| Camel :: RocketMQ | 10.3s | SUCCESS |
| Camel :: Groovy | 10.2s | SUCCESS |
| Camel :: File Watch | 10.2s | SUCCESS |
| Camel :: Servlet | 10.0s | SUCCESS |
| Camel :: MDC | 9.9s | SUCCESS |
| Camel :: Crypto | 9.6s | SUCCESS |
| Camel :: IBM :: Cloud Object Storage | 9.6s | SUCCESS |
| Camel :: JBang :: Plugin :: Kubernetes | 9.6s | SUCCESS |
| Camel :: CM SMS | 9.6s | SUCCESS |
| Camel :: Exec | 9.5s | SUCCESS |
| Camel :: Saxon | 9.5s | SUCCESS |
| Camel :: Vert.x :: HTTP | 9.3s | SUCCESS |
| Camel :: gRPC | 9.3s | SUCCESS |
| Camel :: JTA | 9.3s | SUCCESS |
| Camel :: AWS2 S3 Vectors | 9.2s | SUCCESS |
| Camel :: JSon Path | 9.2s | SUCCESS |
| Camel :: OpenFeature | 9.2s | SUCCESS |
| Camel :: AWS Rekognition | 9.1s | SUCCESS |
| Camel :: Atmosphere WebSocket Servlet | 9.1s | SUCCESS |
| Camel :: GitHub2 | 9.0s | SUCCESS |
| Camel :: Git | 9.0s | SUCCESS |
| Camel :: XSLT Saxon | 8.9s | SUCCESS |
| Camel :: Util | 8.8s | SUCCESS |
| Camel :: Bonita | 8.7s | SUCCESS |
| Camel :: AWS2 Eventbridge | 8.7s | SUCCESS |
| Camel :: JOOQ | 8.7s | SUCCESS |
| Camel :: Crypto PGP | 8.7s | SUCCESS |
| Camel :: Wordpress | 8.7s | SUCCESS |
| Camel :: Redis | 8.3s | SUCCESS |
| Camel :: Tika | 8.1s | SUCCESS |
| Camel :: AI :: LangChain4j :: Agent | 8.1s | SUCCESS |
| Camel :: OpenStack | 8.0s | SUCCESS |
| Camel :: AWS2 ECS | 7.8s | SUCCESS |
| Camel :: XML IO | 7.7s | SUCCESS |
| Camel :: AWS Config | 7.7s | SUCCESS |
| Camel :: RobotFramework | 7.7s | SUCCESS |
| Camel :: Azure :: Storage Datalake | 7.6s | SUCCESS |
| Camel :: Olingo4 (Deprecated) :: API | 7.5s | SUCCESS |
| Camel :: Web3j | 7.5s | SUCCESS |
| Camel :: OCSF | 7.5s | SUCCESS |
| Camel :: Dapr | 7.5s | SUCCESS |
| Camel :: Drill | 7.4s | SUCCESS |
| Camel :: AWS Timestream | 7.4s | SUCCESS |
| Camel :: AWS2 SES | 7.4s | SUCCESS |
| Camel :: Kamelet Main | 7.4s | SUCCESS |
| Camel :: Thymeleaf | 7.3s | SUCCESS |
| Camel :: PgReplicationSlot | 7.2s | SUCCESS |
| Camel :: Jackson | 7.2s | SUCCESS |
| Camel :: Tooling :: OpenApi REST DSL Generator | 7.2s | SUCCESS |
| Camel :: AWS2 Athena | 7.2s | SUCCESS |
| Camel :: Webhook | 7.1s | SUCCESS |
| Camel :: Spring AI :: Chat | 7.0s | SUCCESS |
| Camel :: Jackson XML | 7.0s | SUCCESS |
| Camel :: AWS2 STS | 6.8s | SUCCESS |
| Camel :: HashiCorp :: Key Vault | 6.8s | SUCCESS |
| Camel :: AWS2 :: Transcribe | 6.7s | SUCCESS |
| Camel :: AWS2 EKS | 6.7s | SUCCESS |
| Camel :: Platform HTTP | 6.7s | SUCCESS |
| Camel :: Jackson 3 XML | 6.5s | SUCCESS |
| Camel :: SnakeYAML | 6.5s | SUCCESS |
| Camel :: Lucene | 6.3s | SUCCESS |
| Camel :: XJ | 6.3s | SUCCESS |
| Camel :: Ehcache | 6.3s | SUCCESS |
| Camel :: AS2 :: API | 6.2s | SUCCESS |
| Camel :: SNMP | 6.2s | SUCCESS |
| Camel :: XML DSL Jaxb :: Test :: Spring | 6.1s | SUCCESS |
| Camel :: BeanIO | 6.0s | SUCCESS |
| Camel :: Spring AI :: Vector Store | 6.0s | SUCCESS |
| Camel :: SOAP | 6.0s | SUCCESS |
| Camel :: Spring AI :: Embeddings | 5.9s | SUCCESS |
| Camel :: DuckDB | 5.8s | SUCCESS |
| Camel :: DNS | 5.8s | SUCCESS |
| Camel :: OpenAPI :: Validator | 5.8s | SUCCESS |
| Camel :: AI :: Semantic Wolf Defender | 5.8s | SUCCESS |
| Camel :: AWS2 CW | 5.7s | SUCCESS |
| Camel :: Stitch | 5.6s | SUCCESS |
| Camel :: AWS Step Functions | 5.6s | SUCCESS |
| Camel :: Gson | 5.6s | SUCCESS |
| Camel :: Caffeine | 5.4s | SUCCESS |
| Camel :: PLC4X | 5.4s | SUCCESS |
| Camel :: Catalog :: Camel Report Maven Plugin | 5.4s | SUCCESS |
| Camel :: Jackson 3 | 5.4s | SUCCESS |
| Camel :: SWIFT | 5.4s | SUCCESS |
| Camel :: Google :: Functions | 5.4s | SUCCESS |
| Camel :: XMPP | 5.3s | SUCCESS |
| Camel :: Flowable | 5.3s | SUCCESS |
| Camel :: Kudu | 5.3s | SUCCESS |
| Camel :: Google :: Sheets | 5.3s | SUCCESS |
| Camel :: Dropbox | 5.3s | SUCCESS |
| Camel :: Freemarker | 5.2s | SUCCESS |
| Camel :: Twilio | 5.2s | SUCCESS |
| Camel :: CXF :: REST | 5.2s | SUCCESS |
| Camel :: AWS Security Hub | 5.2s | SUCCESS |
| Camel :: Java DSL with jOOR | 5.1s | SUCCESS |
| Camel :: JavaScript | 5.1s | SUCCESS |
| Camel :: Parquet Avro | 5.0s | SUCCESS |
| Camel :: Google :: Drive | 5.0s | SUCCESS |
| Camel :: Spring Security | 5.0s | SUCCESS |
| Camel :: ClickUp | 5.0s | SUCCESS |
| Camel :: InfluxDB2 | 5.0s | SUCCESS |
| Camel :: XML DSL with camel-xml-jaxb | 4.9s | SUCCESS |
| Camel :: Jasypt | 4.9s | SUCCESS |
| Camel :: XML DSL Jaxb :: Test :: Definition | 4.9s | SUCCESS |
| Camel :: JBang :: Plugin :: Testing | 4.9s | SUCCESS |
| Camel :: Box :: Component | 4.9s | SUCCESS |
| Camel :: Test :: Main :: JUnit6 | 4.8s | SUCCESS |
| Camel :: Platform HTTP :: Main | 4.8s | SUCCESS |
| Camel :: Splunk HEC | 4.8s | SUCCESS |
| Camel :: Azure :: ServiceBus | 4.8s | SUCCESS |
| Camel :: Maven Plugins :: Camel Maven Package | 4.7s | SUCCESS |
| Camel :: JDBC | 4.7s | SUCCESS |
| Camel :: AI :: LangChain4j :: Agent :: API | 4.6s | SUCCESS |
| Camel :: AI :: Pinecone | 4.6s | SUCCESS |
| Camel :: AWS Redshift Data | 4.6s | SUCCESS |
| Camel :: Test :: Main :: JUnit5 | 4.6s | SUCCESS |
| Camel :: REST Postman | 4.6s | SUCCESS |
| Camel :: CXF :: Transport :: Spring | 4.5s | SUCCESS |
| Camel :: Velocity | 4.5s | SUCCESS |
| Camel :: Google :: BigQuery | 4.5s | SUCCESS |
| Camel :: PubNub | 4.5s | SUCCESS |
| Camel :: Test :: DST | 4.4s | SUCCESS |
| Camel :: Google :: Vertex AI | 4.4s | SUCCESS |
| Camel :: Grok | 4.4s | SUCCESS |
| Camel :: Test Infra :: All test services | 4.4s | SUCCESS |
| Camel :: Iggy | 4.4s | SUCCESS |
| Camel :: Spring Main | 4.4s | SUCCESS |
| Camel :: HTTP :: Common | 4.3s | SUCCESS |
| Camel :: Core XML | 4.3s | SUCCESS |
| Camel :: Olingo2 (Deprecated) :: Component | 4.3s | SUCCESS |
| Camel :: Tooling :: Maven | 4.3s | SUCCESS |
| Camel :: UBL | 4.3s | SUCCESS |
| Camel :: FOP | 4.3s | SUCCESS |
| Camel :: Twitter | 4.2s | SUCCESS |
| Camel :: AI :: KServe | 4.2s | SUCCESS |
| Camel :: Spring Batch | 4.2s | SUCCESS |
| Camel :: Whatsapp | 4.1s | SUCCESS |
| Camel :: REST | 4.1s | SUCCESS |
| Camel :: AWS2 MQ | 4.0s | SUCCESS |
| Camel :: YAML IO | 4.0s | SUCCESS |
| Camel :: CXF :: Transport | 4.0s | SUCCESS |
| Camel :: AI :: LangChain4j :: Chat | 3.9s | SUCCESS |
| Camel :: AWS2 Comprehend | 3.9s | SUCCESS |
| Camel :: JSON validator | 3.9s | SUCCESS |
| Camel :: Huawei Cloud :: DMS | 3.9s | SUCCESS |
| Camel :: Jactl | 3.9s | SUCCESS |
| Camel :: AWS2 Translate | 3.9s | SUCCESS |
| Camel :: Camunda | 3.8s | SUCCESS |
| Camel :: Maven Plugins :: Camel API Component Plugin | 3.8s | SUCCESS |
| Camel :: Diagram | 3.8s | SUCCESS |
| Camel :: Catalog :: Suggest (deprecated) | 3.8s | SUCCESS |
| Camel :: Schematron | 3.8s | SUCCESS |
| Camel :: AWS2 MSK | 3.8s | SUCCESS |
| Camel :: Barcode | 3.7s | SUCCESS |
| Camel :: Spring AI :: Image | 3.7s | SUCCESS |
| Camel :: AI :: Semantic TypeSafe AI | 3.6s | SUCCESS |
| Camel :: Geocoder | 3.6s | SUCCESS |
| Camel :: Simple JMS2 | 3.6s | SUCCESS |
| Camel :: Weather | 3.6s | SUCCESS |
| Camel :: Maven Plugins :: Repackager | 3.6s | SUCCESS |
| Camel :: Debezium :: Maven Plugin | 3.6s | SUCCESS |
| Camel :: Huawei Cloud :: FaceRecognition | 3.6s | SUCCESS |
| Camel :: CBOR | 3.5s | SUCCESS |
| Camel :: Spring LDAP | 3.5s | SUCCESS |
| Camel :: Base64 | 3.5s | SUCCESS |
| Camel :: JQ | 3.5s | SUCCESS |
| Camel :: Once | 3.5s | SUCCESS |
| Camel :: ISO-8583 | 3.5s | SUCCESS |
| Camel :: Vertx | 3.4s | SUCCESS |
| Camel :: Printer | 3.4s | SUCCESS |
| Camel :: Google :: Firestore | 3.3s | SUCCESS |
| Camel :: Jackson 3 Protobuf | 3.3s | SUCCESS |
| Camel :: Azure :: CosmosDB | 3.3s | SUCCESS |
| Camel :: Bean validator | 3.3s | SUCCESS |
| Camel :: Test Infra :: DuckDB | 3.2s | SUCCESS |
| Camel :: Fory | 3.2s | SUCCESS |
| Camel :: ASN.1 | 3.2s | SUCCESS |
| Camel :: Launcher :: Container | 3.2s | SUCCESS |
| Camel :: Spring JDBC | 3.2s | SUCCESS |
| Camel :: State Store | 3.1s | SUCCESS |
| Camel :: TOON | 3.1s | SUCCESS |
| Camel :: OData | 3.1s | SUCCESS |
| Camel :: Bean | 3.1s | SUCCESS |
| Camel :: AWS CloudTrail | 3.1s | SUCCESS |
| Camel :: InfluxDB | 3.1s | SUCCESS |
| Camel :: Zip Deflater | 3.1s | SUCCESS |
| Camel :: YAML DSL :: Common | 3.0s | SUCCESS |
| Camel :: Workday | 3.0s | SUCCESS |
| Camel :: MicroProfile :: Health | 3.0s | SUCCESS |
| Camel :: Avro | 3.0s | SUCCESS |
| Camel :: GraphQL | 3.0s | SUCCESS |
| Camel :: JSON-B | 3.0s | SUCCESS |
| Camel :: DataWeave | 3.0s | SUCCESS |
| Camel :: AWS2 Polly | 3.0s | SUCCESS |
| Camel :: AWS2 Textract | 3.0s | SUCCESS |
| Camel :: Alibaba Cloud :: EventBridge | 3.0s | SUCCESS |
| Camel :: Python | 3.0s | SUCCESS |
| Camel :: Azure :: Files | 3.0s | SUCCESS |
| Camel :: Test Infra :: Couchbase | 2.9s | SUCCESS |
| Camel :: Jackson 3 Avro | 2.9s | SUCCESS |
| Camel :: Java Flight Recorder | 2.9s | SUCCESS |
| Camel :: File | 2.9s | SUCCESS |
| Camel :: Catalog :: Camel Route Parser | 2.8s | SUCCESS |
| Camel :: Support | 2.8s | SUCCESS |
| Camel :: AI :: Tool | 2.8s | SUCCESS |
| Camel :: Maven Plugins :: XML DSL Doc Enricher | 2.8s | SUCCESS |
| Camel :: Google :: Calendar | 2.8s | SUCCESS |
| Camel :: Alibaba Cloud :: Simple Log Service (SLS) | 2.8s | SUCCESS |
| Camel :: Alibaba Cloud :: Tablestore (OTS) | 2.7s | SUCCESS |
| Camel :: Common Tracing (deprecated) | 2.7s | SUCCESS |
| Camel :: Google :: Common | 2.6s | SUCCESS |
| Camel :: Huawei Cloud :: IAM | 2.6s | SUCCESS |
| Camel :: Braintree | 2.6s | SUCCESS |
| Camel :: AI :: Semantic OpenAI | 2.6s | SUCCESS |
| Camel :: Asterisk | 2.6s | SUCCESS |
| Camel :: ArangoDB | 2.6s | SUCCESS |
| Camel :: Core Model | 2.5s | SUCCESS |
| Camel :: Cron | 2.5s | SUCCESS |
| Camel :: Alibaba Cloud :: Message Service (MNS) | 2.5s | SUCCESS |
| Camel :: AI :: Observability API | 2.5s | SUCCESS |
| Camel :: Alibaba Cloud :: Function Compute (FC) | 2.5s | SUCCESS |
| Camel :: OGNL (deprecated) | 2.5s | SUCCESS |
| Camel :: Maven Plugins :: Camel Maven Component | 2.4s | SUCCESS |
| Camel :: Zendesk | 2.4s | SUCCESS |
| Camel :: AI :: LangChain4j :: Tokenizer | 2.4s | SUCCESS |
| Camel :: ServiceNow :: Maven Plugin | 2.4s | SUCCESS |
| Camel :: Test Infra :: MongoDB | 2.4s | SUCCESS |
| Camel :: Undertow Spring Security | 2.4s | SUCCESS |
| Camel :: Huawei Cloud :: FunctionGraph | 2.4s | SUCCESS |
| Camel :: IBM :: Secrets Manager | 2.4s | SUCCESS |
| Camel :: Components | 2.4s | SUCCESS |
| Camel :: Google :: Secret Manager | 2.3s | SUCCESS |
| Camel :: Chunk | 2.3s | SUCCESS |
| Camel :: Azure :: Common | 2.3s | SUCCESS |
| Camel :: Catalog :: Maven | 2.3s | SUCCESS |
| Camel :: Util :: JSon | 2.3s | SUCCESS |
| Camel :: StringTemplate | 2.2s | SUCCESS |
| Camel :: Test Infra :: Ollama | 2.2s | SUCCESS |
| Camel :: YAML DSL :: Deserializers | 2.2s | SUCCESS |
| Camel :: Azure :: Key Vault | 2.2s | SUCCESS |
| Camel :: Java Template Engine | 2.2s | SUCCESS |
| Camel :: PDF | 2.2s | SUCCESS |
| Camel :: Test Infra :: AWS SDK v2 | 2.2s | SUCCESS |
| Camel :: Shiro | 2.2s | SUCCESS |
| Camel :: Alibaba Cloud :: Key Management Service (KMS) | 2.2s | SUCCESS |
| Camel :: Alibaba Cloud :: Short Message Service (SMS) | 2.1s | SUCCESS |
| Camel :: MVEL | 2.1s | SUCCESS |
| Camel :: Maven Plugins :: OpenApi REST DSL Generator | 2.1s | SUCCESS |
| Camel :: Attachments | 2.1s | SUCCESS |
| Camel :: Tooling :: Model | 2.1s | SUCCESS |
| Camel :: IBM :: Watson Discovery | 2.1s | SUCCESS |
| Camel :: Debezium :: Oracle | 2.1s | SUCCESS |
| Camel :: Test Infra :: Keycloak | 2.1s | SUCCESS |
| Camel :: IBM :: watsonx.ai | 2.0s | SUCCESS |
| Camel :: AI :: LangChain4j :: Web Search | 2.0s | SUCCESS |
| Camel :: YAML DSL :: Validator Maven Plugin | 2.0s | SUCCESS |
| Camel :: Jslt | 2.0s | SUCCESS |
| Camel :: Jackson Avro | 2.0s | SUCCESS |
| Camel :: Google :: Speech To Text | 1.9s | SUCCESS |
| Camel :: Java Toolbox for IBM i | 1.9s | SUCCESS |
| Camel :: AI :: Hugging Face | 1.9s | SUCCESS |
| Camel :: IBM :: Watson Text to Speech | 1.9s | SUCCESS |
| Camel :: Debezium :: DB2 | 1.9s | SUCCESS |
| Camel :: Debezium :: SQL Server | 1.9s | SUCCESS |
| Camel :: AI :: Observability | 1.9s | SUCCESS |
| Camel :: Huawei Cloud :: ImageRecognition | 1.9s | SUCCESS |
| Camel :: ResourceResolver GitHub | 1.9s | SUCCESS |
| Camel :: Jackson Protobuf | 1.9s | SUCCESS |
| Camel :: HTTP :: Base | 1.9s | SUCCESS |
| Camel :: Platform HTTP :: Jolokia | 1.9s | SUCCESS |
| Camel :: AWS :: Common | 1.9s | SUCCESS |
| Camel :: Huawei Cloud :: SimpleNotification | 1.8s | SUCCESS |
| Camel :: Fastjson | 1.8s | SUCCESS |
| Camel :: IBM :: Watson Speech to Text | 1.8s | SUCCESS |
| Camel :: JSONATA | 1.8s | SUCCESS |
| Camel :: Debezium :: MySQL | 1.8s | SUCCESS |
| Camel :: Google :: Text To Speech | 1.8s | SUCCESS |
| Camel :: Google :: Vision | 1.8s | SUCCESS |
| Camel :: Debezium :: MongoDB | 1.8s | SUCCESS |
| Camel :: IBM :: Watson Language | 1.7s | SUCCESS |
| Camel :: JSonApi | 1.7s | SUCCESS |
| Camel :: XChange | 1.7s | SUCCESS |
| Camel :: Box :: API | 1.7s | SUCCESS |
| Camel :: Test Infra :: Ignite | 1.7s | SUCCESS |
| Camel :: Mustache | 1.7s | SUCCESS |
| Camel :: AI :: Resource | 1.7s | SUCCESS |
| Camel :: LZF | 1.7s | SUCCESS |
| Camel :: iCal | 1.6s | SUCCESS |
| Camel :: Test Infra :: Wolf Defender | 1.6s | SUCCESS |
| Camel :: IBM :: watsonx.data | 1.6s | SUCCESS |
| Camel :: Jolt | 1.6s | SUCCESS |
| Camel :: Coverage | 1.6s | SUCCESS |
| Camel :: Kafka :: Common | 1.6s | SUCCESS |
| Camel :: Integration Tests :: Stream Caching Tests | 1.6s | SUCCESS |
| Camel :: AI :: LangChain4j :: Core | 1.6s | SUCCESS |
| Camel :: Resilience4j :: Micrometer | 1.5s | SUCCESS |
| Camel :: Tooling :: Util | 1.5s | SUCCESS |
| Camel :: Assembly | 1.5s | SUCCESS |
| Camel :: MicroProfile :: Config | 1.5s | SUCCESS |
| Camel :: MapStruct | 1.5s | SUCCESS |
| Camel :: Azure :: Event Grid | 1.5s | SUCCESS |
| Camel :: Test Infra :: Jaeger | 1.5s | SUCCESS |
| Camel :: JSoup | 1.5s | SUCCESS |
| Camel :: Knative Component | 1.5s | SUCCESS |
| Camel :: XML JAXP | 1.4s | SUCCESS |
| Camel :: Test Infra :: TypeSafe AI Mock | 1.4s | SUCCESS |
| Camel :: Test Infra :: Kafka | 1.4s | SUCCESS |
| Camel :: Debezium :: PostgreSQL | 1.3s | SUCCESS |
| Camel :: Knative API | 1.3s | SUCCESS |
| Camel :: Stripe | 1.3s | SUCCESS |
| Camel :: Azure :: Functions | 1.3s | SUCCESS |
| Camel :: DSL :: Modeline | 1.3s | SUCCESS |
| Camel :: All Components Sync point | 1.3s | SUCCESS |
| Camel :: Test Infra :: JDBC | 1.3s | SUCCESS |
| Camel :: CloudEvents | 1.3s | SUCCESS |
| Camel :: Test Infra :: SPIFFE | 1.2s | SUCCESS |
| Camel :: Test Infra :: ArangoDB | 1.2s | SUCCESS |
| Camel :: Shell | 1.2s | SUCCESS |
| Camel :: JBang :: Plugin :: Edit | 1.2s | SUCCESS |
| Camel :: ServiceNow :: Component | 1.2s | SUCCESS |
| Camel :: AI :: LangChain4j :: Embedding Store :: API | 1.1s | SUCCESS |
| Camel :: XML IO Util | 1.1s | SUCCESS |
| Camel :: Test Infra :: Hazelcast | 1.1s | SUCCESS |
| Camel :: LDAP | 1.1s | SUCCESS |
| Camel :: Debezium :: Common :: Parent | 1.1s | SUCCESS |
| Camel :: SPI Annotations | 1.0s | SUCCESS |
| Camel :: Exe | 1.0s | SUCCESS |
| Camel :: XML JAXP Util | 1.0s | SUCCESS |
| Camel :: Archetypes :: Main | 1.0s | SUCCESS |
| Camel :: DSL :: CLI Debug | 0.9s | SUCCESS |
| Camel :: JBang :: Plugin :: Generate | 0.9s | SUCCESS |
| Camel :: Test Infra :: CyberArk Vault | 0.9s | SUCCESS |
| Camel :: Test Infra :: Artemis | 0.9s | SUCCESS |
| Camel :: Infinispan :: Common | 0.9s | SUCCESS |
| Camel :: Test Infra :: Consul | 0.9s | SUCCESS |
| Camel :: API | 0.9s | SUCCESS |
| Camel :: Alibaba Cloud :: Common | 0.8s | SUCCESS |
| Camel :: Test Infra :: Azure Storage Blob | 0.8s | SUCCESS |
| Camel :: JBang :: Integration tests | 0.8s | SUCCESS |
| Camel :: Maven Plugins :: Camel Maven Plugin | 0.8s | SUCCESS |
| Camel :: CXF :: Common | 0.8s | SUCCESS |
| Camel :: Test Infra :: Microprofile LRA | 0.7s | SUCCESS |
| Camel :: Integration Tests :: Test Bundles | 0.7s | SUCCESS |
| Camel :: Core Modules | 0.7s | SUCCESS |
| Camel :: Test Infra :: Azure Storage Datalake | 0.7s | SUCCESS |
| Camel :: Test Infra :: IBM MQ | 0.7s | SUCCESS |
| Camel :: Avro RPC :: Spi | 0.6s | SUCCESS |
| Camel :: State Store :: Parent | 0.6s | SUCCESS |
| Camel :: Test Infra :: Azure Storage Queue | 0.6s | SUCCESS |
| Camel :: Test Infra :: Minio (deprecated) | 0.6s | SUCCESS |
| Camel :: MicroProfile :: Parent | 0.6s | SUCCESS |
| Camel :: Buildtools | 0.6s | SUCCESS |
| Camel :: Test Infra :: HiveMQ | 0.6s | SUCCESS |
| Camel :: Test Infra :: CouchDb | 0.6s | SUCCESS |
| Camel :: XPath | 0.5s | SUCCESS |
| Camel :: Test Infra :: OPA | 0.5s | SUCCESS |
| Camel :: Test Infra :: Iggy | 0.5s | SUCCESS |
| Camel :: JBang :: Main | 0.5s | SUCCESS |
| Camel :: ServiceNow :: Parent | 0.5s | SUCCESS |
| Camel :: AI :: Parent | 0.5s | SUCCESS |
| Camel :: Core Processor | 0.5s | SUCCESS |
| Camel :: Vert.x :: Common | 0.5s | SUCCESS |
| Camel :: Scheduler | 0.5s | SUCCESS |
| Camel :: Test Infra :: OpenFGA | 0.5s | SUCCESS |
| Camel :: AWS :: Parent | 0.5s | SUCCESS |
| Camel :: Stub | 0.5s | SUCCESS |
| Camel :: Vert.x :: Parent | 0.5s | SUCCESS |
| Camel :: CXF :: Common :: Spring | 0.5s | SUCCESS |
| Camel :: Test Infra :: opensearch | 0.5s | SUCCESS |
| Camel :: Spring Cloud Config | 0.5s | SUCCESS |
| Camel :: Base Engine | 0.5s | SUCCESS |
| Camel :: Endpoint DSL :: Support | 0.5s | SUCCESS |
| Camel :: FTP Common | 0.5s | SUCCESS |
| Camel :: Test Infra :: Jetty | 0.5s | SUCCESS |
| Camel :: Core Reifier | 0.4s | SUCCESS |
| Camel :: BOM :: Generator | 0.4s | SUCCESS |
| Camel :: JBang :: Plugin :: MCP | 0.4s | SUCCESS |
| Camel :: Test Infra :: ClickHouse | 0.4s | SUCCESS |
| Camel :: Language | 0.4s | SUCCESS |
| Camel :: Test Infra :: Core | 0.4s | SUCCESS |
| Camel :: DHIS2 :: Parent | 0.4s | SUCCESS |
| Camel :: Test Infra :: Cassandra | 0.4s | SUCCESS |
| Camel :: Test Infra :: Hashicorp Vault | 0.4s | SUCCESS |
| Camel :: Test Infra :: Openladp | 0.4s | SUCCESS |
| Camel :: Test Infra :: Ftp | 0.4s | SUCCESS |
| Camel :: XSLT | 0.4s | SUCCESS |
| Camel :: Spring :: Parent | 0.4s | SUCCESS |
| Camel :: IBM :: Parent | 0.4s | SUCCESS |
| Camel :: Test Infra :: Nats | 0.4s | SUCCESS |
| Camel :: JBang :: Console | 0.4s | SUCCESS |
| Camel :: FHIR :: API | 0.4s | SUCCESS |
| Camel :: Avro RPC :: Jetty | 0.4s | SUCCESS |
| Camel :: Micrometer :: Prometheus | 0.4s | SUCCESS |
| Camel :: Maven Plugins :: BOM Generator | 0.4s | SUCCESS |
| Camel :: Management API | 0.4s | SUCCESS |
| Camel :: Spring | 0.4s | SUCCESS |
| Camel :: Test Infra :: Pulsar | 0.4s | SUCCESS |
| Camel :: Timer | 0.4s | SUCCESS |
| Camel :: Jandex | 0.4s | SUCCESS |
| Camel :: XML JAXB | 0.4s | SUCCESS |
| Camel :: Seda | 0.4s | SUCCESS |
| Camel :: Test Infra :: ChatScript | 0.4s | SUCCESS |
| Camel :: Test Infra :: Google Pub/Sub | 0.4s | SUCCESS |
| Camel :: Test Infra :: Mosquitto | 0.4s | SUCCESS |
| Camel :: Test Infra :: OpenAI Mock | 0.4s | SUCCESS |
| Camel :: DSL :: Parent | 0.3s | SUCCESS |
| Camel :: Base | 0.3s | SUCCESS |
| Camel :: Archetypes :: API Component | 0.3s | SUCCESS |
| Camel :: Test Infra :: Xmpp | 0.3s | SUCCESS |
| Camel :: Maven Plugins :: Sync Properties | 0.3s | SUCCESS |
| Camel :: YAML DSL :: Maven Plugins | 0.3s | SUCCESS |
| Camel :: Parent | 0.3s | SUCCESS |
| Camel :: Core Engine | 0.3s | SUCCESS |
| Camel :: Core Languages | 0.3s | SUCCESS |
| Camel :: Test Infra :: Server Message Block | 0.3s | SUCCESS |
| Camel :: Mock | 0.3s | SUCCESS |
| Camel :: Test Infra :: FHIR | 0.3s | SUCCESS |
| Camel :: Debugging | 0.3s | SUCCESS |
| Camel :: SAP NetWeaver | 0.3s | SUCCESS |
| Camel :: Validator | 0.3s | SUCCESS |
| Camel :: Test Infra :: Elasticsearch | 0.3s | SUCCESS |
| Camel :: Core Catalog | 0.3s | SUCCESS |
| Camel :: Test :: Parent | 0.3s | SUCCESS |
| Camel :: Test Infra :: MCP Everything | 0.3s | SUCCESS |
| Camel :: FHIR :: Parent | 0.3s | SUCCESS |
| Camel :: Azure :: Schema Registry | 0.3s | SUCCESS |
| Camel :: Log | 0.3s | SUCCESS |
| Camel :: Huawei Cloud :: Common | 0.3s | SUCCESS |
| Camel :: Catalog :: Dummy Component | 0.3s | SUCCESS |
| Camel :: Saga | 0.3s | SUCCESS |
| Camel :: Archetypes :: Java Router | 0.3s | SUCCESS |
| Camel :: Observability Services | 0.3s | SUCCESS |
| Camel :: Knative :: Parent | 0.3s | SUCCESS |
| Camel :: Google :: Parent | 0.3s | SUCCESS |
| Camel :: Jetty :: Common | 0.3s | SUCCESS |
| Camel :: Azure :: Parent | 0.3s | SUCCESS |
| Camel :: Ref | 0.3s | SUCCESS |
| Camel :: DHIS2 API | 0.3s | SUCCESS |
| Camel :: DSL :: Support | 0.3s | SUCCESS |
| Camel :: Test Infra :: TensorFlow Serving | 0.3s | SUCCESS |
| Camel :: Salesforce :: CodeGen | 0.3s | SUCCESS |
| Camel :: Health | 0.3s | SUCCESS |
| Camel :: Olingo2 (Deprecated) :: API | 0.3s | SUCCESS |
| Camel :: CXF :: Parent | 0.3s | SUCCESS |
| Camel :: Test Infra :: RocketMQ | 0.3s | SUCCESS |
| Camel :: Huawei Cloud :: Parent | 0.3s | SUCCESS |
| Camel :: Test Infra :: Docling | 0.3s | SUCCESS |
| Camel :: Cluster | 0.3s | SUCCESS |
| Camel :: Test Infra :: Solr | 0.3s | SUCCESS |
| Camel :: Archetypes :: Component | 0.3s | SUCCESS |
| Camel :: DataSet | 0.3s | SUCCESS |
| Camel :: Mail :: Microsoft OAuth | 0.3s | SUCCESS |
| Camel :: Test Infra :: Cli (Camel CLI) | 0.3s | SUCCESS |
| Camel :: Test Infra :: Azure Common | 0.3s | SUCCESS |
| Camel :: Avro RPC :: Parent | 0.3s | SUCCESS |
| Camel :: Tooling Parent | 0.3s | SUCCESS |
| Camel :: Test Infra :: Dispatch Router | 0.2s | SUCCESS |
| Camel :: Test Infra :: AWS Common | 0.2s | SUCCESS |
| Camel :: Test Infra :: ZooKeeper | 0.2s | SUCCESS |
| Camel :: Direct | 0.2s | SUCCESS |
| Camel :: Test Infra :: Postgres | 0.2s | SUCCESS |
| Camel :: Controlbus | 0.2s | SUCCESS |
| Camel :: Test Infra | 0.2s | SUCCESS |
| Camel :: JBang :: Parent | 0.2s | SUCCESS |
| Camel :: AS2 :: Parent | 0.2s | SUCCESS |
| Camel :: Salesforce :: Parent | 0.2s | SUCCESS |
| Camel :: Integration Tests :: Validator Resources | 0.2s | SUCCESS |
| Camel :: Test Infra :: Observability | 0.2s | SUCCESS |
| Camel :: Dataformat | 0.2s | SUCCESS |
| Camel :: Alibaba Cloud :: Parent | 0.2s | SUCCESS |
| Camel :: Debezium :: Parent | 0.2s | SUCCESS |
| Camel :: Box :: Parent | 0.2s | SUCCESS |
| Camel :: Kamelet Main :: Support | 0.2s | SUCCESS |
| Camel :: Archetypes :: Data Format | 0.2s | SUCCESS |
| Camel :: Browse | 0.2s | SUCCESS |
| Camel :: Test Infra :: RabbitMQ | 0.2s | SUCCESS |
| Camel :: Test Infra :: Triton Inference Server | 0.2s | SUCCESS |
| Camel :: Catalog :: Common | 0.2s | SUCCESS |
| Camel :: Spring AI :: Parent | 0.2s | SUCCESS |
| Camel :: Catalog | 0.2s | SUCCESS |
| Camel :: Catalog :: Console | 0.2s | SUCCESS |
| Camel :: Test Infra :: Pinecone | 0.2s | SUCCESS |
| Camel :: Olingo2 (Deprecated) :: Parent | 0.2s | SUCCESS |
| Camel :: Test Infra :: Weaviate | 0.2s | SUCCESS |
| Camel :: Test Infra :: Neo4j | 0.2s | SUCCESS |
| Camel :: Test Infra :: Infinispan | 0.2s | SUCCESS |
| Camel :: Test Infra :: Messaging Common | 0.2s | SUCCESS |
| Camel :: Test Infra :: Redis | 0.2s | SUCCESS |
| Camel :: Olingo4 (Deprecated) :: Parent | 0.2s | SUCCESS |
| Camel :: Test Infra :: qdrant | 0.2s | SUCCESS |
| Camel :: Infinispan :: Parent | 0.2s | SUCCESS |
| Camel :: Enforcer rules | 0.2s | SUCCESS |
| Camel :: Test Infra :: Milvus | 0.2s | SUCCESS |
| Camel :: YAML DSL :: Parent | 0.2s | SUCCESS |
| Camel :: Test Infra :: Parent | 0.2s | SUCCESS |
| Camel :: Tooling | 0.2s | SUCCESS |
| Camel :: Maven Plugins | 0.2s | SUCCESS |
| Camel :: Integration Tests | 0.2s | SUCCESS |
| Camel :: Dependencies | 0.1s | SUCCESS |
| Camel :: XML DSL Jaxb :: Tests | 0.1s | SUCCESS |
| Camel :: All Core Sync point | 0.1s | SUCCESS |
| Camel :: Etc | 0.1s | SUCCESS |
| Camel :: Archetypes | 0.1s | SUCCESS |
| Camel :: BOM | 0.1s | SUCCESS |
| Camel :: AI :: Deep Java Library | n/a | |
| Camel :: AWS2 S3 | n/a | |
| Camel :: AWS2 SQS | n/a | |
| Camel :: Avro RPC | n/a | |
| Camel :: CXF :: REST :: Spring | n/a | |
| Camel :: CXF :: SOAP :: Spring | n/a | |
| Camel :: Cassandra CQL | n/a | |
| Camel :: CoAP | n/a | |
| Camel :: Common Telemetry | n/a | |
| Camel :: Core | n/a | |
| Camel :: DHIS2 | n/a | |
| Camel :: Disruptor | n/a | |
| Camel :: Elasticsearch Java API Client | n/a | |
| Camel :: FHIR | n/a | |
| Camel :: FTP | n/a | |
| Camel :: Google :: PubSub | n/a | |
| Camel :: HTTP | n/a | |
| Camel :: HazelCast | n/a | |
| Camel :: Infinispan :: Embedded | n/a | |
| Camel :: JBang :: Core | n/a | |
| Camel :: JGroups | n/a | |
| Camel :: JMS | n/a | |
| Camel :: Kafka | n/a | |
| Camel :: Keycloak | n/a | |
| Camel :: Kubernetes | n/a | |
| Camel :: MINA SFTP | n/a | |
| Camel :: Mail | n/a | |
| Camel :: Management | n/a | |
| Camel :: Master | n/a | |
| Camel :: Micrometer :: Observability 2 | n/a | |
| Camel :: Milo | n/a | |
| Camel :: MongoDB | n/a | |
| Camel :: Nats | n/a | |
| Camel :: Netty HTTP | n/a | |
| Camel :: OpenSearch Java API Client | n/a | |
| Camel :: Opentelemetry 2 | n/a | |
| Camel :: OptaPlanner | n/a | |
| Camel :: Pulsar | n/a | |
| Camel :: RxJava | n/a | |
| Camel :: SMB | n/a | |
| Camel :: Spring XML | n/a | |
| Camel :: Telemetry :: Dev | n/a | |
| Camel :: Thrift | n/a | |
| Camel :: Vert.x :: WebSocket | n/a | |
| Camel :: Zookeeper | n/a | |
| Camel :: Zookeeper Master | n/a |
Top 20 slowest modules:
Camel :: Consul(58.1s)Camel :: Telegram(57.7s)Camel :: JMX(57.1s)Camel :: Netty(56.2s)Camel :: MLLP(56.1s)Camel :: JBang :: Plugin :: TUI(55.7s)Camel :: DSL :: CLI Connector(53.9s)Camel :: Infinispan :: Remote(53.9s)Camel :: Long-Running-Action(53.9s)Camel :: MINA(53.5s)Camel :: Test Infra :: Common(50.8s)Camel :: AWS2 Bedrock(49.8s)Camel :: CyberArk Vault(49.3s)Camel :: PQC(47.4s)Camel :: Simple JMS(47.4s)Camel :: AI :: MCP Server(46.7s)Camel :: Endpoint DSL(45.7s)Camel :: AWS2 Kinesis(45.4s)Camel :: Lumberjack(44.0s)Camel :: AI :: LangChain4j :: Embedding(43.1s)
CAMEL-25895: camel-openstack - align the remaining Swift header constants with the Camel naming convention
Problem
CAMEL-23580 (Camel 4.21) renamed the Exchange header constants of
camel-openstackto theCamelOpenstack*convention used across the component catalog, but left four constants inSwiftConstantson their openstack4j values:SwiftConstants.CONTAINER_METADATA_PREFIXX-Container-Meta-SwiftConstants.VERSIONS_LOCATIONX-Versions-LocationSwiftConstants.CONTAINER_READX-Container-ReadSwiftConstants.CONTAINER_WRITEX-Container-WriteThe reason recorded in the code and in the 4.21, 4.18 and 4.14 upgrade guides was that these names
"are part of the Swift HTTP protocol contract used by openstack4j" and that "renaming them would
break interoperability with the Swift API".
That reason does not hold.
ContainerProducer.messageToCreateUpdateOptionsnever puts the Exchangeheader name on the wire: it calls
CreateUpdateContainerOptions.metadata(Map),.versionsLocation(String),.accessRead(String)and.accessWrite(String), and openstack4jbuilds the
X-Container-Meta-,X-Versions-Location,X-Container-ReadandX-Container-Writenames of the Swift request itself. Verified against
openstack4j-core3.12:CreateUpdateContainerOptions.create().accessRead("r").accessWrite("w").versionsLocation("l").getOptions()returns
{X-Container-Read=r, X-Container-Write=w, X-Versions-Location=l}regardless of which Camelheader key the value came from.
So the four names bought nothing, while making
openstack-swiftthe only component in its familywhose container options are driven by header keys outside the
Camel*namespace thatDefaultHeaderFilterStrategyfilters by default.camel-aws2-s3, for comparison, already usesCamelAwsS3Acl/CamelAwsS3CannedAcl.This PR partly reverses that deliberate decision from CAMEL-23580. The decision itself was
intentional and documented; what is corrected here is its stated premise, which is factually wrong.
Per the project's AI agent guidelines, this is called out explicitly rather than left implicit.
Change
components/camel-openstack/src/main/java/.../swift/SwiftConstants.javaCONTAINER_METADATA_PREFIXX-Container-Meta-CamelOpenstackSwiftContainerMetadataVERSIONS_LOCATIONX-Versions-LocationCamelOpenstackSwiftVersionsLocationCONTAINER_READX-Container-ReadCamelOpenstackSwiftContainerReadCONTAINER_WRITEX-Container-WriteCamelOpenstackSwiftContainerWritecompiling and working. This matches the hard-break-with-stable-field-names policy in
design/headers.adocand what CAMEL-23580 did for the other constants.org.openstack4j.model.storage.object.SwiftHeadersimport are removed.ContainerProducerneeded no change: it already reads the constants, never the literal strings.design/headers.adoclisted Swift under the "protocol and standard headers" exemption andpointed at these constants as the worked example. Corrected: the exemption applies when the
header name the route sets is the name that goes on the wire, which is not the case when a client
library builds the wire name itself.
camel-4x-upgrade-guide-4_24.adocwith the value table, the note that theSwift request is unchanged, the migration for routes using literal header strings, and the
renamed Endpoint DSL accessors (
xContainerRead()->openstackSwiftContainerRead(), etc.).these names are part of the Swift HTTP contract and that renaming them would break
interoperability. Both are corrected to record that openstack4j builds the
X-Container-*wirenames itself, with a pointer to CAMEL-25895 for the releases that carry the rename. Left as a
pointer rather than a version so it stays correct across the maintenance lines.
camel-4x-upgrade-guide-4_14.adocis not touched: that line is EOL and receives no fix.openstack-swift.json, the catalog doc mirror andSwiftEndpointBuilderFactory.Tests
ContainerProducerTesthad no coverage of the container options path at all. Six tests added,in the module's existing style (JUnit 5 + Mockito via
SwiftProducerTestSupport; the class isJUnit-assertion based, so no AssertJ was introduced):
containerCreateReadsAccessControlFromCamelNamespacedHeaderscontainerUpdateReadsAccessControlFromCamelNamespacedHeaderscontainerUpdateReadsVersionsLocationAndMetadataFromCamelNamespacedHeaderscontainerUpdateIgnoresThePreviousSwiftHeaderNamescontainerUpdatePrefersTheOptionsFromTheBodyOverTheHeaderscontainerOptionHeaderNamesFollowTheCamelNamingConventioncontainerUpdateIgnoresThePreviousSwiftHeaderNamesandcontainerOptionHeaderNamesFollowTheCamelNamingConventionfail on the unfixed code(
expected: <null> but was: <CreateUpdateContainerOptions@...>andexpected: <CamelOpenstackSwiftContainerMetadata> but was: <X-Container-Meta->). They are the twothat pin the values; the three
...FromCamelNamespacedHeaderstests go through the Java constants,so they cover the producer path but not the rename itself.
containerUpdatePrefersTheOptionsFromTheBodyOverTheHeaderslocks in the existing precedence, whichthe rename does not change: a
CreateUpdateContainerOptionsin the body makes the producer skip theheaders entirely.
mvn test -pl components/camel-openstack -Dtest=ContainerProducerTest: 13 tests, 0 failures.mvn formatter:format impsort:sort -pl components/camel-openstack: nothing to change.Backports
Targets
camel-4.22.xandcamel-4.18.x.SwiftConstants.javaandContainerProducer.javaareidentical on all three lines, so the Java part is a straight cherry-pick; the generated artefacts
are regenerated per branch rather than cherry-picked. Per the project's backport upgrade-guide
policy, the matching notes go into
camel-4x-upgrade-guide-4_22.adocandcamel-4x-upgrade-guide-4_18.adoconmain.camel-4.14.xandcamel-4.10.xare EOL and getnothing.
Claude Code on behalf of zbendhiba
🤖 Generated with Claude Code