[jboss-svn-commits] JBL Code SVN: r10982 - labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Apr 15 18:31:05 EDT 2007


Author: estebanschifman
Date: 2007-04-15 18:31:05 -0400 (Sun, 15 Apr 2007)
New Revision: 10982

Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/Invoker.java
Log:
Changes on Invoker for jbpm classes

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/Invoker.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/Invoker.java	2007-04-15 22:28:23 UTC (rev 10981)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/Invoker.java	2007-04-15 22:31:05 UTC (rev 10982)
@@ -21,6 +21,7 @@
  */
 package org.jboss.soa.esb.listeners.message;
 
+import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Collection;
@@ -31,6 +32,9 @@
 import org.jboss.soa.esb.addressing.Call;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.MalformedEPRException;
+import org.jboss.soa.esb.addressing.eprs.FTPEpr;
+import org.jboss.soa.esb.addressing.eprs.FileEpr;
+import org.jboss.soa.esb.addressing.eprs.SFTPEpr;
 import org.jboss.soa.esb.couriers.Courier;
 import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.couriers.CourierFactory;
@@ -39,6 +43,7 @@
 import org.jboss.soa.esb.listeners.RegistryUtil;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.services.registry.RegistryException;
+import org.jboss.soa.esb.services.registry.RegistryFactory;
 import org.jboss.soa.esb.util.AbstractCommandVehicle;
 
 
@@ -93,8 +98,10 @@
 		Message outgoing = command.toCommandMessage();
 		Call call	= outgoing.getHeader().getCall();
 		Collection<EPR> eprs = RegistryUtil.getEprs(category, name);
-		EPR toEpr = (eprs.size()<1) ? null : eprs.iterator().next();
-		call.setTo(toEpr);
+		if (null==eprs || eprs.size()<1)
+			throw new RegistryException("No eprs found for <"+category+","+name+">");
+		EPR service = eprs.iterator().next();
+		call.setTo(serviceDestination(service));
 		return invokeAndAwaitResponse(outgoing, maxWaitMillis);
 	}
 	
@@ -141,5 +148,43 @@
 		;
 	} //________________________________
 	
+	public static EPR serviceDestination(EPR epr) throws MalformedEPRException
+	{
+		// For all file Epr's (local, FTP and sFTP - destination EPR
+		// must be set to where the service expects the input
+		//    dest.setPostSuffix (source.getInputSuffix)
+		try
+		{
+			if (epr instanceof SFTPEpr)
+			{
+				SFTPEpr source = (SFTPEpr)epr;
+				SFTPEpr dest = new SFTPEpr(source.getURL());
+				dest.setPostSuffix		(source.getInputSuffix());
+				dest.setPassive			(source.getPassive());
+				dest.setCertificateURL	(source.getCertificateURL());
+				return dest;
+			}
+			if (epr instanceof FTPEpr)
+			{
+				FTPEpr source = (FTPEpr)epr;
+				FTPEpr dest = new FTPEpr(source.getURL());
+				dest.setPostSuffix		(source.getInputSuffix());
+				dest.setPassive			(source.getPassive());
+				return dest;
+			}
+			if (epr instanceof FileEpr)
+			{
+				FileEpr source = (FileEpr)epr;
+				FileEpr dest = new FileEpr(source.getURL());
+				dest.setPostSuffix		(source.getInputSuffix());
+				return dest;
+			}
+		}
+		catch (URISyntaxException e) 	{throw new MalformedEPRException(e); }
+		catch (MalformedURLException e)	{throw new MalformedEPRException(e); }
+
+		return epr;
+	}
+	
 	private static Logger _logger = Logger.getLogger(Invoker.class);
 }




More information about the jboss-svn-commits mailing list