On Wed, Sep 16, 2009 at 5:52 PM, Dragisa Krsmanovic <[email protected]> wrote: > On Tue, 2009-09-15 at 22:53 -0700, Fintan Bolton wrote: >> The first argument to pollEnrich() specifies a consumer endpoint, not a >> producer endpoint. So, instead of sending the current exchange (the one >> containing the header) to the endpoint, the pollEnrich() command creates a >> new exchange object containing one of the files from the specified >> directory, /test/data. In other words, the current exchange is ignored when >> pollEnrich() polls the file system, and this is the expected behaviour. >> >> If you want to read a specific file, you could use the fileName option >> option in the URI. For example: >> >> .pollEnrich("file:/test/data?noop=true&readLock=none&fileName=foobar.xml",10000) >> >> For details of the fileName option, see http://camel.apache.org/file2.html. > > > Is there a way to set file name in pollEnrich dynamically ? > > I want something like: > ... > .setHeader(Exchange.FILE_NAME).xpath("...") > .pollEnrich("file:/test/data?noop=true&readLock=none", 10000) >
I actually think you hit a shortcoming of the PollingConsumer API. This API does not support supplying options from outside. Could you create a JIRA ticket then we can have a look at in how to provide such a new feature to this API. Instead of the pollEnrich you can use a processor/bean etc. where you use the consumer template which supports you to dynamic set the endpoint URI. In which this endpoint URI should contain a fileName option which the file you want to read. See more here: http://camel.apache.org/polling-consumer.html > -- > Dragisa Krsmanovic > Java Developer > Public Library of Science > http://www.plos.org > > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus
