You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by "davsclaus (via GitHub)" <gi...@apache.org> on 2026/10/06 08:06:10 UTC
[PR] CAMEL-25373: camel-rest - the unresolved path parameter warning comes back once a minute, and names an exchange property [camel]
davsclaus opened a new pull request, #27426:
URL: https://github.com/apache/camel/pull/27426
https://issues.apache.org/jira/browse/CAMEL-25373
`RestProducer` warns when a path parameter has no value: the request is then sent with `{sku}` in the path (CAMEL-24986). Until now the warning was logged once per parameter, for the life of the producer.
In the local-model benchmark (r5, contracts-openapi-client steps 2 and 3, both used all 20 tool calls), the model had replaced `setHeader sku` with `setProperty sku`, so every request went to `/stock/%7Bsku%7D/reserve` and got a 404. The one warning came at the first call. A noop file consumer then retried the rolled-back files on every poll, about 7 MB of errors followed, and the model never saw the warning.
## Changes
The request is sent as before. Only the warning changes:
- **It comes back:** at most once a minute per parameter, for as long as the misconfiguration lasts, instead of once ever.
- **It names an exchange property of that name**, the usual mistake:
```
The path parameter {sku} of stock/{sku}/reserve has no value: set the header sku, or an exchange variable of that name, before the call. There is an exchange property sku, but a path parameter is read from a header or a variable, not from a property: use setHeader. The request is sent with {sku} in the path, which the service is unlikely to answer. This is logged at most once a minute per parameter.
```
Tests: two new cases in `RestProducerUnresolvedPathWarnTest`; the existing ones are unchanged, and the camel-core rest tests pass (30).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] CAMEL-25373: camel-rest - the unresolved path parameter warning comes back once a minute, and names an exchange property [camel]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #27426:
URL: https://github.com/apache/camel/pull/27426#issuecomment-6012359961
<!-- ci-tested-modules -->
:test_tube: **CI tested the following changed modules:**
- `components/camel-rest`
- `core/camel-core`
> :information_source: Dependent modules were not tested because the total number of affected modules exceeded the threshold (50). Use the `test-dependents` label to force testing all dependents.
:repeat: **1 test passed only after a retry on JDK 25** (1 retried attempt)
<details><summary>Recovered flaky tests on JDK 25 (1)</summary>
| Module | Test | Failed attempts | First failure |
| --- | --- | --- | --- |
| `core/camel-core` | `TotalRequestsThrottlerRateDecreaseTest.testDecreaseWhileExchangesWaitForPermits` | 1 | Condition with Lambda expression in org.apache.camel.processor.throttle.requests.TotalRequestsThrottlerRateDecreaseTest was not fulfilled within 5 seconds. |
> :information_source: These tests did **not** fail the build. Surefire retried them and they passed.
> Retries are enabled project-wide by `surefire.rerunFailingTestsCount` in `parent/pom.xml`.
</details>
---
<details><summary>:microscope: Scalpel shadow comparison — Scalpel: 481 of 698 tested, 28 compile-only — current: 485 all tested</summary>
[Maveniverse Scalpel](https://github.com/maveniverse/scalpel) detected **481 affected modules** (current approach: 485).
**Skip-tests mode would test 481 modules** (2 direct + 479 downstream), **skip tests for 28** (generated code, meta-modules)
<details><summary>Modules only in current approach (4)</summary>
- `camel-debug`
- `camel-google-common`
- `camel-jbang-console`
- `camel-test-infra-core`
</details>
<details><summary>Modules Scalpel would test (481)</summary>
- `archetypes` ← downstream of org.apache.camel:camel-test-junit6
- `camel-a2a` ← downstream of org.apache.camel:camel-test-junit6
- `camel-activemq` ← downstream of org.apache.camel:camel-test-infra-artemis
- `camel-activemq6` ← downstream of org.apache.camel:camel-test-infra-artemis
- `camel-ai-observability` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ai-observability-api` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ai-resource` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ai-tool` ← downstream of org.apache.camel:camel-test-junit6
- `camel-alibaba-eventbridge` ← downstream of org.apache.camel:camel-test-junit6
- `camel-alibaba-fc` ← downstream of org.apache.camel:camel-test-junit6
- `camel-alibaba-kms` ← downstream of org.apache.camel:camel-test-junit6
- `camel-alibaba-mns` ← downstream of org.apache.camel:camel-test-junit6
- `camel-alibaba-oss` ← downstream of org.apache.camel:camel-test-junit6
- `camel-alibaba-ots` ← downstream of org.apache.camel:camel-test-junit6
- `camel-alibaba-sls` ← downstream of org.apache.camel:camel-test-junit6
- `camel-alibaba-sms` ← downstream of org.apache.camel:camel-test-junit6
- `camel-amqp` ← downstream of org.apache.camel:camel-test-junit6
- `camel-api-component-maven-plugin` ← downstream of org.apache.camel:camel-test-junit6
- `camel-arangodb` ← downstream of org.apache.camel:camel-test-junit6
- `camel-archetype-api-component` ← downstream of org.apache.camel:camel-test-junit6
- `camel-archetype-component` ← downstream of org.apache.camel:camel-test-junit6
- `camel-archetype-dataformat` ← downstream of org.apache.camel:camel-test-junit6
- `camel-archetype-java` ← downstream of org.apache.camel:camel-test-junit6
- `camel-archetype-main` ← downstream of org.apache.camel:camel-test-junit6
- `camel-as2` ← downstream of org.apache.camel:camel-test-junit6
- `camel-as2-api` ← downstream of org.apache.camel:camel-test-junit6
- `camel-asn1` ← downstream of org.apache.camel:camel-test-junit6
- `camel-asterisk` ← downstream of org.apache.camel:camel-test-junit6
- `camel-atmosphere-websocket` ← downstream of org.apache.camel:camel-test-junit6
- `camel-atom` ← downstream of org.apache.camel:camel-test-junit6
- `camel-attachments` ← downstream of org.apache.camel:camel-test-junit6
- `camel-avro` ← downstream of org.apache.camel:camel-test-junit6
- `camel-avro-rpc` ← downstream of org.apache.camel:camel-test-junit6
- `camel-aws-bedrock` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws-cloudtrail` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws-config` ← downstream of org.apache.camel:camel-test-junit6
- `camel-aws-parameter-store` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws-secrets-manager` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws-security-hub` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-athena` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-comprehend` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-cw` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-ddb` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-ec2` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-ecs` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-eks` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-eventbridge` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-iam` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-kinesis` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-kms` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-lambda` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-mq` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-msk` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-polly` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-redshift` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-rekognition` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-s3` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-s3-vectors` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-ses` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-sns` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-sqs` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-step-functions` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-sts` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-textract` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-timestream` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-aws2-transcribe` ← downstream of org.apache.camel:camel-test-junit6
- `camel-aws2-translate` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-azure-cosmosdb` ← downstream of org.apache.camel:camel-test-junit6
- `camel-azure-eventgrid` ← downstream of org.apache.camel:camel-test-junit6
- `camel-azure-eventhubs` ← downstream of org.apache.camel:camel-test-junit6
- `camel-azure-files` ← downstream of org.apache.camel:camel-test-junit6
- `camel-azure-functions` ← downstream of org.apache.camel:camel-test-junit6
- `camel-azure-key-vault` ← downstream of org.apache.camel:camel-test-junit6
- `camel-azure-schema-registry` ← downstream of org.apache.camel:camel-test-junit6
- `camel-azure-servicebus` ← downstream of org.apache.camel:camel-test-junit6
- `camel-azure-storage-blob` ← downstream of org.apache.camel:camel-test-junit6
- `camel-azure-storage-datalake` ← downstream of org.apache.camel:camel-test-junit6
- `camel-azure-storage-queue` ← downstream of org.apache.camel:camel-test-junit6
- `camel-barcode` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-base64` ← downstream of org.apache.camel:camel-test-junit6
- `camel-bean-validator` ← downstream of org.apache.camel:camel-test-junit6
- `camel-beanio` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-bindy` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-bonita` ← downstream of org.apache.camel:camel-test-junit6
- `camel-box` ← downstream of org.apache.camel:camel-test-junit6
- `camel-braintree` ← downstream of org.apache.camel:camel-test-junit6
- `camel-caffeine` ← downstream of org.apache.camel:camel-test-junit6
- `camel-camunda` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cassandraql` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cbor` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-chatscript` ← downstream of org.apache.camel:camel-test-junit6
- `camel-chunk` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cli-connector` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cli-debug` ← downstream of org.apache.camel:camel-cli-connector
- `camel-clickhouse` ← downstream of org.apache.camel:camel-test-junit6
- `camel-clickup` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cloudevents` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cm-sms` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-coap` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cometd` ← downstream of org.apache.camel:camel-test-junit6
- `camel-console` ← downstream of org.apache.camel:camel-core
- `camel-consul` ← downstream of org.apache.camel:camel-test-junit6
- `camel-core` ← core/camel-core/src/test/java/org/apache/camel/component/rest/RestProducerUnresolvedPathWarnTest.java
- `camel-core-all` ← downstream of org.apache.camel:camel-main
- `camel-couchbase` ← downstream of org.apache.camel:camel-test-junit6
- `camel-couchdb` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cron` ← downstream of org.apache.camel:camel-test-junit6
- `camel-crypto` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-crypto-pgp` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-csv` ← downstream of org.apache.camel:camel-main
- `camel-cxf-common` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cxf-rest` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cxf-soap` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cxf-spring-common` ← downstream of org.apache.camel:camel-spring-xml
- `camel-cxf-spring-rest` ← downstream of org.apache.camel:camel-http
- `camel-cxf-spring-soap` ← downstream of org.apache.camel:camel-http
- `camel-cxf-spring-transport` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cxf-transport` ← downstream of org.apache.camel:camel-test-junit6
- `camel-cyberark-vault` ← downstream of org.apache.camel:camel-test-junit6
- `camel-dapr` ← downstream of org.apache.camel:camel-test-junit6
- `camel-datasonnet` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-debezium-common` ← downstream of org.apache.camel:camel-test-junit6
- `camel-debezium-db2` ← downstream of org.apache.camel:camel-test-junit6
- `camel-debezium-maven-plugin` ← downstream of org.apache.camel:camel-test-junit6
- `camel-debezium-mongodb` ← downstream of org.apache.camel:camel-test-junit6
- `camel-debezium-mysql` ← downstream of org.apache.camel:camel-test-junit6
- `camel-debezium-oracle` ← downstream of org.apache.camel:camel-test-junit6
- `camel-debezium-postgres` ← downstream of org.apache.camel:camel-test-junit6
- `camel-debezium-sqlserver` ← downstream of org.apache.camel:camel-test-junit6
- `camel-dfdl` ← downstream of org.apache.camel:camel-test-junit6
- `camel-dhis2` ← downstream of org.apache.camel:camel-test-junit6
- `camel-dhis2-api` ← downstream of org.apache.camel:camel-test-junit6
- `camel-dhis2-parent` ← downstream of org.apache.camel:camel-test-junit6
- `camel-diagram` ← downstream of org.apache.camel:camel-test-junit6
- `camel-disruptor` ← downstream of org.apache.camel:camel-test-junit6
- `camel-djl` ← downstream of org.apache.camel:camel-test-junit6
- `camel-dns` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-docker` ← downstream of org.apache.camel:camel-test-junit6
- `camel-docling` ← downstream of org.apache.camel:camel-test-junit6
- `camel-drill` ← downstream of org.apache.camel:camel-test-junit6
- `camel-dropbox` ← downstream of org.apache.camel:camel-test-junit6
- `camel-dsl-modeline` ← downstream of org.apache.camel:camel-test-junit6
- `camel-duckdb` ← downstream of org.apache.camel:camel-test-junit6
- `camel-dynamic-router` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-ehcache` ← downstream of org.apache.camel:camel-test-junit6
- `camel-elasticsearch` ← downstream of org.apache.camel:camel-test-junit6
- `camel-elasticsearch-rest-client` ← downstream of org.apache.camel:camel-test-junit6
- `camel-event` ← downstream of org.apache.camel:camel-test-junit6
- `camel-exec` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-fastjson` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-fhir` ← downstream of org.apache.camel:camel-test-junit6
- `camel-file-watch` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-flatpack` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-flink` ← downstream of org.apache.camel:camel-test-junit6
- `camel-flowable` ← downstream of org.apache.camel:camel-test-junit6
- `camel-fop` ← downstream of org.apache.camel:camel-test-junit6
- `camel-fory` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-freemarker` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-ftp` ← downstream of org.apache.camel:camel-test-junit6
- `camel-geocoder` ← downstream of org.apache.camel:camel-test-junit6
- `camel-git` ← downstream of org.apache.camel:camel-test-junit6
- `camel-github2` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-bigquery` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-calendar` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-drive` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-firestore` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-functions` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-mail` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-pubsub` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-secret-manager` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-sheets` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-speech-to-text` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-storage` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-text-to-speech` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-vertexai` ← downstream of org.apache.camel:camel-test-junit6
- `camel-google-vision` ← downstream of org.apache.camel:camel-test-junit6
- `camel-graphql` ← downstream of org.apache.camel:camel-test-junit6
- `camel-grok` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-groovy` ← downstream of org.apache.camel:camel-main
- `camel-grpc` ← downstream of org.apache.camel:camel-test-junit6
- `camel-gson` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-hashicorp-vault` ← downstream of org.apache.camel:camel-test-junit6
- `camel-hazelcast` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-hivemq` ← downstream of org.apache.camel:camel-test-junit6
- `camel-hl7` ← downstream of org.apache.camel:camel-test-junit6
- `camel-http` ← downstream of org.apache.camel:camel-rest
- `camel-http-base` ← downstream of org.apache.camel:camel-test-junit6
- `camel-http-common` ← downstream of org.apache.camel:camel-test-junit6
- `camel-huaweicloud-dms` ← downstream of org.apache.camel:camel-test-junit6
- `camel-huaweicloud-frs` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-huaweicloud-functiongraph` ← downstream of org.apache.camel:camel-test-junit6
- `camel-huaweicloud-iam` ← downstream of org.apache.camel:camel-test-junit6
- `camel-huaweicloud-imagerecognition` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-huaweicloud-obs` ← downstream of org.apache.camel:camel-test-junit6
- `camel-huaweicloud-smn` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-huggingface` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ibm-cos` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ibm-secrets-manager` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ibm-watson-discovery` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ibm-watson-language` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ibm-watson-speech-to-text` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ibm-watson-text-to-speech` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ibm-watsonx-ai` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ibm-watsonx-data` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ical` ← downstream of org.apache.camel:camel-test-junit6
- `camel-iggy` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ignite` ← downstream of org.apache.camel:camel-test-junit6
- `camel-infinispan` ← downstream of org.apache.camel:camel-test-junit6
- `camel-infinispan-common` ← downstream of org.apache.camel:camel-test-junit6
- `camel-infinispan-embedded` ← downstream of org.apache.camel:camel-test-junit6
- `camel-influxdb` ← downstream of org.apache.camel:camel-test-junit6
- `camel-influxdb2` ← downstream of org.apache.camel:camel-test-junit6
- `camel-iso8583` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-jackson` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-jackson-avro` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jackson-protobuf` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jackson3` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-jackson3-avro` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jackson3-protobuf` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jackson3xml` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-jacksonxml` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-jactl` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jandex` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jasypt` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-java-joor-dsl` ← downstream of org.apache.camel:camel-rest
- `camel-javascript` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jaxb` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jbang-mcp` ← downstream of org.apache.camel:camel-xml-io-dsl
- `camel-jbang-plugin-mcp` ← downstream of org.apache.camel:camel-jbang-core
- `camel-jbang-plugin-route-parser` ← downstream of org.apache.camel:camel-route-parser
- `camel-jbang-plugin-tui` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jbang-plugin-validate` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jcache` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jcr` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jdbc` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-jetty` ← downstream of org.apache.camel:camel-http
- `camel-jetty-common` ← downstream of org.apache.camel:camel-spring-xml
- `camel-jfr` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jgroups` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jgroups-raft` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jira` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jms` ← downstream of org.apache.camel:camel-spring-xml
- `camel-jmx` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jolt` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jooq` ← downstream of org.apache.camel:camel-test-junit6
- `camel-joor` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jpa` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jq` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jsch` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jslt` ← downstream of org.apache.camel:camel-test-junit6
- `camel-json-validator` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jsonapi` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jsonata` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jsonb` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-jsonpath` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-jsoup` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jt400` ← downstream of org.apache.camel:camel-test-junit6
- `camel-jta` ← downstream of org.apache.camel:camel-sql
- `camel-jte` ← downstream of org.apache.camel:camel-test-junit6
- `camel-kafka` ← downstream of org.apache.camel:camel-test-junit6
- `camel-kamelet` ← downstream of org.apache.camel:camel-test-junit6
- `camel-kamelet-main-support` ← downstream of org.apache.camel:camel-main
- `camel-keycloak` ← downstream of org.apache.camel:camel-test-junit6
- `camel-knative` ← downstream of org.apache.camel:camel-test-junit6
- `camel-knative-api` ← downstream of org.apache.camel:camel-test-junit6
- `camel-knative-http` ← downstream of org.apache.camel:camel-test-junit6
- `camel-kserve` ← downstream of org.apache.camel:camel-test-junit6
- `camel-kubernetes` ← downstream of org.apache.camel:camel-http
- `camel-kudu` ← downstream of org.apache.camel:camel-test-junit6
- `camel-langchain4j-agent` ← downstream of org.apache.camel:camel-test-junit6
- `camel-langchain4j-chat` ← downstream of org.apache.camel:camel-test-junit6
- `camel-langchain4j-core` ← downstream of org.apache.camel:camel-test-junit6
- `camel-langchain4j-embeddings` ← downstream of org.apache.camel:camel-test-junit6
- `camel-langchain4j-embeddingstore` ← downstream of org.apache.camel:camel-test-junit6
- `camel-langchain4j-ingest` ← downstream of org.apache.camel:camel-test-junit6
- `camel-langchain4j-tokenizer` ← downstream of org.apache.camel:camel-test-junit6
- `camel-langchain4j-web-search` ← downstream of org.apache.camel:camel-test-junit6
- `camel-launcher-container` ← downstream of org.apache.camel:camel-launcher
- `camel-ldap` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ldif` ← downstream of org.apache.camel:camel-test-junit6
- `camel-lra` ← downstream of org.apache.camel:camel-test-junit6
- `camel-lucene` ← downstream of org.apache.camel:camel-test-junit6
- `camel-lumberjack` ← downstream of org.apache.camel:camel-test-junit6
- `camel-lzf` ← downstream of org.apache.camel:camel-test-junit6
- `camel-mail` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-mail-microsoft-oauth` ← downstream of org.apache.camel:camel-mail
- `camel-main` ← downstream of org.apache.camel:camel-test-junit6
- `camel-management` ← downstream of org.apache.camel:camel-core
- `camel-mapstruct` ← downstream of org.apache.camel:camel-test-junit6
- `camel-master` ← downstream of org.apache.camel:camel-test-junit6
- `camel-maven-plugin` ← downstream of org.apache.camel:camel-spring-main
- `camel-mcp-server` ← downstream of org.apache.camel:camel-test-junit6
- `camel-mcp-server-api` ← downstream of org.apache.camel:camel-test-junit6
- `camel-mdc` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-metrics` ← downstream of org.apache.camel:camel-test-junit6
- `camel-micrometer` ← downstream of org.apache.camel:camel-test-junit6
- `camel-micrometer-observability` ← downstream of org.apache.camel:camel-undertow
- `camel-micrometer-prometheus` ← downstream of org.apache.camel:camel-platform-http-main
- `camel-microprofile-config` ← downstream of org.apache.camel:camel-test-junit6
- `camel-microprofile-fault-tolerance` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-microprofile-health` ← downstream of org.apache.camel:camel-test-junit6
- `camel-milo` ← downstream of org.apache.camel:camel-test-junit6
- `camel-milvus` ← downstream of org.apache.camel:camel-test-junit6
- `camel-mina` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-mina-sftp` ← downstream of org.apache.camel:camel-test-junit6
- `camel-minio` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-mllp` ← downstream of org.apache.camel:camel-test-junit6
- `camel-mongodb` ← downstream of org.apache.camel:camel-test-junit6
- `camel-mongodb-gridfs` ← downstream of org.apache.camel:camel-test-junit6
- `camel-mustache` ← downstream of org.apache.camel:camel-test-junit6
- `camel-mvel` ← downstream of org.apache.camel:camel-test-junit6
- `camel-mybatis` ← downstream of org.apache.camel:camel-test-junit6
- `camel-nats` ← downstream of org.apache.camel:camel-test-junit6
- `camel-neo4j` ← downstream of org.apache.camel:camel-test-junit6
- `camel-netty` ← downstream of org.apache.camel:camel-main
- `camel-netty-http` ← downstream of org.apache.camel:camel-http
- `camel-oaipmh` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-oauth` ← downstream of org.apache.camel:camel-test-junit6
- `camel-observability-services` ← downstream of org.apache.camel:camel-opentelemetry2
- `camel-observation` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-ocsf` ← downstream of org.apache.camel:camel-test-junit6
- `camel-odata` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ognl` ← downstream of org.apache.camel:camel-test-junit6
- `camel-olingo2` ← downstream of org.apache.camel:camel-test-junit6
- `camel-olingo2-api` ← downstream of org.apache.camel:camel-test-junit6
- `camel-olingo4` ← downstream of org.apache.camel:camel-test-junit6
- `camel-olingo4-api` ← downstream of org.apache.camel:camel-test-junit6
- `camel-once` ← downstream of org.apache.camel:camel-test-junit6
- `camel-opa` ← downstream of org.apache.camel:camel-test-junit6
- `camel-openai` ← downstream of org.apache.camel:camel-test-junit6
- `camel-openapi-java` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-openapi-validator` ← downstream of org.apache.camel:camel-test-junit6
- `camel-openfga` ← downstream of org.apache.camel:camel-test-junit6
- `camel-opensearch` ← downstream of org.apache.camel:camel-test-junit6
- `camel-openstack` ← downstream of org.apache.camel:camel-test-junit6
- `camel-opentelemetry` ← downstream of org.apache.camel:camel-undertow
- `camel-opentelemetry-metrics` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-opentelemetry2` ← downstream of org.apache.camel:camel-undertow
- `camel-optaplanner` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-paho` ← downstream of org.apache.camel:camel-test-junit6
- `camel-paho-mqtt5` ← downstream of org.apache.camel:camel-test-junit6
- `camel-parquet-avro` ← downstream of org.apache.camel:camel-test-junit6
- `camel-pdf` ← downstream of org.apache.camel:camel-test-junit6
- `camel-pg-replication-slot` ← downstream of org.apache.camel:camel-test-junit6
- `camel-pgevent` ← downstream of org.apache.camel:camel-test-junit6
- `camel-pgvector` ← downstream of org.apache.camel:camel-test-junit6
- `camel-pinecone` ← downstream of org.apache.camel:camel-test-junit6
- `camel-platform-http` ← downstream of org.apache.camel:camel-test-junit6
- `camel-platform-http-jolokia` ← downstream of org.apache.camel:camel-platform-http
- `camel-platform-http-main` ← downstream of org.apache.camel:camel-test-junit6
- `camel-platform-http-vertx` ← downstream of org.apache.camel:camel-test-junit6
- `camel-plc4x` ← downstream of org.apache.camel:camel-test-junit6
- `camel-pqc` ← downstream of org.apache.camel:camel-test-junit6
- `camel-printer` ← downstream of org.apache.camel:camel-test-junit6
- `camel-protobuf` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-pubnub` ← downstream of org.apache.camel:camel-test-junit6
- `camel-pulsar` ← downstream of org.apache.camel:camel-test-junit6
- `camel-python` ← downstream of org.apache.camel:camel-test-junit6
- `camel-python3` ← downstream of org.apache.camel:camel-test-junit6
- `camel-qdrant` ← downstream of org.apache.camel:camel-test-junit6
- `camel-quartz` ← downstream of org.apache.camel:camel-cron
- `camel-quickfix` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-quickjs` ← downstream of org.apache.camel:camel-test-junit6
- `camel-reactive-streams` ← downstream of org.apache.camel:camel-test-junit6
- `camel-reactor` ← downstream of org.apache.camel:camel-test-junit6
- `camel-redis` ← downstream of org.apache.camel:camel-test-junit6
- `camel-resilience4j` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-resilience4j-micrometer` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-resourceresolver-github` ← downstream of org.apache.camel:camel-test-junit6
- `camel-rest` ← components/camel-rest/src/main/java/org/apache/camel/component/rest/RestProducer.java
- `camel-rest-openapi` ← downstream of org.apache.camel:camel-rest
- `camel-rest-postman` ← downstream of org.apache.camel:camel-rest
- `camel-restdsl-openapi-plugin` ← downstream of org.apache.camel:camel-servlet
- `camel-robotframework` ← downstream of org.apache.camel:camel-test-junit6
- `camel-rocketmq` ← downstream of org.apache.camel:camel-test-junit6
- `camel-rss` ← downstream of org.apache.camel:camel-test-junit6
- `camel-rxjava` ← downstream of org.apache.camel:camel-test-junit6
- `camel-salesforce` ← downstream of org.apache.camel:camel-test-junit6
- `camel-salesforce-codegen` ← downstream of org.apache.camel:camel-salesforce
- `camel-sap-netweaver` ← downstream of org.apache.camel:camel-test-junit6
- `camel-saxon` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-schematron` ← downstream of org.apache.camel:camel-test-junit6
- `camel-semantic` ← downstream of org.apache.camel:camel-test-junit6
- `camel-servicenow` ← downstream of org.apache.camel:camel-test-junit6
- `camel-servicenow-maven-plugin` ← downstream of org.apache.camel:camel-test-junit6
- `camel-servlet` ← downstream of org.apache.camel:camel-test-junit6
- `camel-shell` ← downstream of org.apache.camel:camel-test-junit5
- `camel-shiro` ← downstream of org.apache.camel:camel-test-junit6
- `camel-sjms` ← downstream of org.apache.camel:camel-test-junit6
- `camel-sjms2` ← downstream of org.apache.camel:camel-test-junit6
- `camel-slack` ← downstream of org.apache.camel:camel-test-junit6
- `camel-smb` ← downstream of org.apache.camel:camel-test-junit6
- `camel-smooks` ← downstream of org.apache.camel:camel-test-junit6
- `camel-smpp` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-snakeyaml` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-snmp` ← downstream of org.apache.camel:camel-test-junit6
- `camel-soap` ← downstream of org.apache.camel:camel-test-junit6
- `camel-solr` ← downstream of org.apache.camel:camel-test-junit6
- `camel-spiffe` ← downstream of org.apache.camel:camel-test-junit6
- `camel-splunk-hec` ← downstream of org.apache.camel:camel-test-junit6
- `camel-spring` ← downstream of org.apache.camel:camel-cron
- `camel-spring-ai-chat` ← downstream of org.apache.camel:camel-test-junit6
- `camel-spring-ai-embeddings` ← downstream of org.apache.camel:camel-test-junit6
- `camel-spring-ai-image` ← downstream of org.apache.camel:camel-test-junit6
- `camel-spring-ai-vector-store` ← downstream of org.apache.camel:camel-test-junit6
- `camel-spring-batch` ← downstream of org.apache.camel:camel-test-junit6
- `camel-spring-cloud-config` ← downstream of org.apache.camel:camel-test-junit6
- `camel-spring-jdbc` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-spring-ldap` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-spring-main` ← downstream of org.apache.camel:camel-main
- `camel-spring-rabbitmq` ← downstream of org.apache.camel:camel-http
- `camel-spring-redis` ← downstream of org.apache.camel:camel-test-junit6
- `camel-spring-security` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-spring-ws` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-spring-xml` ← downstream of org.apache.camel:camel-test-junit6
- `camel-sql` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-ssh` ← downstream of org.apache.camel:camel-test-junit6
- `camel-state-store` ← downstream of org.apache.camel:camel-test-main-junit5
- `camel-stax` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-stitch` ← downstream of org.apache.camel:camel-test-junit6
- `camel-stream` ← downstream of org.apache.camel:camel-test-junit6
- `camel-streamcaching-test` ← downstream of org.apache.camel:camel-test-junit6
- `camel-stringtemplate` ← downstream of org.apache.camel:camel-test-junit6
- `camel-stripe` ← downstream of org.apache.camel:camel-test-junit6
- `camel-swift` ← downstream of org.apache.camel:camel-test-junit6
- `camel-syslog` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-tahu` ← downstream of org.apache.camel:camel-test-junit6
- `camel-tarfile` ← downstream of org.apache.camel:camel-test-junit6
- `camel-telegram` ← downstream of org.apache.camel:camel-test-junit6
- `camel-telemetry` ← downstream of org.apache.camel:camel-undertow
- `camel-telemetry-dev` ← downstream of org.apache.camel:camel-undertow
- `camel-tensorflow-serving` ← downstream of org.apache.camel:camel-test-junit6
- `camel-test-infra-all` ← downstream of org.apache.camel:camel-test-infra-artemis
- `camel-test-infra-artemis` ← downstream of org.apache.camel:camel-test-junit6
- `camel-test-infra-smb` ← downstream of org.apache.camel:camel-test-junit6
- `camel-test-junit5` ← downstream of org.apache.camel:camel-rest
- `camel-test-junit6` ← downstream of org.apache.camel:camel-rest
- `camel-test-main-junit5` ← downstream of org.apache.camel:camel-test-junit5
- `camel-test-main-junit6` ← downstream of org.apache.camel:camel-test-junit6
- `camel-test-spring-junit5` ← downstream of org.apache.camel:camel-test-junit5
- `camel-test-spring-junit6` ← downstream of org.apache.camel:camel-test-junit6
- `camel-thrift` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-thymeleaf` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-tika` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-toon` ← downstream of org.apache.camel:camel-test-junit5
- `camel-tracing` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-twilio` ← downstream of org.apache.camel:camel-test-junit6
- `camel-twitter` ← downstream of org.apache.camel:camel-test-junit6
- `camel-typesafe-ai` ← downstream of org.apache.camel:camel-test-junit6
- `camel-ubl` ← downstream of org.apache.camel:camel-test-junit5
- `camel-undertow` ← downstream of org.apache.camel:camel-rest
- `camel-undertow-spring-security` ← downstream of org.apache.camel:camel-test-junit6
- `camel-univocity-parsers` ← downstream of org.apache.camel:camel-spring-xml
- `camel-velocity` ← downstream of org.apache.camel:camel-test-spring-junit6
- `camel-vertx` ← downstream of org.apache.camel:camel-test-junit6
- `camel-vertx-http` ← downstream of org.apache.camel:camel-rest
- `camel-vertx-websocket` ← downstream of org.apache.camel:camel-test-junit6
- `camel-wasm` ← downstream of org.apache.camel:camel-test-junit6
- `camel-weather` ← downstream of org.apache.camel:camel-test-junit6
- `camel-weaviate` ← downstream of org.apache.camel:camel-test-junit6
- `camel-web3j` ← downstream of org.apache.camel:camel-test-junit6
- `camel-webhook` ← downstream of org.apache.camel:camel-test-junit6
- `camel-whatsapp` ← downstream of org.apache.camel:camel-test-junit6
- `camel-wordpress` ← downstream of org.apache.camel:camel-test-junit6
- `camel-workday` ← downstream of org.apache.camel:camel-test-junit6
- `camel-xchange` ← downstream of org.apache.camel:camel-test-junit6
- `camel-xj` ← downstream of org.apache.camel:camel-test-junit6
- `camel-xml-io-dsl` ← downstream of org.apache.camel:camel-rest
- `camel-xml-jaxb-dsl` ← downstream of org.apache.camel:camel-rest
- `camel-xml-jaxb-dsl-test-definition` ← downstream of org.apache.camel:camel-rest
- `camel-xml-jaxb-dsl-test-spring` ← downstream of org.apache.camel:camel-rest
- `camel-xmlsecurity` ← downstream of org.apache.camel:camel-test-junit6
- `camel-xmpp` ← downstream of org.apache.camel:camel-test-junit6
- `camel-xslt-saxon` ← downstream of org.apache.camel:camel-spring-xml
- `camel-yaml-dsl-validator` ← downstream of org.apache.camel:camel-yaml-dsl
- `camel-yaml-dsl-validator-maven-plugin` ← downstream of org.apache.camel:camel-yaml-dsl-validator
- `camel-zendesk` ← downstream of org.apache.camel:camel-test-junit6
- `camel-zip-deflater` ← downstream of org.apache.camel:camel-test-junit6
- `camel-zipfile` ← downstream of org.apache.camel:camel-test-junit6
- `camel-zookeeper` ← downstream of org.apache.camel:camel-test-junit6
- `camel-zookeeper-master` ← downstream of org.apache.camel:camel-test-junit6
</details>
<details><summary>Modules with tests skipped (28)</summary>
- `apache-camel`
- `camel-allcomponents`
- `camel-catalog`
- `camel-catalog-console`
- `camel-catalog-maven`
- `camel-catalog-suggest`
- `camel-componentdsl`
- `camel-endpointdsl`
- `camel-endpointdsl-support`
- `camel-itest`
- `camel-jbang-core`
- `camel-jbang-it`
- `camel-jbang-main`
- `camel-jbang-plugin-edit`
- `camel-jbang-plugin-generate`
- `camel-jbang-plugin-kubernetes`
- `camel-jbang-plugin-test`
- `camel-kamelet-main`
- `camel-launcher`
- `camel-report-maven-plugin`
- `camel-route-parser`
- `camel-salesforce-maven-plugin`
- `camel-yaml-dsl`
- `camel-yaml-dsl-deserializers`
- `camel-yaml-dsl-maven-plugin`
- `coverage`
- `docs`
- `dummy-component`
</details>
> :information_source: Shadow mode — Scalpel observes but does not affect test execution. [Learn more](https://github.com/maveniverse/scalpel)
</details>
:warning: **Some tests are disabled on GitHub Actions** (`@DisabledIfSystemProperty(named = "ci.env.name")`) and require manual verification:
- `core/camel-core`: 4 test(s) disabled on GitHub Actions
<details><summary>Build reactor — dependencies compiled but only changed modules were tested (2 modules, 10.1s total)</summary>
**Total reactor time:** 10.1s
| Module | Duration | Status |
| --- | --- | --- |
| Camel :: REST | 10.1s | SUCCESS |
| Camel :: Core | n/a | |
**Top 20 slowest modules:**
- `Camel :: REST` (10.1s)
</details>
---
:gear: [View full build and test results](https://github.com/apache/camel/actions/runs/37433879280)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] CAMEL-25373: camel-rest - the unresolved path parameter warning comes back once a minute, and names an exchange property [camel]
Posted by "davsclaus (via GitHub)" <gi...@apache.org>.
davsclaus merged PR #27426:
URL: https://github.com/apache/camel/pull/27426
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] CAMEL-25373: camel-rest - the unresolved path parameter warning comes back once a minute, and names an exchange property [camel]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #27426:
URL: https://github.com/apache/camel/pull/27426#issuecomment-6012090021
:star2: Thank you for your contribution to the Apache Camel project! :star2:
:robot: CI automation will test this PR automatically.
:camel: Apache Camel Committers, please review the following items:
* First-time contributors **require MANUAL approval** for the GitHub Actions to run
* You can use the command `/component-test (camel-)component-name1 (camel-)component-name2..` to request a test from the test bot although they are normally detected and executed by CI.
* You can label PRs using `skip-tests` and `test-dependents` to fine-tune the checks executed by this PR.
* Build and test logs are available in the summary page. **Only** [Apache Camel committers](https://camel.apache.org/community/team/#committers) have access to the summary.
:warning: Be careful when sharing logs. Review their contents before sharing them publicly.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] CAMEL-25373: camel-rest - the unresolved path parameter warning comes back once a minute, and names an exchange property [camel]
Posted by "oscerd (via GitHub)" <gi...@apache.org>.
oscerd commented on code in PR #27426:
URL: https://github.com/apache/camel/pull/27426#discussion_r4193596161
##########
components/camel-rest/src/main/java/org/apache/camel/component/rest/RestProducer.java:
##########
@@ -180,11 +185,17 @@ protected void prepareExchange(Exchange exchange) throws Exception {
// the request is sent with the placeholder still in the path, and the service answers 404 for a
// path that holds a {name}, so say which parameter had no value (CAMEL-24986)
String unresolved = firstPlaceholder(resolvedUriTemplate);
Review Comment:
**The warning can name a parameter that has a value when one segment holds two placeholders**
Pre-existing since #26843 rather than introduced here, but this PR now repeats the message and keys the new property hint on the same name, so it may be worth fixing here or in a follow-up.
A segment is kept whole as soon as any placeholder in it has no value (lines 174-181), and `firstPlaceholder` then returns the first `{name}` of that segment, which may be one that did resolve. With the inputs of `RestProducerPathTest.testMissingHeaderSingleParam` (`rest:get:list/{id}_{val}`, header `id=1`, no `val`):
- `resolvePlaceholders("{id}_{val}")` returns `1_{val}`, which still holds a `{`, so the original `{id}_{val}` is kept;
- `firstPlaceholder("list/{id}_{val}")` returns `id`;
- the log reads `The path parameter {id} of list/{id}_{val} has no value: set the header id ...`, although `id` is set and `val` is the one missing;
- had `val` been put in an exchange property (the mistake this PR targets), the hint looks up property `id` and is not shown.
Two placeholders in one segment is a supported shape (`RestProducerPathTest.testUnderscoreSeparator` uses `{id}_{val}`, and OpenAPI paths such as `/files/{name}.{ext}` reach this producer through `rest-openapi`). One option: report the first valid name for which neither the header nor the exchange variable has a value, falling back to the first name otherwise. This only runs when something is unresolved, so the normal path is not affected.
##########
core/camel-core/src/test/java/org/apache/camel/component/rest/RestProducerUnresolvedPathWarnTest.java:
##########
@@ -126,4 +127,33 @@ public void testSaysNothingWhenEveryParameterHasAValue() throws Exception {
assertEquals("http://localhost/warnnone/1", exchange.getIn().getHeader(Exchange.REST_HTTP_URI));
assertTrue(warningsFor("warnnone").isEmpty(), warnings.toString());
}
+
+ /** CAMEL-25373: the value kept as an exchange property is named, as that is the usual mistake. */
+ @Test
+ public void testSaysWhenTheValueIsAnExchangeProperty() throws Exception {
+ RestProducer producer = createProducer("rest:get:warnprop/{sku}");
+ Exchange exchange = producer.createExchange();
+ exchange.setProperty("sku", "CAMEL-MUG");
+
+ producer.process(exchange);
+
+ List<String> mine = warningsFor("warnprop");
+ assertEquals(1, mine.size(), warnings.toString());
+ assertTrue(mine.get(0).contains("There is an exchange property sku"), mine.get(0));
+ assertTrue(mine.get(0).contains("use setHeader"), mine.get(0));
+ }
+
+ /** CAMEL-25373: the warning comes back once the interval has passed, so a storm of failures does not bury it. */
+ @Test
+ public void testSaysItAgainAfterTheInterval() throws Exception {
+ RestProducer producer = createProducer("rest:get:warnagain/{id}");
+ producer.warnIntervalMillis = 0;
+
+ for (int i = 0; i < 3; i++) {
+ Exchange exchange = producer.createExchange();
+ producer.process(exchange);
+ }
+
+ assertEquals(3, warningsFor("warnagain").size(), warnings.toString());
Review Comment:
**No test pins the hint's absence when there is no exchange property**
Nothing asserts that the hint stays out when there is no exchange property: `testSaysWhichParameterHasNoValue` and `testSaysItOncePerParameter` only look for the base text, so a condition that always appended the hint would pass every test. This test sets no property, so it can pin that case at no cost:
```suggestion
List<String> mine = warningsFor("warnagain");
assertEquals(3, mine.size(), warnings.toString());
// no exchange property id is set, so the hint about one must not be added
assertTrue(mine.stream().noneMatch(w -> w.contains("There is an exchange property")), mine.toString());
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org