These components write messages to files in a directory or poll files or directories (possibly recursively) to send files into the JBI.

Firstly here is the poller which will poll a file or directory (recursively by default) to find files, which are then sent into the JBI bus

{snippet:id=poll|lang=xml|url=servicemix/smx3/trunk/common/servicemix-components/src/test/resources/org/apache/servicemix/components/file/example.xml}

 

Then here's the sender. We're using a FileMarshaler here to turn JBI messages into files with an expression using XPath from the message content to generate the file name in the directory.

{snippet:id=send|lang=xml|url=servicemix/smx3/trunk/common/servicemix-components/src/test/resources/org/apache/servicemix/components/file/example.xml}

 

You can if you prefer let the operating system generate temporary file names in the directory specifying an optional prefix and suffix.

Filtering inbound files

You cna configure a java.io.FileFilter to only accept certain files when polling.
This can be done by configuring the filter property on the poller:

xml <bean class="o.a.s.components.file.FilePoller"> <property name="filter"> <bean ... /> </property> </bean>

The Jakarta ORO project contains RegExp based filters, but you can also define your own filters by implementing java.io.FileFilter.

  • No labels