On Thu, Nov 8, 2012 at 7:12 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > On Wed, Nov 7, 2012 at 9:08 PM, Babak Vahdat > <babak.vah...@swissonline.ch> wrote: >> >> >> Am 07.11.12 09:28 schrieb "Babak Vahdat" unter >> <babak.vah...@swissonline.ch>: >> >>>Hi >>> >>>There's a routing use case currently I'm stuck with which goes as the >>>following: >>> >>>- Download an index file from a FTP server containing the list of (to be >>>downloaded) files which're listed in this index file line by line >>>- Do some futher processing with the index file being downloaded which is >>>not relevant here >>>- Download each file being listed inside the index file one after another. >>>Any other potential file not being referenced inside the index file should >>>be ignored >>>- Do some further processing with each file being downloaded which is not >>>relevant here >>> >>>The requirement is >>> >>>- Make use of Spring DSL >>>- *If* possible do not write any single line of java code but make use of >>>what Spring DSL can offer >>> >>>My first try was: >>> >>>from ftp://...fileName=index.txt >>> to file://... >>> ... >>> convertBodyTo String >>> split >>> tokenize ... >>> pollEnrich ftp://...fileName=...${in.body} >>> ... >>> split >>> >>>Now there're two problems here: >>> >>>According to what the read box says here: >>> http://camel.apache.org/content-enricher.html >>> >>>I can not access anything from the current exchange to tell the pollEnrich >>>the file name I want to download. >>> >>>And according: >>> >>>http://camel.465427.n5.nabble.com/pollEnrich-consumer-with-selector-td4939 >>>908.html >>> >>>I can not make use of any other expression to tell the FTP polling >>>consumer >>>which file I intend to download. >>> >>>I appreciate any hint you could give me. >> >> At the end of the day I gave up using pollEnrich DSL and made use of >> ConsumerTemplate wrapped inside a Bean which gets invoked through the Bean >> endpoint inside Spring DSL. Just wonder if there's any better way to do >> this. >> > > No this is fine. The PollEnrich is as it is currently due how the > PollingConsumer API was crafted when Camel came to be. > Camel 3.0 has API changes in the planning which can retrofit this > issue and allow PollEnrich EIPs to be more dynamic > > >> Ah, still completley another story which baffled me also a while: >> DefaultPropertiesResolver.prepareLoadedProperties does *trim* a given >> value. In my case I had a key/value pair defined inside a properties file >> as: >> >> index-file-separator=\r\n >> >> Which of course after trimming became an empty string of the length 0! so >> that the split step above using this value did not behave as expected. >> IMHO it would be better to log at INFO or WARN level about this trimming >> step so people are aware of this. To resolve this I overided the strategy >> method as following: >> > > No there is a lot of whitespace noise in files that causes problems for > people. > But we could maybe check if we can see if the text contains only \r \n \t > chars > and then ensure the trim won't trim out these. > > Feel free to log a JIRA for that. >
I logged a ticket to not forget about this https://issues.apache.org/jira/browse/CAMEL-5784 > >> public class MyPropertiesResolver extends DefaultPropertiesResolver { >> @Override >> protected Properties prepareLoadedProperties(Properties properties) { >> // return the passed properties as is to avoid any value trimming taking >> place by default >> return properties; >> } >> } >> >> And then inside the test injected my own resolver: >> >> @Override >> protected CamelContext createCamelContext() throws Exception { >> CamelContext camelContext = super.createCamelContext(); >> PropertiesComponent propertiesComponent = >> camelContext.getComponent("properties", PropertiesComponent.class); >> propertiesComponent.setPropertiesResolver(new MyPropertiesResolver()); >> >> return camelContext; >> } >> >> >> >> Hope this can be helpful for others experiencing the same problem. >> >> Babak >> >>> >>>Babak >>> >>> >>> >>> >>>-- >>>View this message in context: >>>http://camel.465427.n5.nabble.com/Problem-with-pollEnrich-tp5722285.html >>>Sent from the Camel - Users mailing list archive at Nabble.com. >> >> > > > > -- > Claus Ibsen > ----------------- > Red Hat, Inc. > FuseSource is now part of Red Hat > Email: cib...@redhat.com > Web: http://fusesource.com > Twitter: davsclaus > Blog: http://davsclaus.com > Author of Camel in Action: http://www.manning.com/ibsen -- Claus Ibsen ----------------- Red Hat, Inc. FuseSource is now part of Red Hat Email: cib...@redhat.com Web: http://fusesource.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen