Hi all, I try to use "aggregator" with "xpath" but i have some strange behaviour. Here is my spring config file :
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://activemq.apache.org/schema/core" xmlns:g1="urn:mynamespace:myservice" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring-1.4.0.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"> <bean id="myProcessor" class="aggregator.MyProcessor" /> <bean id="myAggregatorStrategy" class="aggregator.MyAggregationStrategy"/> <camelContext id="myCamelContext" xmlns="http://activemq.apache.org/camel/schema/spring"> <!-- Let's try processor "aggregator" --> <!-- We use our own aggregation strategy define in aggregator.MyAggregationStrategy class --> <!-- Route with a defined batch size to stop collection of exchange. --> <route> <from uri="direct:aggreg-start" /> <aggregator strategyRef="myAggregatorStrategy" batchSize="2"> <xpath>/soapenv:Envelope/soapenv:Body/g1:creerMarche</xpath> <!-- simple>header.client</simple--> <to uri="mock:result" /> </aggregator> </route> </camelContext> </beans> This is my java code public void testSendingMessagesWithCustomAggregator() throws Exception { result.expectedMessageCount(1); producer.sendBodyAndHeader(REQUEST_MESSAGE, "client","client"); producer.sendBodyAndHeader(REQUEST_MESSAGE2, "client","client"); result.await(20,TimeUnit.SECONDS); List<Exchange> list = result.getReceivedExchanges(); for (Exchange exchange : list) { Message in = exchange.getIn(); String body = in.getBody(String.class); LOG.info("Result: " + body); } When I use <simple>header.client</simple> as predicate, my aggregation strategy code is executed. But when I try to use <xpath>/soapenv:Envelope/soapenv:Body/g1:creerMarche</xpath> my aggregation strategy code is never executed. Here is the REQUEST_MESSAGE values: private static final String REQUEST_MESSAGE = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:g1=\" urn:mynamespace:myservice\" xmlns:g11=\"urn:mynamespace:myservice \">" +"<soapenv:Header/>" + "<soapenv:Body>" + "<g1:creerMarche>" + "<g1:marche>" + "<g11:description>une desc1</g11:description>" + "<g11:nom>nom1</g11:nom>" + "<g11:id>id1</g11:id>" + "</g1:marche>" + "</g1:creerMarche>" + "</soapenv:Body>" + "</soapenv:Envelope>"; All help are welcome. Thanks in advance Mta38 -- View this message in context: http://www.nabble.com/Is-it-possible-to-use-aggregator-with-xpath-tp20014512s22882p20014512.html Sent from the Camel - Users mailing list archive at Nabble.com.
