[
https://issues.apache.org/jira/browse/SM-1975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jean-Baptiste Onofré updated SM-1975:
-------------------------------------
Fix Version/s: (was: 3.4.1)
EOL-3
> servicemix 3.3.2 camel-core 2.2.0 custom aggregation having problems
> ----------------------------------------------------------------------
>
> Key: SM-1975
> URL: https://issues.apache.org/jira/browse/SM-1975
> Project: ServiceMix
> Issue Type: Bug
> Components: servicemix-camel
> Affects Versions: 3.3.2
> Environment: Windows XP
> Reporter: Alex C Punnen
> Assignee: Jean-Baptiste Onofré
> Priority: Blocker
> Fix For: EOL-3
>
>
> We recently updated from servicemix 3.3.1 to version 3.3.2. We are using
> servicemix-camel component and making use of a custom aggregation for our
> functionality. This was working fine with camel 3.3.1.
> We found out that servicemix 3.3.2 now supports camel 2.2 . So we changed the
> namespace and also I had to change certain method signature. But now nothing
> happens on aggregation. Digging further we realized that the body that is
> passed into the aggregator object is null. Since we were using xpath to group
> messages based on the value of a field in the body of the NMR, the fact that
> the body is coming as null could be the reason that nothing is happening on
> aggregation.
> Here is the code snippet which was working in 1.6
> -----------
> 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("---------------------------");
> -------------------------------------------------------------------------------------
>
> New Body null
> Old Body null
> ---------------------------
> ---------------------------
> New Body Out null
> Old Body Out null
> ---------------------------
> -------------------------------------
> Here is the route
> --------------------------------
> 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")
> .aggregate(new MyAggregationStrategy()) //camel 2
> //.aggregator(new MyAggregationStrategy()) //camel 1.6
> .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");
>
> .to("log:tutorial"); //for test
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira