added myaggregator and modified classes
This commit is contained in:
@@ -45,19 +45,20 @@ public class Main {
|
||||
public void configure() throws Exception {
|
||||
|
||||
from("direct:start")
|
||||
.setBody(constant("SELECT * FROM material LIMIT 10"))
|
||||
.setBody(constant("SELECT * FROM material"))
|
||||
.to("jdbc:source")
|
||||
.split(body())
|
||||
.to("activemq:queue:material");
|
||||
|
||||
from("direct:getPackages")
|
||||
.setHeader("material_id", simple("${body[id]}"))
|
||||
.setBody(simple("SELECT * FROM package WHERE material_id = :?material_id"))
|
||||
.to("jdbc:source?useHeadersAsParameters=true");
|
||||
|
||||
from("activemq:queue:material")
|
||||
.split(body())
|
||||
//.bean(myFunctions, "getId")
|
||||
.setHeader("id", simple("${body[id]}"))
|
||||
.setBody(constant("SELECT * FROM package WHERE material_id = :?id"))
|
||||
.to("jdbc:source?useHeadersAsParameters=true")
|
||||
.to("activemq:queue:materialPackage");
|
||||
//.to("log:?level=INFO&showBody=true");
|
||||
.enrich("direct:getPackages",new MyAggregator())
|
||||
.to("activemq:queue:materialPackage")
|
||||
.to("log:?level=INFO&showBody=true");
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@@ -3,15 +3,26 @@ package com.release11;
|
||||
import org.apache.camel.AggregationStrategy;
|
||||
import org.apache.camel.Exchange;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class MyAggregator implements AggregationStrategy {
|
||||
@Override
|
||||
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
|
||||
|
||||
String oldEx = oldExchange.getIn().getBody().toString();
|
||||
HashMap oldEx = (HashMap) oldExchange.getIn().getBody();
|
||||
System.out.println(oldEx);
|
||||
String newEx = newExchange.getIn().getBody().toString();
|
||||
ArrayList<HashMap> newEx = (ArrayList) newExchange.getIn().getBody();
|
||||
System.out.println(newEx);
|
||||
|
||||
return null;
|
||||
|
||||
oldEx.put("packages", newEx);
|
||||
Exchange result = oldExchange;
|
||||
result.getIn().setBody(oldEx);
|
||||
//result.getIn().setBody(body);
|
||||
System.out.println(result.getIn().getBody());
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user