Hello,

No it seems headers are not copied over by
ExchangeHelper.copyResultsPreservePattern(Exchange result, Exchange
source). Properties are copied are but not headers.

I would consider this a bug so please open a Jira ticket with a test
case for it and we will see what the developers think :-)

Anyway as a workaround you could provide your own aggregation strategy
to the pollEnricher and it will be called instead.

See this test case
https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/enricher/PollEnricherTest.java

And this sample aggregator
https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/enricher/SampleAggregator.java

// Pontus


On Fri, Aug 10, 2012 at 8:31 PM, vishal1981
<vishal.changr...@ericsson.com> wrote:
> Sorry for the spam but one more question..
> The document says,
> "pollEnrich does not access any data from the current 
> Exchange<http://camel.apache.org/exchange.html> which means when polling it 
> cannot use any of the existing headers you may have set on the 
> Exchange<http://camel.apache.org/exchange.html>. For example you cannot set a 
> filename in the Exchange.FILE_NAME header and use pollEnrich to consume only 
> that file. For that you must set the filename in the endpoint URI."
>
> But I see that the pollEnrich also removes the existing headers while passing 
> the message to the next enpoint in the change...so for e.g. befor I called 
> pollEnrich I had added a few headers to the message which were to be used by 
> the endpoint which comes after PollEnrich.
> But after the call to pollEnrich finished those headers were lost. Is there a 
> way to retain those message headers?
>
> Thanks for all your help.
> -v-
>
> ________________________________
> From: pontus.ullgren [via Camel] 
> [mailto:ml-node+s465427n5717137...@n5.nabble.com]
> Sent: Friday, August 10, 2012 2:11 PM
> To: Vishal Changrani
> Subject: Re: Consuming a remote FTP server triggered by a route in Camel 2.9
>
> Hello,
>
> If you always get only one file (and the file name is the same each
> time) I think the poll enricher will do the same work for you.
>
> from("direct:start")
>   .pollEnrich(ftpUri, 60000)
>   .to("direct:result");
>
> // Pontus
>
>
> On Fri, Aug 10, 2012 at 7:37 PM, vishal1981
> <[hidden email]</user/SendEmail.jtp?type=node&node=5717137&i=0>> wrote:
>
>> Thanks for the reply.
>>
>> I eneded up doing somethign like this based ...
>> Does that sound ok?
>>
>>
>>
>> public class OnDemandFtpConsumer implements Processor {
>>
>> private final CamelContext camelContext;
>>
>> private final String ftpUri;
>>
>> private static final Log logger = 
>> LogFactory.getLog(OnDemandFtpConsumer.class);
>>
>> public OnDemandFtpConsumer(CamelContext camelContext, String uri)
>>
>> {
>>
>> this.camelContext = camelContext;
>>
>> this.ftpUri = uri;
>>
>> }
>>
>> @Override
>>
>> public void process(final Exchange exchange) throws Exception {
>>
>> EventDrivenPollingConsumer consumer = null;
>>
>> Endpoint ftp = null;
>>
>> try
>>
>> {
>>
>> // create a ftp endpoint
>>
>> ftp = camelContext.getEndpoint(ftpUri);
>>
>> consumer = new EventDrivenPollingConsumer(ftp);
>>
>> consumer.start();
>>
>> logger.trace(" Fetching exported file from URI "+ftpUri);
>>
>> // receive the remote ftp
>>
>> Exchange result = consumer.receive(60000);
>>
>> if (result == null)
>>
>> {
>>
>> logger.error(" Failed to fetch exported file URI "+ftpUri);
>>
>> throw new Exception("Failed to fetch  from URI -"+ftpUri);
>>
>> }
>>
>> // the result is the response from the FTP consumer (the downloaded file)
>>
>> // replace the outher exchange with the content from the downloaded file
>>
>> exchange.getIn().setBody(result.getIn().getBody());
>>
>> }
>>
>> catch(Throwable t)
>>
>> {
>>
>> exchange.setException(t);
>>
>> }
>>
>> finally
>>
>> {
>>
>> if (consumer != null)
>>
>> {
>>
>> consumer.stop();
>>
>> consumer.shutdown();
>>
>> }
>>
>> if (ftp != null)
>>
>> {
>>
>> ftp.stop(); //IMPORTANT TO REMOVE else next one will skip the file
>>
>> camelContext.removeEndpoints(ftpUri);
>>
>> }
>>
>> }
>>
>> }
>>
>> }
>>
>> ________________________________
>> From: pontus.ullgren [via Camel] [mailto:[hidden 
>> email]</user/SendEmail.jtp?type=node&node=5717137&i=1>]
>> Sent: Friday, August 10, 2012 5:39 AM
>> To: Vishal Changrani
>> Subject: Re: Consuming a remote FTP server triggered by a route in Camel 2.9
>>
>> Hello V,
>>
>> It sound like you are looking for the content enricher (possibly the
>> pollEnricher) [1]. If I remember correctly, content enricher with file
>> or ftp uri, it has the limitation that this only polls one file at the
>> time and not an entire batch.
>>
>> If you are more interested in starting/stopping polling from a control
>> channel you can use a route policy[2] which a second control route
>> manipulates to start/stop.
>> A similar solution would be to implement a poll strategy [3][4] that
>> is controlled by messages on a separate control route. Returning false
>> from the begin method will stop the FTP endpoint from actually
>> polling.
>>
>> [1] http://camel.apache.org/content-enricher.html
>> [2] http://camel.apache.org/routepolicy.html
>> [3] http://camel.apache.org/polling-consumer.html
>> [4] 
>> http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/PollingConsumerPollStrategy.html
>>
>> Best regards
>> Pontus Ullgren
>>
>> On Tue, Aug 7, 2012 at 8:32 PM, vishal1981
>> <[hidden email]</user/SendEmail.jtp?type=node&node=5717117&i=0>> wrote:
>>
>>> Hi,
>>> In the older documentation for FTP component I found this,
>>> "Consuming a remote FTP server triggered by a route
>>> The FTP consumer is built as a scheduled consumer to be used in the from
>>> route. However if you want to start consuming from a FTP server triggered
>>> within a route it's a bit cumbersome to do this in Camel 1.x (we plan to
>>> improve this in Camel 2.x). However it's possible as this code below
>>> demonstrates."
>>>
>>> This is exactly what I want to do i.e. Consume on demand and not poll.
>>> But I cannot find any such improvement/support in 2.x. Was the support
>>> added? Am I missing something?
>>>
>>> Thanks in advance,
>>> V
>>>
>>>
>>>
>>> --
>>> View this message in context: 
>>> http://camel.465427.n5.nabble.com/Consuming-a-remote-FTP-server-triggered-by-a-route-in-Camel-2-9-tp5716940.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
>> ________________________________
>> If you reply to this email, your message will be added to the discussion 
>> below:
>>
>> NAML<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>
>>
>>
>>
>> --
>> View this message in context: 
>> http://camel.465427.n5.nabble.com/Consuming-a-remote-FTP-server-triggered-by-a-route-in-Camel-2-9-tp5716940p5717136.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>
> ________________________________
> If you reply to this email, your message will be added to the discussion 
> below:
> http://camel.465427.n5.nabble.com/Consuming-a-remote-FTP-server-triggered-by-a-route-in-Camel-2-9-tp5716940p5717137.html
> To unsubscribe from Consuming a remote FTP server triggered by a route in 
> Camel 2.9, click 
> here<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5716940&code=dmlzaGFsLmNoYW5ncmFuaUBlcmljc3Nvbi5jb218NTcxNjk0MHwxNTgwMjU0NDcx>.
> NAML<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>
>
>
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/Consuming-a-remote-FTP-server-triggered-by-a-route-in-Camel-2-9-tp5716940p5717139.html
> Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to