[jboss-svn-commits] JBL Code SVN: r15007 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/couriers.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Sep 11 05:59:55 EDT 2007


Author: beve
Date: 2007-09-11 05:59:54 -0400 (Tue, 11 Sep 2007)
New Revision: 15007

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
Log:
Work for JBESB-910 "Make JMSCourier set JMSHeader fields and properties when sending"


Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java	2007-09-11 08:31:49 UTC (rev 15006)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java	2007-09-11 09:59:54 UTC (rev 15007)
@@ -52,9 +52,13 @@
 import org.jboss.soa.esb.couriers.CourierTimeoutException;
 import org.jboss.soa.esb.helpers.KeyValuePair;
 import org.jboss.soa.esb.helpers.NamingContext;
+import org.jboss.soa.esb.listeners.gateway.DefaultESBPropertiesSetter;
+import org.jboss.soa.esb.listeners.gateway.ESBPropertiesSetter;
 import org.jboss.soa.esb.listeners.message.errors.Factory;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.util.Type;
+import org.jboss.soa.esb.notification.jms.DefaultJMSPropertiesSetter;
+import org.jboss.soa.esb.notification.jms.JMSPropertiesSetter;
 import org.jboss.soa.esb.util.Util;
 import org.xml.sax.SAXException;
 
@@ -160,6 +164,7 @@
     						.serialize(message));
     				for (KeyValuePair kvp : _messageProperties)
     					msg.setStringProperty(kvp.getKey(), kvp.getValue());
+    				setJMSProperties( message, msg );
     				sendMessage(msg);
     				return true;
     			}
@@ -174,6 +179,8 @@
     		}
     		return false;
 	} // ________________________________
+	
+	
 
 	/**
 	 * send/publish a javax.jms.ObjectMessage (that will contain the serialized
@@ -358,6 +365,7 @@
     					.getObject();
     			
     			Message msg = Util.deserialize(obj);
+    			setPropertiesFromJMSMessage( jmsMessage, msg );
     			
     			/*
 			 * If this is fault message, then throw an exception with the contents. With the
@@ -396,6 +404,50 @@
     		}
     		return null;
 	} // ________________________________
+	
+	/**
+	 * Sets the strategy for handling the setting of properties on an outgoing 
+	 * JMS Message.
+	 * 
+	 * @param jmsPropertiesStrategy the strategy to use.
+	 */
+	public void setJmsPropertiesStrategy( JMSPropertiesSetter jmsPropertiesStrategy )
+	{
+		this.jmsPropertiesStrategy = jmsPropertiesStrategy;
+	}
+	
+	/**
+	 * Set the {@link ESBPropertiesSetter} to be used
+	 * 
+	 * @param esbPropertiesStrategy the strategy to be used
+	 */
+	public void setEsbPropertiesStrategy( ESBPropertiesSetter esbPropertiesStrategy )
+	{
+		this.esbPropertiesStrategy = esbPropertiesStrategy;
+	}	
+	
+	/**
+	 * This method will set appropriate JMSProperties on the outgoing JMSMessage object.
+	 * </p>
+	 * Sublclasses can either override this method add a different behaviour, or they can 
+	 * set the strategy by calling {@link #setJmsPropertiesStrategy(JMSPropertiesSetter)}.
+	 * </p> 
+	 * See {@link org.jboss.soa.esb.notification.jms.JMSPropertiesSetter} for more info.
+	 */
+	protected void setJMSProperties(org.jboss.soa.esb.message.Message fromESBMessage, javax.jms.Message toJMSMessage ) throws JMSException { 	
+		jmsPropertiesStrategy.setJMSProperties( fromESBMessage, toJMSMessage );
+	}
+	
+	/**
+	 * Delegates to {@link DefaultESBPropertiesSetter#setPropertiesFromJMSMessage(javax.jms.Message, Message)}
+	 * by default, but this method can be overridden by subclasses that need a different behaviour. 
+	 * </p>
+	 * It is also possible to set a different strategy by setting {@link #setEsbPropertiesStrategy(ESBPropertiesSetter)}
+	 */
+	protected void setPropertiesFromJMSMessage( javax.jms.Message fromJMS, org.jboss.soa.esb.message.Message toESB ) throws JMSException
+	{
+		esbPropertiesStrategy.setPropertiesFromJMSMessage( fromJMS, toESB );
+	}
 
 	private void createMessageConsumer () throws CourierException, ConfigurationException, MalformedEPRException
 	{
@@ -497,5 +549,16 @@
 	protected List<KeyValuePair> _messageProperties;
     
     protected JmsConnectionPool _pool;
+    
+    /**
+     * Strategy for setting JMSProperties
+     */
+    private JMSPropertiesSetter jmsPropertiesStrategy = new DefaultJMSPropertiesSetter();
+    
+    /**
+	 * Strategy for setting JMS Properties on the ESB Message object created
+	 * by the process method.
+	 */
+	private ESBPropertiesSetter esbPropertiesStrategy = new DefaultESBPropertiesSetter();
         
 }




More information about the jboss-svn-commits mailing list