Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

recover headers value after split apache camel

I have a xml where I'm using the split tag to process in Spring DSL. What I'm doing is basically seaching for a value in the xml, when I find this value I need to get the value of another tag, child of the same element and save to a header. This operations seems simple, but I can't recover my headers outside split and I need to. I tried with headers and properties and the result was the same.

Please help me to figure out what I'm doing wrong.

Code sample:

<route>
...
<split>
    <xpath>//FatherTag/ChildTag</xpath>
    <to uri="direct:processingRoute"/>
</split>

</route>

<route>
<from uri="direct:processingRoute"/>
<choice>
<when>
<simple>....</simple>
    <setHeader headerName="foo">
        <constant>test</constant>
    </setHeader>
</when>
</choice>

</route>
like image 641
king_nl_ds Avatar asked May 21 '26 08:05

king_nl_ds


1 Answers

You need to define an AggregationStrategy. From Camel Splitter:

What the Splitter returns

Camel 2.3 and newer:

The Splitter will by default return the original input message.

For all versions

You can override this by suppling your own strategy as an AggregationStrategy.

Your AggregationStrategy needs to check the appropriate header set for each child tag and pass it on the resulting Exchange output message for the split operation.

like image 96
Ricardo Veguilla Avatar answered May 23 '26 23:05

Ricardo Veguilla