Enterprise Integration Zone is brought to you in partnership with:

I am a graduate of University of Westminster UK (IIT) B Sc Software Engineering ( First Class Honours). I am a Sun Certified Java Programmer for Java 2 platform, 1.5 versions (SCJP 1.5). – 93% and a Sun Certified Web Component Developer 97%. I work as a Software Engineer at WSO2. Achala is a DZone MVB and is not an employee of DZone and has posted 21 posts at DZone. You can read more from them at their website. View Full User Profile

VFS transport Basic Example with WSO2 ESB

02.12.2013
| 1505 views |
  • submit to reddit

"WSO2 ESB has a feature rich file transport which is known as the VFS transport. This transport is currently used by lot of customers for implementing various file transfer and processing scenarios. VFS transport uses the versatile Apache Commons-VFS[1] library as the underline library for various file system related operations. This library provided a rich set of features which allows WSO2 ESB's VFS transport to connect to various types of remote file systems. " [1]
The VFS transport implementation is based on Apache Commons VFS implementation.

Lets try a sample.

Start the Axis2 server and deploy the SimpleStockQuoteService if not already done You will have to modify the following locations accordingly. Create required folders (in,original,failure) and provide the path.
  <parameter name="transport.vfs.FileURI"></parameter> 
<parameter name="transport.vfs.MoveAfterProcess"></parameter>  
<parameter name="transport.vfs.MoveAfterFailure"></parameter> 
Use the following proxy service.
<proxy xmlns="http://ws.apache.org/ns/synapse" name="StockQuoteProxy2" transports="vfs" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <send>
            <endpoint>
               <address uri="http://localhost:9000/services/SimpleStockQuoteService" format="soap12" />
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <property name="OUT_ONLY" value="true" />
         <send>
            <endpoint>
               <address uri="vfs:file:///home/achala/supportweek10/failure" />
            </endpoint>
         </send>
      </outSequence>
   </target>
   <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
   <parameter name="transport.PollInterval">10</parameter>
   <parameter name="transport.vfs.MoveAfterProcess">file:///home/achala/supportweek10/original</parameter>
   <parameter name="transport.vfs.FileURI">file:///home/achala/supportweek10/in</parameter>
   <parameter name="transport.vfs.MoveAfterFailure">file:///home/achala/supportweek10/failure</parameter>
   <parameter name="transport.vfs.FileNamePattern">.*.xml</parameter>
   <parameter name="transport.vfs.ContentType">text/xml</parameter>
   <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
</proxy>

Uncomment the VFS transport listener and sender (In the axis2.xml ) . Copy a file to the in folder.
Published at DZone with permission of Achala Chathuranga Aponso, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)