Bug 779967 (SOA-2327)

Summary: Add new option to ftp-provider to bypass ftp server check
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: david.boeren <david.boeren>
Component: JBossESBAssignee: Ken Johnson <kejohnso>
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 5.0.0 GA   
Target Milestone: ---   
Target Release: FUTURE   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-2327
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Feature Request
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description david.boeren 2010-09-17 15:05:31 UTC
Help Desk Ticket Reference: https://c.na7.visual.force.com/apex/Case_View?id=500A0000003jqQ8IAI&retURL=https%253A%252F%252Fc.na7.visual.force.com%252Fapex%252FCase_View&sfdc.override=1
project_key: SOA

Currently any JBoss ESB Service using an ftp-provider requires that the FTP Server that the ftp-provider uses be running at the time the ESB Service is deployed. It does this by performing a simple check at deploy time by connecting to the FTP Server. If the FTP Server is not running, the deployment will fail.

The drawback is twofold:
* As a result of the FTP Server not running at deploy time not only does the ESB Service using the FTP Server fail deployment, but every other Service (in jboss-esb.xml) fails deployment as well, regardless of whether they use FTP or not.
* In our case the FTP server might not be running when the Service is deployed, but sometime later. We still need the Service to deploy.

We would like this behaviour to be configurable, in that we would like to specify in the configuration file whether to make this check at deploy time. By defaulting this behaviour to true we can retain backwards compatibility and avoid modifying existing behaviour.

My proposed syntax for the FTP Listener/FTP Message Filter configuration (jboss-esb.xml) would be to add a property to ftp-message-filter:
check-server-on-deploy="false" | "true"

The code change would be in org.jboss.soa.esb.listeners.gateway.RemoteGatewayListener on line 69:

Change...
RemoteFileSystem rfs = RemoteFileSystemFactory.getRemoteFileSystem(ftpEpr, true)
To...
RemoteFileSystem rfs = RemoteFileSystemFactory.getRemoteFileSystem(ftpEpr, getBooleanAttribute("checkServerOnDeploy", true))

I don't know where the mapping from the XML file-to-Java Config Tree Attribute (check-server-on-deploy to checkServerOnDeploy) happens (or whether this is automatic)