[jboss-svn-commits] JBL Code SVN: r29450 - in labs/jbossesb/trunk/product/rosetta: src/org/jboss/soa/esb/listeners/config/mappers110 and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Sep 24 06:59:12 EDT 2009


Author: kevin.conner at jboss.com
Date: 2009-09-24 06:59:11 -0400 (Thu, 24 Sep 2009)
New Revision: 29450

Added:
   labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_escaping.xml
   labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_escaping.xml
Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/FtpListenerMapper.java
   labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapperUnitTest.java
   labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java
Log:
Fix FTP EPR creation: JBESB-2837

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java	2009-09-24 10:39:06 UTC (rev 29449)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java	2009-09-24 10:59:11 UTC (rev 29450)
@@ -20,6 +20,9 @@
 
 package org.jboss.soa.esb.listeners.config.mappers;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.addressing.eprs.FTPEpr;
 import org.jboss.soa.esb.addressing.eprs.FTPSEpr;
@@ -111,16 +114,56 @@
 	 */
 	private static final String FTP_SEPARATOR = "/";
 
-	private static void mapFtpEprProperties(Element toElement, FtpProvider provider, FtpMessageFilter messageFilter) 
+	private static void mapFtpEprProperties(Element toElement, FtpProvider provider, FtpMessageFilter messageFilter)
+		throws ConfigurationException
 	{
 		String inputDir = messageFilter.getDirectory();
 		if ( ! inputDir.startsWith( FTP_SEPARATOR ) )
 			inputDir = FTP_SEPARATOR + inputDir;
 		
 		final String filterPassword = messageFilter.getPassword() ;
-		final String urlPassword = (filterPassword == null ? "" : ":" + filterPassword) ;
-		toElement.setAttribute(ListenerTagNames.URL_TAG, messageFilter.getProtocol() + "://" + messageFilter.getUsername()
-				+ urlPassword + "@" + provider.getHostname() + inputDir );
+		final String username = encodeUsername(messageFilter.getUsername()) ;
+		final String userInfo = (filterPassword == null ? username : username + ":" + filterPassword) ;
+		final String origHostname = provider.getHostname() ;
+		final int colonLocation = origHostname.indexOf(':') ;
+		final String hostname ;
+		final int port ;
+		if (colonLocation > -1)
+		{
+			hostname = origHostname.substring(0, colonLocation) ;
+			final int portLocation = colonLocation+1 ;
+			if (portLocation < origHostname.length())
+			{
+				try
+				{
+					port = Integer.parseInt(origHostname.substring(portLocation)) ;
+				}
+				catch (final NumberFormatException nfe)
+				{
+					throw new ConfigurationException("Failed to parse port value") ;
+				}
+			}
+			else
+			{
+				port = -1 ;
+			}
+		}
+		else
+		{
+			hostname = origHostname ;
+			port = -1 ;
+		}
+		final URI uri ;
+		try
+		{
+			uri = new URI(messageFilter.getProtocol().toString(),
+				userInfo, hostname, port, inputDir, null, null) ;
+		}
+		catch (final URISyntaxException urise)
+		{
+			throw new ConfigurationException("Unexpected exception creating FTP URI, " + urise.getMessage()) ;
+		}
+		toElement.setAttribute(ListenerTagNames.URL_TAG, uri.toASCIIString());
 		toElement.setAttribute(FTPEpr.INPUT_SUFFIX_TAG, messageFilter.getInputSuffix());
 		toElement.setAttribute(FTPEpr.WORK_SUFFIX_TAG, messageFilter.getWorkSuffix());
 		toElement.setAttribute(FTPEpr.POST_DEL_TAG, String.valueOf(messageFilter.getPostDelete()));
@@ -143,4 +186,30 @@
 			toElement.setAttribute(FTPSEpr.CERTIFICATE_NAME_TAG, messageFilter.getCertificateName());
 		}
 	}
