[ 
https://issues.apache.org/jira/browse/CAMEL-5567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13448545#comment-13448545
 ] 

Claus Ibsen commented on CAMEL-5567:
------------------------------------

Alan

First of all XML is not a programming language, and we have to avoid bloating 
the DSLs.

What you talk about is already possible in a programming language such as Java, 
where you can combine expressions/predicates into compounds.
There is an ExpressionBuilder / PredicateBuilder with and|or constructs.

And if you are a XPath/XQuery ninja, you could most likely construct a single 
expression that has compound xpaths build in etc.

Also you have to think about consistency. All the EIPs and whatnot in the DSL 
have building blocks such as of a Predicate | Expression you can use to 
configure them with. So we cannot do something "special" for the aggregator etc.

Also its a bit hard to do a compound expression in XML language, as what does 
that mean exactly? Some maybe want all the expressions to be build together 
(AND), and others may want only the first which has a not null value (eg OR) as 
you. And others a combination of them. And then it gets tough to express such 
use-cases in a XML file. XML is after all not a programming language with 
powerful control flows and constructs.


                
> Add Multiple correlation Ids to the Aggregator component
> --------------------------------------------------------
>
>                 Key: CAMEL-5567
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5567
>             Project: Camel
>          Issue Type: Improvement
>            Reporter: Alan Foster
>
> Currently the aggregator component allows users to specifiy one expression 
> that they would like to use for aggregation
> It would be nice to add many different correlation expressions for all of the 
> different payload contents that an aggregator can receive
> For instance it may look like 
> {code}
> <camelContext xmlns="http://camel.apache.org/schema/spring";>
>     <route>
>         <from uri="direct:start"/>
>       
>         <aggregate strategyRef="aggregatorStrategy" completionTimeout="3000">
>             <correlationExpression>
>                 <!-- If this xpath returns nothing try the next expression 
> etc -->
>                 <xpath>/AcmeServiceResponse/CorrelationId/text()</xpath>
>                 <xpath>/FooResponse/Id/text()</xpath>
>                 <xpath>/CorrelationKey/text()</xpath>
>             </correlationExpression>
>             <to uri="mock:aggregated"/>
>         </aggregate>
>     </route>
> </camelContext>
> {code}
> I wonder what your thoughts are on this suggestion? If it seems like a good 
> idea I can start to make a patch for it
> Alan

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to