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]
