This following are the supported features implemented in the FTP Binding Component.
FTP Binding Component Extensibility Elements
ftp:transfer- Specify message transportation involving a sending party and a receiving party through FTP
ftp:message - Specify message transportation between a service consumer and a service provider through FTP
ftp:address - Specify an endpoint for message transport using FTP
ftp:binding - Specify a FTP binding indication
ftp:operation - Specify a FTP operation indication
External Protocols
FTP (RFC 959)
FTP/TLS (RFC 2228 + RFC 4217) - Explicit SSL
FTP/TLS - Implicit SSL
Directory Listing Styles
A built-in parsing logic has been introduced to parse the directory listing for the following directory listing style. This must address diversification on FTP servers running on different Operating Systems.
UNIX
AS400
AS400-UNIX
HCLFTPD 6.0.1.3
HCLFTPD 5.1
HP NonStop/Tandem
MPE
MSFTPD 2.0
MSP PDS (Fujitsu)
MSP PS (Fujitsu)
MVS GDG
MVS PDS
MVS Sequential
Netware 4.11
NT 3.5
NT 4.0
UNIX (EUC-JP)
UNIX (SJIS)
VM/ESA
VMS
VOS3 PDS (Hitachi)
VOS3 PS (Hitachi)
VOSK (Hitachi)
A configuration file containing directory listing parsing information is provided to handle user-defined FTP directory list parsing. Users can specify the parsing rules (heuristics) for directory listing.
Proxy Protocols
SOCKS4
SOCKS5
The proxy configuration is not a per-service information, but is part of the FTP Binding Component deployed on a host. Its configuration is a FTP Binding Component Runtime configuration parameter.
Environment Variables
Name:value pairs can be defined as environment variables. The environment variables can be used to specify environment specifications in the WSDL configuration. These can be path names and host names. Environment variables are defined using a binding component runtime parameter.
Using environment variables provides greater flexibility in modifying configurations for the FTP Binding Component.
Pre-Transfer and Post-Transfer Operations
Some pre and/or post operations are performed after a FTP PUT or GET. For example, archiving a file that is downloaded so it does not download again, or moving file away that is in the way of a PUT so that it does not get overwritten, and so forth. The following pre/post transfer operations are supported:
COPY - For post GET operation
Create a duplicate of the target file at a location using the pre-operation parameters before file transfer.
RENAME - For pre GET, post GET, and post PUT operation
Use the pre-operation parameters to move the target file to a location before file transfer.
Use the post-operation parameters to move the target file to a location after file transfer.
DELETE - For post GET operation
Delete the target file after the transfer.
Connection Pooling
Pool connections to the FTP Server.
These are the systemic qualities implemented in FTP Binding Components.
Transport Security
Explicit SSL - FTP/TLS (RFC 2228 + RFC 4217)
Implicit SSL - FTP on SSLSocket
Connection Pooling
Numerous QoS
Password Handling
Security often interacts with various external systems, protocols, and implementations. Security can be authorization, authentication, or encryption. This initiative provides a common mechanism for components that handle authorization and authentication using user names and passwords.
Usability Enhancement of WSDL Extensibility Element Editor
Component Logging Systemic Quality
Application Variable and Application Configuration
Runtime Monitoring (MBean)
Users can monitor the component and the application during runtime. After deploying and starting the server, it provides datapoints like endpoint statistics, component statistics and also measures performance.
Re-Delivery
Throttling
Throttling settings can be used to limit the number of concurrent messages sent over the NMR.
Normalized Message Properties
Normalized Message properties (or NM properties) are commonly used to specify metadata associated with the message content. Some standard NM properties defined in JBI specifications are: javax.jbi.security.subject and javax.jbi.messaging.protocol.type.
Getting/Setting transport context properties (for example, http headers in the coming HTTP request, file names read by the File Binding Component)
Getting/Setting protocol specific headers or context properties (SOAP headers)
Getting/Setting additional message meta-data (for example, unique message identifier, endpoint name associated with a message)
Dynamic configurations (for example, dynamically overwrite the statically configured file name to write to at runtime)
FTP Binding Component Defined Normalized Message Properties
FTP Binding Component supports the unique message ID, that is, org.glassfish.openesb.messaging.messageid.
Unique Message ID can be used, for example, to correlate messages while responding to a request.
FTP Binding Component provides out-of-box request or response correlating using a UUID for every message.
Dynamic Addressing based on FTP Binding Component Normalized Message Properties
FTP Binding Component can derive binding information from Normalized Message properties from a message. It applies this information to the static binding obtained from WSDL. It derives the endpoint while the message is processed or routed. This is called Dynamic Addressing.
For Inbound: Normalized Message properties will be populated and attached to the message if and only if AllowDynamicEndpoint == true.
For Outbound: Normalized Message properties will be used to overwrite static binding if and only if: AllowDynamicEndpoint == true and org.glassfish.openesb.ftp.use.dynamic.endpoint == true
Dynamic Addressing can be of as a per message (outbound) endpoint binding (for example, to an external system).
This is a different mechanism from the JBI Dynamic Endpoint Reference (EPR).