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:ml-node+s465427n5717117...@n5.nabble.com] 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: http://camel.465427.n5.nabble.com/Consuming-a-remote-FTP-server-triggered-by-a-route-in-Camel-2-9-tp5716940p5717117.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-tp5716940p5717136.html Sent from the Camel - Users mailing list archive at Nabble.com.