I just printed out the body of the exchange in the camel aggregator and it is
returning null !
 I guess this is one reason why the xpath is not working during aggregation.
Could this be a bug in camel 2.2 ?

Here are two snippets; one just printing the expected body as is , and the
second which routes it through the aggregator
-------------------------------------------------------------------------------------------------------
public class MyRouteBuilder extends RouteBuilder {

   public void configure() {
        System.out.println("In MyRouteBuilder------------------");
        
        Namespaces ns = new Namespaces("p", 
"http://nsn.com/obs/mw/medfra/snmpbc";)
        .add("xsd", "http://www.w3.org/2001/XMLSchema";);
                
from("jbi:service:http://servicemix.apache.org/test/camel-receiver";)
        .to("log:tutorial");  

-------------------------------------------------------------------------------------------------------
INFO  - AutoDeploymentService          - Directory: hotdeploy: Finished
installation of archive:  inmc-snmp-sa-1.0-SNAPSHOT.jar
INFO  - tutorial                       -
Exchange[BodyType:javax.xml.transform.stream.StreamSource,
 Body:<p:snmp-getResponse xmlns:p="http://nsn.com/obs/mw/medf
ra/snmpbc" xmlns:xsi="http://www.w3.org/2001/XMLSchema";>
  <p:NE ipaddr="10.58.128.10"/>
  <p:get-response> 1.3.6.1.6.3.1.1.4.1.0
    <p:variable-bindings>
      <p:varBinding name="1.3.6.1.6.3.1.1.4.1.0">noSuchObject</p:varBinding>
     </p:variable-bindings>
  </p:get-response>
</p:snmp-getResponse>
------------------------------------------------------------------------------------------------------------------

public class MyRouteBuilder extends RouteBuilder {
                
    public void configure() {
        from("jbi:service:http://servicemix.apache.org/test/camel-receiver";)
        .aggregate(new MyAggregationStrategy()) //camel 2
        //.aggregator(new MyAggregationStrategy()) //camel 1.6
        .header("*")
        //.xpath("string(/p:snmp-getResponse/p:NE/@ipaddr)",String.class, ns)
        //.completedPredicate(header("completed").isEqualTo("true")) //camel
1.6
                .completionPredicate(header("completed").isEqualTo("true")) 
//camel 2
        
//.to("jbi:endpoint:http://servicemix.apache.org/test/file_sender_getbulk/endpoint";);
 
// 3 
                .to("log:tutorial");  

-------------------------------------------------------------------------------------------------------

public class MyAggregationStrategy implements AggregationStrategy {

public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {


String oldBody = oldExchange.getIn().getBody(String.class);
String newBody = newIn.getBody(String.class);

System.out.println("---------------------------");
System.out.println("New Body "+newBody);
System.out.println("Old Body "+oldBody);
System.out.println("---------------------------");

String oldBody2 = oldExchange.getOut().getBody(String.class);
String newBody2 = newExchange.getOut().getBody(String.class);

System.out.println("---------------------------");
System.out.println("New Body Out "+newBody2);
System.out.println("Old Body  Out "+oldBody2);
System.out.println("---------------------------");

-------------------------------------------------------------------------------------
INFO  - AutoDeploymentService          - Directory: hotdeploy: Finis
tion of archive:  inmc-snmp-sa-1.0-SNAPSHOT.jar
Going in aggregate 123i4
Exception in Aggregator
java.lang.NullPointerException
Going in aggregate 123i4
---------------------------
New Body null
Old Body null
---------------------------
---------------------------
New Body Out null
Old Body  Out null
---------------------------
getIp - inXMLnull
Exception caught getIp java.lang.NullPointerException
Ip-->
Status-->
Exception in Aggregator
java.lang.NumberFormatException: For input string: ""

-- 
View this message in context: 
http://camel.465427.n5.nabble.com/camel-aggregator-2-2-xpath-based-routing-not-working-tp2840127p2840432.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to