+	
+	private static String encodeUsername(final String username)
+	{
+		if (username != null)
+		{
+			int colonPosn = username.indexOf(':') ;
+			if (colonPosn > -1)
+			{
+				int currentIndex = 0 ;
+				final StringBuilder sb = new StringBuilder() ;
+				while(colonPosn > 0)
+				{
+					sb.append(username.substring(currentIndex, colonPosn)) ;
+					sb.append("%3A") ;
+					currentIndex = colonPosn+1 ;
+					colonPosn = username.indexOf(':', currentIndex) ;
+				}
+				if (currentIndex < username.length())
+				{
+					sb.append(username.substring(currentIndex)) ;
+				}
+				return sb.toString() ;
+			}
+		}
+		return username ;
+	}
 }

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java	2009-09-24 10:39:06 UTC (rev 29449)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java	2009-09-24 10:59:11 UTC (rev 29450)
@@ -20,6 +20,9 @@
 
 package org.jboss.soa.esb.listeners.config.mappers110;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.addressing.eprs.FTPEpr;
 import org.jboss.soa.esb.addressing.eprs.FTPSEpr;
@@ -111,16 +114,56 @@
 	 */
 	private static final String FTP_SEPARATOR = "/";
 
-	private static void mapFtpEprProperties(Element toElement, FtpProvider provider, FtpMessageFilter messageFilter) 
+	private static void mapFtpEprProperties(Element toElement, FtpProvider provider, FtpMessageFilter messageFilter)
+		throws ConfigurationException
 	{
 		String inputDir = messageFilter.getDirectory();
 		if ( ! inputDir.startsWith( FTP_SEPARATOR ) )
 			inputDir = FTP_SEPARATOR + inputDir;
 		
 		final String filterPassword = messageFilter.getPassword() ;
-		final String urlPassword = (filterPassword == null ? "" : ":" + filterPassword) ;
-		toElement.setAttribute(ListenerTagNames.URL_TAG, messageFilter.getProtocol() + "://" + messageFilter.getUsername()
-				+ urlPassword + "@" + provider.getHostname() + inputDir );
+		final String username = encodeUsername(messageFilter.getUsername()) ;
+		final String userInfo = (filterPassword == null ? username : username + ":" + filterPassword) ;
+		final String origHostname = provider.getHostname() ;
+		final int colonLocation = origHostname.indexOf(':') ;
+		final String hostname ;
+		final int port ;
+		if (colonLocation > -1)
+		{
+			hostname = origHostname.substring(0, colonLocation) ;
+			final int portLocation = colonLocation+1 ;
+			if (portLocation < origHostname.length())
+			{
+				try
+				{
+					port = Integer.parseInt(origHostname.substring(portLocation)) ;
+				}
+				catch (final NumberFormatException nfe)
+				{
+					throw new ConfigurationException("Failed to parse port value") ;
+				}
+			}
+			else
+			{
+				port = -1 ;
+			}
+		}
+		else
+		{
+			hostname = origHostname ;
+			port = -1 ;
+		}
+		final URI uri ;
+		try
+		{
+			uri = new URI(messageFilter.getProtocol().toString(),
+				userInfo, hostname, port, inputDir, null, null) ;
+		}
+		catch (final URISyntaxException urise)
+		{
+			throw new ConfigurationException("Unexpected exception creating FTP URI, " + urise.getMessage()) ;
+		}
+		toElement.setAttribute(ListenerTagNames.URL_TAG, uri.toASCIIString());
 		toElement.setAttribute(FTPEpr.INPUT_SUFFIX_TAG, messageFilter.getInputSuffix());
 		toElement.setAttribute(FTPEpr.WORK_SUFFIX_TAG, messageFilter.getWorkSuffix());
 		toElement.setAttribute(FTPEpr.POST_DEL_TAG, String.valueOf(messageFilter.getPostDelete()));
@@ -145,4 +188,30 @@
 			toElement.setAttribute(FTPSEpr.CERTIFICATE_NAME_TAG, messageFilter.getCertificateName());
 		}
 	}
