Claus Ibsen created CAMEL-23657:
-----------------------------------

             Summary: Enhance component metadata to mark destination-identity 
query parameters for topology matching
                 Key: CAMEL-23657
                 URL: https://issues.apache.org/jira/browse/CAMEL-23657
             Project: Camel
          Issue Type: Improvement
          Components: camel-core
            Reporter: Claus Ibsen


The route topology service (CAMEL-23656) matches endpoints across routes using 
scheme:context-path, stripping all query parameters. This works for the vast 
majority of components (88%) where the destination identity (queue name, topic 
name, bucket, etc.) is in the URI context path.

However, some components encode the destination identity in a required query 
parameter rather than the path. For these components, two URIs with the same 
scheme:context-path but different query parameter values actually point to 
different destinations, and topology matching would incorrectly consider them 
the same.

This ticket proposes enhancing the component metadata (the component JSON 
schema) to allow marking specific query parameters as "destination identity" 
parameters. The route topology service can then include those marked parameters 
when building canonical URIs for matching.

Components where destination is in a query parameter (not the path):

||Scheme||Path contains||Destination query param||
|couchbase|host:port|bucket (required)|
|mongodb|connection bean ref|database + collection|
|mongodb-gridfs|connection bean ref|database (required)|
|spring-rabbitmq|exchange name|routingKey + queues|
|dapr|operation type|topic|
|hwcloud-obs|operation type|bucketName|
|iggy|topic name|streamName|

Additionally, there are ~12 components (kubernetes-*, web3j) where the path 
identifies the server/cluster rather than the destination, with namespace or 
contract address in query parameters.

And ~19 components (azure-servicebus, azure-eventhubs, azure-cosmosdb, knative, 
cql, etc.) where path parameters are technically optional but usually provided 
by users.

This is a follow-up to CAMEL-23656.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to