Sorry for my mistake.

I have used @consume because it was possible to pass as a parameter
the name of the endpoint to consume. Is there a way to do this with a
consumer template ?

regards,

Charles Moulliard
Senior Enterprise Architect
Apache Camel Committer

*****************************
blog : http://cmoulliard.blogspot.com



On Mon, Sep 21, 2009 at 1:50 PM, Claus Ibsen <[email protected]> wrote:
> On Mon, Sep 21, 2009 at 1:46 PM, Charles Moulliard <[email protected]> 
> wrote:
>> The POJO defined in the following route consumes immediately messages
>> posted on a queue and in consequence is not triggered by the Quartz
>> timer
>>
>>                        <camel:from 
>> uri="quartz://x3sReporting/clientError?cron=0+0/5+9-18+?+*+MON-FRI"/>
>>                                <camel:doTry>
>>                                    <camel:bean ref="reportingConsumer" 
>> method="collectMessages"/>
>>                                    ...
>>
>> public class ReportingConsumer {
>>
>>   �...@consume(ref = "queueReportingEndpoint") // = x3s:report queue
>>        public List<Map<String, Object>> collectMessages(List<Map<String,
>> Object>> received) {
>>
>>        List<Map<String, Object>> result = new ArrayList<Map<String, 
>> Object>>();
>>
>>                if (received != null) {
>>
>>                        Log.info("Received exchange : " + received.size());
>>                        for(Map<String, Object> model : received) {
>>
>>                                Log.info("Map received : " + 
>> model.toString());
>>                                // Add model received into the result output 
>> list
>>                                result.add( model );
>>                        }
>>                }
>>
>>                return result;
>>        }
>>
>> Question : How can I avoid that the bean consumes immediately messages
>> from the queue and wait quartz triggering ?
>
> You cannot as @Consume(ref = "queueReportingEndpoint") has ABSOLUTELY
> nothing to do with quartz.
> It creates a new event driven consumer which listen on new messages
> arriving on that JMS queue.
>
> You can remove the @Consume and then let quartz invoke it from the Camel 
> route.
>
> And then you can in your bean use a consumer template to read messages
> from the JMS queue.
> Now you bean is only invoked when quartz triggers.
>
>
>
>
>>
>> Charles Moulliard
>> Senior Enterprise Architect
>> Apache Camel Committer
>>
>> *****************************
>> blog : http://cmoulliard.blogspot.com
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>

Reply via email to