+	
+	private static String encodeUsername(final String username)
+	{
+		if (username != null)
+		{
+			int colonPosn = username.indexOf(':') ;
+			if (colonPosn > -1)
+			{
+				int currentIndex = 0 ;
+				final StringBuilder sb = new StringBuilder() ;
+				while(colonPosn > 0)
+				{
+					sb.append(username.substring(currentIndex, colonPosn)) ;
+					sb.append("%3A") ;
+					currentIndex = colonPosn+1 ;
+					colonPosn = username.indexOf(':', currentIndex) ;
+				}
+				if (currentIndex < username.length())
+				{
+					sb.append(username.substring(currentIndex)) ;
+				}
+				return sb.toString() ;
+			}
+		}
+		return username ;
+	}
 }

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/FtpListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/FtpListenerMapper.java	2009-09-24 10:39:06 UTC (rev 29449)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/FtpListenerMapper.java	2009-09-24 10:59:11 UTC (rev 29450)
@@ -20,6 +20,9 @@
 
 package org.jboss.soa.esb.listeners.config.mappers120;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.addressing.eprs.FTPEpr;
 import org.jboss.soa.esb.addressing.eprs.FTPSEpr;
@@ -112,15 +115,55 @@
 	private static final String FTP_SEPARATOR = "/";
 
 	private static void mapFtpEprProperties(Element toElement, FtpProvider provider, FtpMessageFilter messageFilter)
+		throws ConfigurationException
 	{
 		String inputDir = messageFilter.getDirectory();
 		if ( ! inputDir.startsWith( FTP_SEPARATOR ) )
 			inputDir = FTP_SEPARATOR + inputDir;
 
 		final String filterPassword = messageFilter.getPassword() ;
-		final String urlPassword = (filterPassword == null ? "" : ":" + filterPassword) ;
-		toElement.setAttribute(ListenerTagNames.URL_TAG, messageFilter.getProtocol() + "://" + messageFilter.getUsername()
-				+ urlPassword + "@" + provider.getHostname() + inputDir );
+		final String username = encodeUsername(messageFilter.getUsername()) ;
+		final String userInfo = (filterPassword == null ? username : username + ":" + filterPassword) ;
+		final String origHostname = provider.getHostname() ;
+		final int colonLocation = origHostname.indexOf(':') ;
+		final String hostname ;
+		final int port ;
+		if (colonLocation > -1)
+		{
+			hostname = origHostname.substring(0, colonLocation) ;
+			final int portLocation = colonLocation+1 ;
+			if (portLocation < origHostname.length())
+			{
+				try
+				{
+					port = Integer.parseInt(origHostname.substring(portLocation)) ;
+				}
+				catch (final NumberFormatException nfe)
+				{
+					throw new ConfigurationException("Failed to parse port value") ;
+				}
+			}
+			else
+			{
+				port = -1 ;
+			}
+		}
+		else
+		{
+			hostname = origHostname ;
+			port = -1 ;
+		}
+		final URI uri ;
+		try
+		{
+			uri = new URI(messageFilter.getProtocol().toString(),
+				userInfo, hostname, port, inputDir, null, null) ;
+		}
+		catch (final URISyntaxException urise)
+		{
+			throw new ConfigurationException("Unexpected exception creating FTP URI, " + urise.getMessage()) ;
+		}
+		toElement.setAttribute(ListenerTagNames.URL_TAG, uri.toASCIIString());
 		toElement.setAttribute(FTPEpr.INPUT_SUFFIX_TAG, messageFilter.getInputSuffix());
 		toElement.setAttribute(FTPEpr.WORK_SUFFIX_TAG, messageFilter.getWorkSuffix());
 		toElement.setAttribute(FTPEpr.POST_DEL_TAG, String.valueOf(messageFilter.getPostDelete()));
@@ -145,4 +188,30 @@
 			toElement.setAttribute(FTPSEpr.CERTIFICATE_NAME_TAG, messageFilter.getCertificateName());
 		}
 	}
