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.