davsclaus opened a new pull request, #26508:
URL: https://github.com/apache/camel/pull/26508

   Resolves [CAMEL-24770](https://issues.apache.org/jira/browse/CAMEL-24770). 
Follow-up to CAMEL-24710 (the YAML route examples): the other example kinds, 
measured on 2026-09-16 over the catalog pages and the user manual — 4,053 Java 
blocks, 2,717 XML blocks, 339 properties blocks. Checked mechanically: the 
literal endpoint URIs (6,189 in Java, 4,317 in XML) and Simple expressions 
(453) against the catalog, every XML `<route>` fragment (1,838) with the 
`camel-xml-io` parser, the `camel.*` property keys, and a list of Camel 2/3 API 
leftovers. Each finding below was verified against the component or model code 
before changing the page; the examples that are right for the runtime but fail 
a checker are listed at the end for the guard work.
   
   ## Java: API that no longer exists in Camel 4
   - **jms** — `.inOut().to(…)` ×6: `inOut()` is gone from 
`ProcessorDefinition`; now `.to(ExchangePattern.InOut, …)` (the page's own 
recommended form elsewhere)
   - **cxf** — `from(…).setFaultBody(constant(SOAP_FAULT))`: gone; the fault is 
set as the message body, as `CxfCustomizedExceptionTest` does
   - **lucene** — `new DefaultCamelContext(createRegistry())`: test-support API 
that no longer exists
   - **spring-ws** — `exchange.getOut()` (deprecated) and 
`getIn().addAttachment(…)` (gone): `getMessage()` and 
`getMessage(AttachmentMessage.class).addAttachment(…)`
   - **jt400** — curly quotes `“ ”` in the Java and XML examples
   
   ## XML the XML DSL parser rejects
   - **claimCheck-eip** `<removeHeader headerName>` → `name`; 
**datasonnet-language** `resultTypeName` ×3 → `resultType`; 
**failoverLoadBalancer-eip** `stickyMode` → `sticky`; **threading-model** 
(manual) `executorServiceRef` → `executorService`
   - **bindy-dataformat**, **crypto-dataformat** — `<marshal ref="…">`: data 
formats are referenced as `<marshal><custom ref="…"/></marshal>`
   - **validate-eip** — `<to uri="bean:x" method="…">`: `method` is not an 
attribute of `<to>`, it is a bean option
   - **selective-consumer** — `<simple>…</xpath>`
   - **avro** — a `<from>` that is not self-closed, so the next element nests 
inside it
   - **virtual-threads** (manual) — `<threads>` as a block with a nested 
`<to>`; `threads` is not a block in Camel 4
   - **infinispan**, **infinispan-embedded** — AsciiDoc callouts written as 
`<1>` inside XML, which is not XML; they are `<!--1-->`
   - unescaped `&` in `uri="…"`: **ftp**, **hivemq**, **mail** ×4, **avro** 
(the deliberately unescaped one on the endpoint page that demonstrates the SAX 
error is left alone)
   
   ## Endpoint URIs and options as the components read them
   - **xpath-language** — `timer:java?period=1000,repeatCount=1` (comma for `&`)
   - **keycloak-producer** — `operation=setUserPassword`: the operation is 
`resetUserPassword` (the page's own table says so)
   - **azure-storage-blob-operations** — `commitBlockBlobList` ×3: the 
operation is `commitBlobBlockList`
   - **ai-resource** — 
`to("aws2-s3://reports?fileName=latest.pdf&operation=getObject")`: the producer 
never reads `fileName` (a consumer option); `getObject` takes the key from the 
`CamelAwsS3Key` header or the `keyName` option
   - **jooq** — a consumer route with `?query=…`: `JooqConsumer` selects the 
whole table, the option is producer-only; the misleading route is removed (the 
page already shows the consumer form)
   - **rocketmq** — `producerGroup` on a `from()`; **virtual-threads** (manual) 
— `virtualThreadPerTask` on a `to("seda:…")`
   - **rss**, **http** ×2 — `httpClientConfigurer=myBean` / 
`httpContext=myBean`: bean references need `#`
   - **aws2-s3-producer-operations** — `region=region` placeholder replaced by 
a real region
   
   ## Properties
   - **graceful-shutdown** (manual) — 
`camel.main.logInflightExchangesOnTimeout` → 
`shutdownLogInflightExchangesOnTimeout`
   - **stream-caching** (manual) — a stray `;` after the value
   - **master** — the Spring Boot block used 
`camel.component.zookeeper.cluster.service.*`; the cluster services are 
configured as `camel.cluster.zookeeper.*` on both Camel Main and Spring Boot
   - **camel-report-maven-plugin** (manual) — a `...` line inside a YAML 
example, which YAML reads as a document-end marker
   
   The catalog docs mirror is regenerated; only `.adoc` files change.
   
   ## Right for the runtime, wrong for a checker (for the guards, not this PR)
   - ` contains '{name:XOrder}'` (validator page): the Simple **predicate** 
parser fails on a `}` inside a quoted literal (` contains '}'` fails, the 
expression parser accepts it) — `SimplePredicateParser.createNode` treats a `}` 
as a function end even outside a function; core fix in a separate PR
   - `kamelet:my-source?period=…` in a `from:`: the catalog turns leniency off 
for consumers of components that do both, so the Kamelet's own parameters are 
reported unknown
   - `RAW(se+re?t&23)`: the catalog's URI parsing splits on the `&` inside 
`RAW(…)`; the runtime's `URIScanner` does not
   - `log:foo?param1=…` (custom `ExchangeFormatter` properties by design), 
olingo2/olingo4 (already known), `throttle`'s `timePeriodMillis` and 
`Registry.bind` (still valid), and "missing required option" for credentials 
the examples leave out on purpose
   - the azure-storage-blob `operation` enum is missing `listBlobVersions`, 
`setBlobLegalHold`, `setBlobImmutabilityPolicy` and git's is missing `pushTag` 
(stale hardcoded `enums=`) — CAMEL-24748
   
   _Claude Code on behalf of 
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to