[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