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

   ## Summary
   
   Adds `endpointIdentity` attribute to `@UriParam` so components can declare 
which query parameters form part of the endpoint's destination identity. This 
allows tooling (especially the route topology service) to distinguish endpoints 
that share the same `scheme:context-path` but differ in identity-bearing query 
parameters.
   
   **Problem:** The route topology service strips all query params when 
matching endpoints (`scheme:context-path` only). This works for ~88% of 
components, but some encode the destination in query params (e.g., 
`couchbase?bucket=X`, `mongodb?database=X&collection=Y`, `dapr?topic=X`).
   
   **Solution:** Full metadata pipeline from annotation to runtime:
   
   - `@UriParam(endpointIdentity = true)` annotation attribute
   - `BaseOptionModel` field + getter/setter
   - `EndpointSchemaGeneratorMojo` reads and propagates through code generation
   - `JsonMapper` serializes to component JSON schema (conditional, only when 
`true`)
   - `EndpointUriFactory.endpointIdentityPropertyNames()` runtime API
   - Velocity template generates `ENDPOINT_IDENTITY_PROPERTY_NAMES` set in 
`EndpointUriFactory` implementations
   - `DefaultRouteTopologyDumper` uses identity params in URI normalization for 
endpoint matching
   - Catalog JSON updated for all annotated components
   
   **Annotated components** (7):
   - `couchbase` — `bucket`
   - `mongodb` — `database`, `collection`
   - `mongodb-gridfs` — `database`
   - `spring-rabbitmq` — `routingKey`, `queues`
   - `dapr` — `topic`
   - `hwcloud-obs` — `bucketName`
   - `iggy` — `streamName`
   
   ## Test plan
   
   - [x] `DefaultRouteTopologyDumperIdentityTest` — unit test verifying 
identity-aware URI normalization distinguishes same-path endpoints with 
different identity params
   - [x] `RouteTopologyDevConsoleIdentityTest` — integration test via 
DevConsole JSON output path
   - [x] Existing `DefaultRouteTopologyDumperTest` and 
`RouteTopologyDevConsoleTest` continue to pass
   - [x] Generated `EndpointUriFactory` classes contain correct 
`ENDPOINT_IDENTITY_PROPERTY_NAMES` sets
   - [x] Component JSON schemas include `"endpointIdentity": true` on annotated 
fields
   - [x] Catalog JSON files updated
   
   _Claude Code on behalf of Claus Ibsen_
   
   Co-Authored-By: Claude Opus 4.6 <[email protected]>


-- 
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