# Element Summary

Element | Description | Class
--- | --- | ---
component | FTP Component | org.apache.servicemix.ftp.FtpComponent
poller | A polling endpoint which looks for a file or files in a directory and sends the files into the JBI bus as messages, deleting the files by default when they are processed. | org.apache.servicemix.ftp.FtpPollerEndpoint
pool | A pool of FTP clients for the Jakarta Commons Net library | org.apache.servicemix.ftp.FTPClientPool
sender | An FTP endpoint | org.apache.servicemix.ftp.FtpSenderEndpoint

# Element Detail

## Element: component

Element | Type | Description
--- | --- | ---
endpoints | (poller | sender)* |
executorFactory | <spring:bean/> | The executor factory to use to create the executor. If none is provided, one will be retrieved from the JBI container when the component is deployed into ServiceMix 3.x, or a default implementation will be used.

## Element: poller

Attribute | Type | Description
--- | --- | ---
archive | xs:string | Specifies a directory relative to the polling directory to which processed files are archived.
autoCreateDirectory | xs:boolean | Specifies if the endpoint should create the target directory, if it does not already exist. If you set this to `false` and the directory does not exist, the endpoint will not do anything. Default value is `true`.
changeWorkingDirectory | xs:boolean | When set to `true`, the poller will do an explicit `cwd` into the directory to be polled. Default to `false`. Recursive polling will not be possible if this feature is enabled.
concurrentPolling | xs:boolean | Sets whether more than one poll can be active at a time (true means yes). Default value is `false`.
delay | xs:long | Sets the amount of time in milliseconds that the endpoint should wait before making the first poll.
deleteFile | xs:boolean | Delete the file after it has been succesfully processed? Defaults to `true`
endpoint | xs:string | Get the endpoint implementation.
firstTime | xs:date | Sets the date on which the first poll will be executed. If a delay is also set using `setDelay`, the delay interval will be added after the date specified.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
period | xs:long | Sets the number of milliseconds between polling attempts.
recursive | xs:boolean | Specifies whether subdirectories should be polled. Defaults to `true`
service | xs:QName | Get the service qualified name of the endpoint.
stateless | xs:boolean | When set to `false`
targetEndpoint | xs:string | the name of the endpoint to which requests are sent
targetInterface | xs:QName | the QName of the interface to which requests are sent
targetOperation | xs:QName | Set the operation to be invoked on the target service.
targetService | xs:QName | the QName of the service to which requests are sent
targetUri | xs:string | Gets the target URI of the consumer endpoint.
uri | xs:string | Configures the endpoint from a URI.

Element | Type | Description
--- | --- | ---
clientPool | pool | Set a custom FTPClientPool. If this property has not been set, the FTP client pool will be created based on the information provided in the URI.
component | component | the `component` implementation to use
filter | <spring:bean/> | Sets the filter to select which files have to be processed. When not set, all files will be picked up by the poller.
lockManager | <spring:bean/> | Set a custom LockManager implementation for keeping track of which files are already being processed. The default implementation is a simple, in-memory lock management system.
marshaler | <spring:bean/> | Set a custom FileMarshaler implementation to control how the file contents is being translated into a JBI message. The default implementation reads XML contents from the file.
scheduler | <spring:bean/> | Sets a custom scheduler implementation if you need more fine-grained control over the polling schedule.
serviceUnit | <spring:bean/> |

## Element: pool

Attribute | Type | Description
--- | --- | ---
binaryMode | xs:boolean | Use binary mode transfers. Defaults to `true`.
controlEncoding | xs:string | Configure the encoding used in the FTP control connections. Defaults to `ISO-8859-1`
dataTimeout | xs:integer | Specifies a timeout used on the FTP data connection. Defaults to `120000`
host | xs:string | Set the remote host name to connect to.
localPort | xs:integer | Set the local TCP/IP port to be used when establishing the connection.
passiveMode | xs:boolean | Use passive mode FTP transfers. Defaults to `false`
password | xs:string | Set the password for logging into the FTP server.
port | xs:integer | Set the remote port number to connect to.
username | xs:string | Set the login to use to access the FTP server.

Element | Type | Description
--- | --- | ---
address | <spring:bean/> | Set the remote internet address to connect to.
config | <spring:bean/> | Configure a custom FTPClientConfig instance to allow more fine-grained control over the FTP connections in the pool.
localAddress | <spring:bean/> | Set the local IP address to be used when establishing the connection.
pool | <spring:bean/> | Set a custom ObjectPool instance to use for the connection pooling.

## Element: sender

Attribute | Type | Description
--- | --- | ---
autoCreateDirectory | xs:boolean | Specifies if the endpoint should create the target directory, if it does not already exist. If you set this to `false` and the directory does not exist, the endpoint will not do anything. Default value is `true`.
checkDuplicates | xs:boolean | Specifies whether duplicates should be checked. Defaults to `true`.
endpoint | xs:string | Get the endpoint implementation.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
overwrite | xs:boolean | Specifies if a file with the same name already exists on the FTP server, the file should be overwritten. Defaults to `false`.
service | xs:QName | Get the service qualified name of the endpoint.
uniqueFileName | xs:string | Sets the name used to make a unique name if no file name is available on the message.
uploadPrefix | xs:string | Set the file name prefix used during upload. The prefix will be automatically removed as soon as the upload has completed. This allows other processes to discern completed files from files that are being uploaded.
uploadSuffix | xs:string | Set the file name suffix used during upload. The suffix will be automatically removed as soon as the upload has completed. This allows other processes to discern completed files from files that are being uploaded.
uri | xs:string | Configures the endpoint from a URI

Element | Type | Description
--- | --- | ---
clientPool | pool | Set a custom FTPClientPool. If this property has not been set, the FTP client pool will be created based on the information provided in the URI.
component | component |
marshaler | <spring:bean/> | Set a custom FileMarshaler implementation to control how the file contents is being translated into a JBI message. The default implementation reads XML contents from the file.