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/09/24 06:22:57 UTC
[PR] CAMEL-24983: simple - say what to write when ! is used to negate a function [camel]
davsclaus opened a new pull request, #26822:
URL: https://github.com/apache/camel/pull/26822
Simple has no boolean `!` prefix, and a negated function failed with a message that points at the operator rather than at the `!`:
```
${body != null && !${body.isEmpty()}}
-> Logical operator && needs a predicate on the right hand side, e.g. ${header.foo} == 'bar'; was: !${body.isEmpty()}
```
**The nesting is not the problem** — I checked each shape against the runtime before writing the fix:
| expression | result |
|---|---|
| `${body != null && ${body.isEmpty()}}` | evaluates — nesting is fine |
| `${body != null && !${body.isEmpty()}}` | fails |
| `${body != null && !body.isEmpty()}` | fails too, un-nested |
| `${body != null && ${body.isEmpty()} == false}` | evaluates |
| `${body != null && body.isEmpty() == false}` | evaluates |
So the `!` is the cause, and the message now names it and the comparison to write:
```
! does not negate a function: compare it instead, so !${body.isEmpty()} is written as
${body.isEmpty()} == false, or negate the operator (!=, !contains)
```
A negated operator is left alone — `${body} !contains 'x'` is unaffected, and the test asserts it.
### Where it comes from
The local-model benchmark: across 1586 route files a model wrote, this shape appears in three separate series. A person coming from Java or JavaScript writes it too.
### Testing
`SimpleSyntaxHintsTest` gains `testNegatedFunction` covering the nested and un-nested forms and the negated-operator case, with a `functionError` helper for functions that only fail when the node builds its expression (operators inside `${ }`, CAMEL-24921) — the existing parser helpers accept those as a single token. 25 tests in that class and 601 `Simple*` tests in camel-core pass.
Follow-up: CAMEL-24984 proposes supporting `!` as a real negation prefix. If that lands, this message needs revisiting.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj
--
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-24983: simple - say what to write when ! is used to negate a function [camel]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #26822:
URL: https://github.com/apache/camel/pull/26822#issuecomment-5809148753
<!-- ci-tested-modules -->
:test_tube: **CI tested the following changed modules:**
- `core/camel-core-languages`
- `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.
---
<details><summary>:microscope: Scalpel shadow comparison — Scalpel: 479 of 693 tested, 28 compile-only — current: 483 all tested</summary>
[Maveniverse Scalpel](https://github.com/maveniverse/scalpel) detected **479 affected modules** (current approach: 483).
**Skip-tests mode would test 479 modules** (2 direct + 477 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 (479)</summary>
- `archetypes` ← downstream of org.apache.camel:camel-test-junit6
- `camel-a2a` ← downstream of org.apache.camel:camel-core-languages
- `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-core-languages
- `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-base64
- `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-core-languages
- `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/language/simple/SimpleSyntaxHintsTest.java
- `camel-core-all` ← downstream of org.apache.camel:camel-core-languages
- `camel-core-languages` ← core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleSyntaxHints.java
- `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-attachments
- `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-attachments
- `camel-ftp` ← downstream of org.apache.camel:camel-core-languages
- `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-core-languages
- `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-java-joor-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-core-languages
- `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-main
- `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-core-languages
- `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-core-languages
- `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-attachments
- `camel-mail-microsoft-oauth` ← downstream of org.apache.camel:camel-mail
- `camel-main` ← downstream of org.apache.camel:camel-core-languages
- `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-core-languages
- `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-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-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` ← downstream of org.apache.camel:camel-core-languages
- `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-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-attachments
- `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-core-languages
- `camel-test-junit6` ← downstream of org.apache.camel:camel-core-languages
- `camel-test-main-junit5` ← downstream of org.apache.camel:camel-main
- `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-core-languages
- `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-core-languages
- `camel-xml-jaxb-dsl` ← downstream of org.apache.camel:camel-core-languages
- `camel-xml-jaxb-dsl-test-definition` ← downstream of org.apache.camel:camel-core-languages
- `camel-xml-jaxb-dsl-test-spring` ← downstream of org.apache.camel:camel-core-languages
- `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-core-languages
- `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`: 3 test(s) disabled on GitHub Actions
<details><summary>Build reactor — dependencies compiled but only changed modules were tested (2 modules, 8.0s total)</summary>
**Total reactor time:** 8.0s
| Module | Duration | Status |
| --- | --- | --- |
| Camel :: Core Languages | 8.0s | SUCCESS |
| Camel :: Core | n/a | |
**Top 20 slowest modules:**
- `Camel :: Core Languages` (8.0s)
</details>
---
:gear: [View full build and test results](https://github.com/apache/camel/actions/runs/35964212734)
--
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-24983: simple - say what to write when ! is used to negate a function [camel]
Posted by "davsclaus (via GitHub)" <gi...@apache.org>.
davsclaus closed pull request #26822: CAMEL-24983: simple - say what to write when ! is used to negate a function
URL: https://github.com/apache/camel/pull/26822
--
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-24983: simple - say what to write when ! is used to negate a function [camel]
Posted by "davsclaus (via GitHub)" <gi...@apache.org>.
davsclaus commented on PR #26822:
URL: https://github.com/apache/camel/pull/26822#issuecomment-5809718566
Closing in favour of CAMEL-24984 (#26824), which supports `!` as a negation prefix and makes this message wrong.
The shapes this PR added a hint for now work, so the hint would fire less and say the wrong thing where it still does:
| expression | with #26824 |
|---|---|
| `!${body.isEmpty()}` | evaluates |
| `${!body.isEmpty()}` | evaluates |
| `${body != null && !body.isEmpty()}` | evaluates |
| `${body != null && !${body.isEmpty()}}` | evaluates |
Where a `!` still cannot be read — `${a} && !x`, a name that is not a `${ }` function — the useful advice is no longer "compare it instead" but "write it as `!${x}`". That reworded hint is part of #26824, together with a test, so nothing from this PR is lost.
Thanks for the review that got it here: the finding about the vacuous negative test was right, and testing each shape against the runtime is what showed that the nesting was never the cause — the `!` was.
--
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-24983: simple - say what to write when ! is used to negate a function [camel]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #26822:
URL: https://github.com/apache/camel/pull/26822#issuecomment-5808899241
: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