I think you've solved my problem. I was looking at the 'in' message of the
resource exchange, whereas I should be looking at the 'out' message. And,
btw, yes the CinemaQueryAssembler is thread-safe, I actually think all code
should be threadsafe ;)

On Tue, Mar 3, 2009 at 7:02 AM, Martin Krasser <[email protected]>wrote:

> Hi Peter,
>
> the route looks good to me.
>
> * The in-messages of the original exchange and the resource exchange are
> always identical. The out-message of the resource exchange will contain the
> result from 'direct:enrichMovie'.
> * What message exchange pattern do you use when you test (print the
> contents of) the 'direct:enrichMovie' route?
> * Is the CinemaQueryAssembler thread-safe? You're doing parallel processing
> of split messages.
>
> Martin
>
> Peter Maas schrieb:
>
>  Hi list,
>>
>> I'm developing a proof-of-concept application using Camel 2.0. Everything
>> seems to work just find... except for the content-enricher. Both the
>> resource exchange passed to my AggregationStrategy look identical. Whilst if
>> I print the contents of the resource route I the the correct xml in the
>> exchange after calling the http service. My routes look like this:
>>
>>        // split messages when received from the incoming mq
>>        // enrich if move. Always stor in database
>>        from("activemq:topic:incomingVPROGuide")
>>            .split(vpro.xpath("//vpro:program")).parallelProcessing(true)
>>            .choice()
>>                .when(vpro.xpath("/vpro:progr...@ismovie = 'true']"))
>>                .enrich("direct:enrichMovie", new ProgramMerger())
>>                    .to("direct:save")
>>                .otherwise().to("direct:save");
>>            // the generic save route
>>        from("direct:save")
>>            .setHeader("xmldb.resource.name",
>> vpro.xpath("//vpro:program/@id", String.class))
>>            .process(sanitize("xmldb.resource.name"))
>>            .to("xmldb:/programs");
>>              // route to retrieve data from external
>>        // rest service
>>        from("direct:enrichMovie")
>>            .setHeader("title",
>> vpro.xpath("/vpro:program/vpro:title[1]/text()", String.class))
>>            .setHeader("director", vpro.xpath("//vpro:pers...@urn =
>> 'urn:mpeg:mpeg7:cs:RoleCS:2001:DIRECTOR' and 1]/vpro:familyName/text()",
>> String.class))
>>            .setHeader("year", vpro.xpath("//vpro:year[1]/text()",
>> String.class))
>>            .process(new CinemaQueryAssembler())
>>            .to("http://cinema.test.vpro.nl/api/1/rest/movie/find.xml";);
>>
>> The xmldb producer is a patched version of the camel-extra project.
>> Everything works fine, apart from the enricher...
>>
>> Any hints?
>>
>> kind regards,
>>
>> Peter Maas
>>
>
>

Reply via email to