[jboss-svn-commits] JBL Code SVN: r11409 - in labs/jbossesb/trunk/product/core/rosetta/src/org/jboss: internal/soa/esb/message/metadata and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Apr 27 08:00:25 EDT 2007


Author: kevin.conner at jboss.com
Date: 2007-04-27 08:00:25 -0400 (Fri, 27 Apr 2007)
New Revision: 11409

Modified:
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/metadata/MetaDataFilter.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/couriers/filter/FilterManager.java
Log:
Tidy up filter manager processing, made MetaDataFilter more robust: JBESB-532

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java	2007-04-27 10:50:11 UTC (rev 11408)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java	2007-04-27 12:00:25 UTC (rev 11409)
@@ -44,7 +44,6 @@
 import org.jboss.soa.esb.common.ModulePropertyManager;
 import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.couriers.CourierUtil;
-import org.jboss.soa.esb.couriers.filter.FilterManager;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.util.Util;
 
@@ -209,8 +208,6 @@
 						.toString();
 				name += _outputSuffix;
 	
-				message = FilterManager.getInstance().doOutputWork(message);
-
 				tmpFile = CourierUtil.messageToLocalFile(dir, message);
 
 				handler.renameFile(tmpFile, new File(dir, name));
@@ -240,8 +237,6 @@
 			String name = message.getHeader().getCall().getMessageID().toString();
 			
 			name += _outputSuffix;
-	
-			message = FilterManager.getInstance().doOutputWork(message);
 			
 			tmpFile = CourierUtil.messageToLocalFile(dir, message);
 
@@ -303,8 +298,6 @@
 				else
 					handler.renameFile(work, done);
 				
-				result = FilterManager.getInstance().doInputWork(result);
-				
 				return result;
 			}
 			try

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java	2007-04-27 10:50:11 UTC (rev 11408)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java	2007-04-27 12:00:25 UTC (rev 11409)
@@ -49,7 +49,6 @@
 import org.jboss.soa.esb.addressing.MalformedEPRException;
 import org.jboss.soa.esb.addressing.eprs.JMSEpr;
 import org.jboss.soa.esb.couriers.CourierException;
-import org.jboss.soa.esb.couriers.filter.FilterManager;
 import org.jboss.soa.esb.helpers.KeyValuePair;
 import org.jboss.soa.esb.helpers.NamingContext;
 import org.jboss.soa.esb.message.Message;
@@ -148,12 +147,6 @@
     			throw new CourierException(e);
     		}
     
-    		/*
-    		 * Add some message properties.
-    		 */
-    		
-    		message = FilterManager.getInstance().doOutputWork(message);
-
     		while (null != _messageProducer)
     		{
     			try
@@ -362,8 +355,6 @@
     			
     			Message msg = Util.deserialize(obj);
     			
-    			msg = FilterManager.getInstance().doOutputWork(msg);
-    			
     			return msg;
     		}
     		catch (JMSException e1)

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java	2007-04-27 10:50:11 UTC (rev 11408)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java	2007-04-27 12:00:25 UTC (rev 11409)
@@ -35,7 +35,6 @@
 import org.jboss.soa.esb.addressing.MalformedEPRException;
 import org.jboss.soa.esb.addressing.eprs.JDBCEpr;
 import org.jboss.soa.esb.couriers.CourierException;
-import org.jboss.soa.esb.couriers.filter.FilterManager;
 import org.jboss.soa.esb.helpers.persist.JdbcCleanConn;
 import org.jboss.soa.esb.helpers.persist.SimpleDataSource;
 import org.jboss.soa.esb.message.Message;
@@ -148,8 +147,6 @@
 			}
 		}
 
-		message = FilterManager.getInstance().doOutputWork(message);
-		
 		while (_conn != null)
 		{
 			try
@@ -206,8 +203,6 @@
 					if (null == (result = tryToPickup(messageId)))
 						continue;
 					
-					result = FilterManager.getInstance().doInputWork(result);
-					
 					return result;
 				}
                         }

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java	2007-04-27 10:50:11 UTC (rev 11408)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java	2007-04-27 12:00:25 UTC (rev 11409)
@@ -32,6 +32,7 @@
 import org.jboss.soa.esb.couriers.CourierTimeoutException;
 import org.jboss.soa.esb.couriers.CourierUtil;
 import org.jboss.soa.esb.couriers.TwoWayCourier;