-}
\ No newline at end of file
+	
+	private static String encodeUsername(final String username)
+	{
+		if (username != null)
+		{
+			int colonPosn = username.indexOf(':') ;
+			if (colonPosn > -1)
+			{
+				int currentIndex = 0 ;
+				final StringBuilder sb = new StringBuilder() ;
+				while(colonPosn > 0)
+				{
+					sb.append(username.substring(currentIndex, colonPosn)) ;
+					sb.append("%3A") ;
+					currentIndex = colonPosn+1 ;
+					colonPosn = username.indexOf(':', currentIndex) ;
+				}
+				if (currentIndex < username.length())
+				{
+					sb.append(username.substring(currentIndex)) ;
+				}
+				return sb.toString() ;
+			}
+		}
+		return username ;
+	}
+}

Modified: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapperUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapperUnitTest.java	2009-09-24 10:39:06 UTC (rev 29449)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapperUnitTest.java	2009-09-24 10:59:11 UTC (rev 29450)
@@ -27,12 +27,14 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.net.URI;
 import java.util.List;
 
 import org.apache.log4j.Logger;
 import org.apache.xmlbeans.XmlException;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.listeners.config.xbeanmodel101.FtpListenerDocument;
 import org.jboss.soa.esb.listeners.config.xbeanmodel101.Listener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel101.FtpBusDocument;
