ServiceMix File
The ServiceMix File component provides JBI integration to the file system. It can be used to read & write files via URI or to periodically poll directories for new files.
Note that this component is only available in releases >= 3.1.
URI
You can use the familiar file URI to communicate with files
file:foo.xml file://path/to/something
Endpoints
<file:sender service="test:service" endpoint="endpoint" directory="file:target/pollerFiles" />
<file:poller service="test:poller" endpoint="poller" targetService="test:receiver" file="file:target/pollerFiles" />
Poller endpoint attributes
Name |
Type |
Description |
Default |
---|---|---|---|
service |
QName |
the service name of the endpoint |
required to be spec'd |
endpoint |
string |
the endpoint name of the endpoint |
required to be spec'd |
interfaceName |
QName |
the interface name of the endpoint |
|
targetService |
QName |
the service name of the target endpoint |
|
targetEndPoint |
string |
the endpoint name of the target endpoint |
|
targetInterface |
QName |
the interface name of the target endpoint |
|
targetUri |
string |
the uri of the target endpoint |
|
autoCreateDirectory |
boolean |
creates dir if doesn't exist |
true |
firstTime |
date |
datetime before first poll can take place |
null (first poll right after start) |
delay |
long |
amount of time first polling is delayed after start |
0 |
period |
long |
amount of time between polls |
5000 |
file |
string |
sets the file or directory to poll |
null (must be spec'd) |
deleteFile |
boolean |
delete file when it is processed |
true |
recursive |
boolean |
process sub directories |
true |
marshaler |
class |
org.apache.servicemix.components.util.FileMarshaler |
DefaultFileMarshaler |
lockManager |
class |
org.apache.servicemix.locks.LockManager |
SimpleLockManager |
filter |
class |
java.io.FileFilter (optional filter) |
null - no filter |
scheduler |
class |
org.apache.servicemix.components.varscheduler.Scheduler |
new Scheduler(true) |
<file:sender service="test:service" endpoint="endpoint" directory="file:target/componentOutput"> <file:marshaler> <sm:defaultFileMarshaler> <sm:fileName> <!-- lets use a header from the message --> <sm:xpathString xpath="concat($name, '.xml')"/> </sm:fileName> </sm:defaultFileMarshaler> </file:marshaler> </file:sender>
For all xbean file endpoint configuration take a look at Xml schemas
Note: Poller generates an InOnly message