Can you explain in more detail what you want to do? I didn't understand
your requirement...
One question: Your "aggregation" object implements Predicate *AND*
AggregationStrategy?

By looking a your example, your direct endpoint receives (String/Byte
array/...) messages and convert it into a JAXB annotated Java Object. You
aggregate all messages based on the "MSG/MID" element until your
aggregation predicate indicates the end. Afterwards you send the aggregated
messages to another direct endpoint.
*IF* you want to send back a message at the time it receives in the
aggregator, I would do something like this

from("direct:atsm-segment")
  .unmarshal(jaxb)
  .inOnly("seda:aggregator")
  .inOut("bean:myResponseBuilder")
  .marshal(jaxb);

from("seda:aggregator")
  .aggregate(xpath("/MSG/MID"),
aggregation).completionPredicate(aggregation)
  .to("direct:atsm-out");

Best,
Christian

On Fri, Mar 1, 2013 at 2:29 PM, Sven Bauhan <sven.bau...@ast.dfs.de> wrote:

> Hi,
>
> I'm quite new to Camel and I have a problem to understand the basic
> principle of sending replys back to a sender.
> I try to implement a protocol that aggregates segments to a complete
> message. For each segment a reply message is expected by the sender.
> My route is now:
>
>         JaxbDataFormat jaxb = new JaxbDataFormat();
>         ATSMAggregationStrategy aggregation = new
> ATSMAggregationStrategy();
>         from("direct:atsm-segment")
>             .unmarshal(jaxb).aggregate(**xpath("/MSG/MID"), aggregation)
>             .completionPredicate(**aggregation).to("direct:atsm-**out");
>
> Do I have to set the exchange pattern of the aggregator to InOut? How can
> I do this?
> How is the reply message defined? Do I have to set the out message in the
> aggregation strategy?
> How do I trigger sending of a reply message?
> How is the reply messages routed back to the sender?
> Is the reply messages processed automatically (JAXB)?
>
> Thanks,
> Sven Bauhan
>
>


--

Reply via email to