@@ -43,6 +45,7 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 /**
  * Tests the class FtpListenerMapper 
@@ -56,6 +59,7 @@
 	private Logger log = Logger.getLogger(FtpListenerMapperUnitTest.class);
 	
 	private static final String ESB_CONFIG_READ_ONLY = "jbossesb_config_readonly.xml";
+	private static final String ESB_CONFIG_ESCAPING = "jbossesb_config_escaping.xml";
 	
 	private static final String GATEWAY_CLASS_ATTRIBUTE = "gatewayClass";
 		
@@ -84,9 +88,31 @@
 		assertEquals( ReadOnlyRemoteGatewayListener.class.getName(), gatewayClass.getNodeValue() );
 	}
 	
+	@Test
+	public void testEscaping() throws Exception
+	{
+		final XMLBeansModel model = getXmlBeanModel( ESB_CONFIG_ESCAPING );
+		final GatewayGenerator gatewayGenerator = new GatewayGenerator(model);
+		final Document gatewayConfig = gatewayGenerator.generate();
+		final Element root = gatewayConfig.getDocumentElement() ;
+		final NodeList listenerList = root.getElementsByTagName("listener") ;
+		assertEquals("Listener count", 1, listenerList.getLength()) ;
+		final Node listener = listenerList.item(0) ;
+		final NamedNodeMap attributes = listener.getAttributes() ;
+		final Node urlNode = attributes.getNamedItem(ListenerTagNames.URL_TAG) ;
+		assertNotNull("URL node", urlNode) ;
+		final String urlValue = urlNode.getNodeValue() ;
+		assertNotNull("URL value", urlValue) ;
+		final URI uri = new URI(urlValue) ;
+		assertEquals("host", "localhost", uri.getHost()) ;
+		assertEquals("port", 21, uri.getPort()) ;
+		assertEquals("path", "/directory/####", uri.getPath()) ;
+		assertEquals("userInfo", "user%3A##user:password:##password", uri.getUserInfo()) ;
+	}
+	
 	private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException, XmlException
 	{
-		InputStream inputStream = getClass().getResourceAsStream( ESB_CONFIG_READ_ONLY );
+		InputStream inputStream = getClass().getResourceAsStream( fileName );
 		final Reader reader = new InputStreamReader(inputStream);
 		XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
 		return model;

Copied: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_escaping.xml (from rev 29348, labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_escaping.xml)
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_escaping.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_escaping.xml	2009-09-24 10:59:11 UTC (rev 29450)
@@ -0,0 +1,18 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
+    <providers>
+        <ftp-provider name="FTP" hostname="localhost:21">
+            <ftp-bus busid="FTPbus">
+                <ftp-message-filter directory="/directory/####" username="user:##user" password="password:##password"/>
+            </ftp-bus>
+        </ftp-provider>
+    </providers>
+    
+    <services>
+        <service category="Test" name="FTPTest" description="FTP escaping Test">
+            <listeners>
+                <ftp-listener name="FtpMapperListener" busidref="FTPbus" is-gateway="true"/>
+            </listeners>
+        </service>
+    </services>
+</jbossesb>

Modified: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java	2009-09-24 10:39:06 UTC (rev 29449)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java	2009-09-24 10:59:11 UTC (rev 29450)
@@ -27,12 +27,14 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.net.URI;
 import java.util.List;
 
 import org.apache.log4j.Logger;
 import org.apache.xmlbeans.XmlException;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpListenerDocument;
 import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpBusDocument;
@@ -43,6 +45,7 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 /**
  * Tests the class FtpListenerMapper 
@@ -56,6 +59,7 @@
 	private Logger log = Logger.getLogger(FtpListenerMapperUnitTest.class);
 	
 	private static final String ESB_CONFIG_READ_ONLY = "jbossesb_config_readonly.xml";
+	private static final String ESB_CONFIG_ESCAPING = "jbossesb_config_escaping.xml";
 	
 	private static final String GATEWAY_CLASS_ATTRIBUTE = "gatewayClass";
 		
@@ -84,9 +88,31 @@
 		assertEquals( ReadOnlyRemoteGatewayListener.class.getName(), gatewayClass.getNodeValue() );
 	}
 	
+	@Test
+	public void testEscaping() throws Exception
+	{
+		final XMLBeansModel model = getXmlBeanModel( ESB_CONFIG_ESCAPING );
+		final GatewayGenerator gatewayGenerator = new GatewayGenerator(model);
+		final Document gatewayConfig = gatewayGenerator.generate();
+		final Element root = gatewayConfig.getDocumentElement() ;
+		final NodeList listenerList = root.getElementsByTagName("listener") ;
+		assertEquals("Listener count", 1, listenerList.getLength()) ;
+		final Node listener = listenerList.item(0) ;
+		final NamedNodeMap attributes = listener.getAttributes() ;
+		final Node urlNode = attributes.getNamedItem(ListenerTagNames.URL_TAG) ;
+		assertNotNull("URL node", urlNode) ;
+		final String urlValue = urlNode.getNodeValue() ;
+		assertNotNull("URL value", urlValue) ;
+		final URI uri = new URI(urlValue) ;
+		assertEquals("host", "localhost", uri.getHost()) ;
+		assertEquals("port", 21, uri.getPort()) ;
+		assertEquals("path", "/directory/####", uri.getPath()) ;
+		assertEquals("userInfo", "user%3A##user:password:##password", uri.getUserInfo()) ;
+	}
+	
 	private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException, XmlException
 	{
-		InputStream inputStream = getClass().getResourceAsStream( ESB_CONFIG_READ_ONLY );
+		InputStream inputStream = getClass().getResourceAsStream( fileName );
 		final Reader reader = new InputStreamReader(inputStream);
 		XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
 		return model;

Copied: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_escaping.xml (from rev 29348, labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_escaping.xml)
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_escaping.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_escaping.xml	2009-09-24 10:59:11 UTC (rev 29450)
@@ -0,0 +1,18 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+    <providers>
+        <ftp-provider name="FTP" hostname="localhost:21">
+            <ftp-bus busid="FTPbus">
+                <ftp-message-filter directory="/directory/####" username="user:##user" password="password:##password"/>
+            </ftp-bus>
+        </ftp-provider>
+    </providers>
+    
+    <services>
+        <service category="Test" name="FTPTest" description="FTP escaping Test">
+            <listeners>
+                <ftp-listener name="FtpMapperListener" busidref="FTPbus" is-gateway="true"/>
+            </listeners>
+        </service>
+    </services>
+</jbossesb>



More information about the jboss-svn-commits mailing list