+import org.jboss.soa.esb.couriers.filter.FilterManager;
 import org.jboss.soa.esb.message.Message;
 
 /**
@@ -43,6 +44,8 @@
 public class TwoWayCourierImpl implements TwoWayCourier
 {
 	private DeliverOnlyCourier _deliverCourier;
+        
+        private EPR _toEPR ;
 
 	private PickUpOnlyCourier _pickupCourier;
 
@@ -72,6 +75,7 @@
                 try
                 {
                     _deliverCourier = getDeliverCourier(toEPR);
+                    _toEPR = toEPR ;
                 }
                 finally
                 {
@@ -155,6 +159,10 @@
 	{
 		if (null == _deliverCourier)
 			throw new CourierException("No deliverAsync courier");
+                message.getHeader().getCall().setTo(_toEPR) ;
+                
+                message = FilterManager.getInstance().doOutputWork(message);
+                
 		return _deliverCourier.deliver(message);
 	}
 
@@ -182,7 +190,9 @@
 	{
 		if (null == courier)
 			throw new CourierException("No courier defined for pick ups");
-		return courier.pickup(waitTime);
+		final Message result = courier.pickup(waitTime);
+                
+                return (result == null ? null : FilterManager.getInstance().doInputWork(result)) ;
 	}
         
         public void cleanup ()

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/metadata/MetaDataFilter.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/metadata/MetaDataFilter.java	2007-04-27 10:50:11 UTC (rev 11408)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/metadata/MetaDataFilter.java	2007-04-27 12:00:25 UTC (rev 11409)
@@ -37,6 +37,7 @@
 import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.couriers.filter.InputOutputFilter;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.Properties;
 
 /**
  * An inputoutput filter is called when the message is being received/sent and after it
@@ -53,93 +54,94 @@
 {
 	public Message onOutput (Message msg) throws CourierException
 	{
-		if (msg == null)
-			return null;
-		
+                final Environment.Transports type ;
+                final String name ;
 		EPR destination = msg.getHeader().getCall().getTo();
-		Environment.Transports type = Environment.Transports.JMS;
-		String name = null;
-		
-		if (destination instanceof FTPEpr)
-		{
-			try
-			{
-				type = Environment.Transports.FTP;
-				
-				String dir = ModulePropertyManager.getPropertyManager(
-							ModulePropertyManager.TRANSPORTS_MODULE).getProperty(
-									Environment.FTP_LOCALDIR, System.getProperty("java.io.tmpdir"));
-				
-				name = dir + File.pathSeparator + msg.getHeader().getCall().getMessageID().toString() +
-					((FTPEpr) destination).getPostDirectory();
-			}
-			catch (URISyntaxException ex)
-			{
-				throw new CourierException(ex);
-			}
-			catch (Exception ex)
-			{
-				throw new CourierException(ex);
-			}
-		}
-		else
-		{
-			if (destination instanceof FileEpr)
-			{
-				try
-				{
-					type = Environment.Transports.File;
-					
-					name = ((FileEpr) destination).getURL() + File.pathSeparator + 
-						msg.getHeader().getCall().getMessageID().toString() + ((FileEpr) destination).getPostSuffix();
-				}
-				catch (MalformedURLException ex)
-				{
-					throw new CourierException(ex);
-				}
-				catch (URISyntaxException ex)
-				{
-					throw new CourierException(ex);
-				}
-				catch (Exception ex)
-				{
-					throw new CourierException(ex);
-				}
-			}		
-			else
-			{
-				if (destination instanceof JMSEpr)
-				{
-					type = Environment.Transports.JMS;
-				
-					name = destination.getAddr().toString();					
-				}
-				else
-				{
-					if (destination instanceof JDBCEpr)
-					{
-						type = Environment.Transports.SQL;
-						
-						name = destination.getAddr().toString();
-					}
-				}
-			}
-		}
-		
-		msg.getProperties().setProperty(Environment.TRANSPORT_TYPE, type);
-		msg.getProperties().setProperty(Environment.MESSAGE_SOURCE, name);
-		msg.getProperties().setProperty(Environment.MESSAGE_ENTRY_TIME, Calendar.getInstance().getTime().toString());
-		
-		return msg;
+                if (destination != null)
+                {
+        		if (destination instanceof FTPEpr)
+        		{
+        			try
+        			{
+        				type = Environment.Transports.FTP;
+        				
+        				String dir = ModulePropertyManager.getPropertyManager(
+        							ModulePropertyManager.TRANSPORTS_MODULE).getProperty(
+        									Environment.FTP_LOCALDIR, System.getProperty("java.io.tmpdir"));
+        				
+        				name = dir + File.pathSeparator + msg.getHeader().getCall().getMessageID().toString() +
+        					((FTPEpr) destination).getPostDirectory();
+        			}
+        			catch (URISyntaxException ex)
+        			{
+        				throw new CourierException(ex);
+        			}
+        		}
+        		else if (destination instanceof FileEpr)
+        		{
+        			try
+        			{
+        				type = Environment.Transports.File;
+        				
+        				name = ((FileEpr) destination).getURL() + File.pathSeparator + 
+        					msg.getHeader().getCall().getMessageID().toString() + ((FileEpr) destination).getPostSuffix();
+        			}
+        			catch (MalformedURLException ex)
+        			{
+        				throw new CourierException(ex);
+        			}
+        			catch (URISyntaxException ex)
+        			{
+        				throw new CourierException(ex);
+        			}
+        		}		
+        		else if (destination instanceof JMSEpr)
+        		{
+        			type = Environment.Transports.JMS;
+        		
+        			name = destination.getAddr().toString();					
+        		}
+        		else if (destination instanceof JDBCEpr)
+        		{
+        			type = Environment.Transports.SQL;
+        			
+        			name = destination.getAddr().toString();
+        		}
+                        else
+                        {
+                                type = null ;
+                                name = null ;
+                        }
+                }
+                else
+                {
+                        type = null ;
+                        name = null ;
+                }
+    		
+                final Properties props = msg.getProperties() ;
+                setProperty(props, Environment.TRANSPORT_TYPE, type) ;
+                setProperty(props, Environment.MESSAGE_SOURCE, name);
+                props.setProperty(Environment.MESSAGE_ENTRY_TIME, Calendar.getInstance().getTime().toString());
+    		return msg;
 	}
 	
 	public Message onInput (Message msg) throws CourierException
 	{
-		if (msg == null)
-			return null;
-		
 		msg.getProperties().setProperty(Environment.MESSAGE_EXIT_TIME, Calendar.getInstance().getTime().toString());
 		
 		return msg;
 	}
+        
+        private void setProperty(final Properties props, final String name, final Object value)
+        {
+            if (value == null)
+            {
+                props.remove(name) ;
+            }
+            else
+            {
+                props.setProperty(name, value) ;
+            }
+        }
 }

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/couriers/filter/FilterManager.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/couriers/filter/FilterManager.java	2007-04-27 10:50:11 UTC (rev 11408)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/couriers/filter/FilterManager.java	2007-04-27 12:00:25 UTC (rev 11409)
@@ -67,7 +67,7 @@
 	
 	public Message doOutputWork (Message msg) throws CourierException
 	{
-		if (_filters == null)
+		if ((_filters == null) || (msg == null))
 			return msg;
 		
 		for (int i = 0; i < _filters.length; i++)
@@ -90,7 +90,7 @@
 	
 	public Message doInputWork (Message msg) throws CourierException
 	{
-		if (_filters == null)
+                if ((_filters == null) || (msg == null))
 			return msg;
 		
 		for (int i = 0; i < _filters.length; i++)




More information about the jboss-svn-commits mailing list