[jboss-svn-commits] JBL Code SVN: r18350 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Feb 6 13:19:15 EST 2008
Author: beve
Date: 2008-02-06 13:19:15 -0500 (Wed, 06 Feb 2008)
New Revision: 18350
Modified:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
Log:
Work for JBESB-1538 "Add Topic support to JMSRouter"
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java 2008-02-06 17:20:25 UTC (rev 18349)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java 2008-02-06 18:19:15 UTC (rev 18350)
@@ -35,6 +35,7 @@
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueSession;
+import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.NamingException;
@@ -50,8 +51,7 @@
import org.jboss.soa.esb.common.Configuration;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.helpers.KeyValuePair;
-import org.jboss.soa.esb.helpers.NamingContextException;
-import org.jboss.soa.esb.helpers.NamingContextPool;
+import org.jboss.soa.esb.helpers.NamingContext;
import org.jboss.soa.esb.notification.jms.DefaultJMSPropertiesSetter;
import org.jboss.soa.esb.notification.jms.JMSPropertiesSetter;
import org.jboss.soa.esb.util.Util;
@@ -206,7 +206,7 @@
sb.append("Exception while sending message [").append(message).append("] to destination [");
if (queueSetup != null)
- sb.append(queueSetup.queueName).append("].");
+ sb.append(queueSetup.destinationName).append("].");
else
sb.append("null ].");
@@ -223,7 +223,7 @@
jmsMessage = queueSetup.jmsSession.createTextMessage();
if(logger.isDebugEnabled()) {
- logger.debug("Sending Text message: [" + objectFromBody + "] to destination [" + queueSetup.queueName + "].");
+ logger.debug("Sending Text message: [" + objectFromBody + "] to destination [" + queueSetup.destinationName + "].");
}
((TextMessage)jmsMessage).setText((String)objectFromBody);
@@ -231,7 +231,7 @@
jmsMessage = queueSetup.jmsSession.createBytesMessage();
if(logger.isDebugEnabled()) {
- logger.debug("Sending byte[] message: [" + objectFromBody + "] to destination [" + queueSetup.queueName + "].");
+ logger.debug("Sending byte[] message: [" + objectFromBody + "] to destination [" + queueSetup.destinationName + "].");
}
((BytesMessage)jmsMessage).writeBytes((byte[])objectFromBody);
@@ -264,7 +264,7 @@
jmsMessage = queueSetup.jmsSession.createObjectMessage();
if(logger.isDebugEnabled()) {
- logger.debug("Sending Object message: [" + message + "] to destination [" + queueSetup.queueName + "].");
+ logger.debug("Sending Object message: [" + message + "] to destination [" + queueSetup.destinationName + "].");
}
((ObjectMessage)jmsMessage).setObject((Serializable) message);
return jmsMessage;
@@ -321,50 +321,47 @@
}
private static class JMSSendQueueSetup {
- QueueSession jmsSession;
- Queue jmsQueue;
+ Session jmsSession;
+ Destination jmsDestination;
MessageProducer jmsProducer;
- String queueName;
+ String destinationName;
JmsConnectionPool pool;
Properties environment;
// TODO: Modify to support topic destinations too
- private JMSSendQueueSetup(String queueName) throws NamingException, JMSException, ConnectionException, NamingContextException {
+ private JMSSendQueueSetup(String destinationName) throws NamingException, JMSException, ConnectionException {
environment = new Properties();
environment.setProperty(Context.PROVIDER_URL, Configuration.getJndiServerURL());
environment.setProperty(Context.INITIAL_CONTEXT_FACTORY, Configuration.getJndiServerContextFactory());
environment.setProperty(Context.URL_PKG_PREFIXES, Configuration.getJndiServerPkgPrefix());
- Context oCtx = NamingContextPool.getNamingContext(environment);
+ Context oCtx = NamingContext.getServerContext(environment);
+ pool = JmsConnectionPoolContainer.getPool(environment, "ConnectionFactory", JMSEpr.QUEUE_TYPE);
+
+ this.destinationName = destinationName;
+
+ jmsSession = pool.getQueueSession();
+ boolean clean = true ;
try {
- pool = JmsConnectionPoolContainer.getPool(environment, "ConnectionFactory", JMSEpr.QUEUE_TYPE);
-
- this.queueName = queueName;
-
- jmsSession = pool.getQueueSession();
- boolean clean = true ;
try {
+ jmsDestination = (Destination)oCtx.lookup(destinationName);
+ } catch (NamingException ne) {
try {
- jmsQueue = (Queue) oCtx.lookup(queueName);
- } catch (NamingException ne) {
- try {
- oCtx = NamingContextPool.replaceNamingContext(oCtx, environment);
- jmsQueue = (Queue) oCtx.lookup(queueName);
- } catch (NamingException nex) {
- //ActiveMQ
- jmsQueue = jmsSession.createQueue(queueName);
- }
+ oCtx = NamingContext.getFreshServerContext(environment);
+ jmsDestination = (Queue) oCtx.lookup(destinationName);
+ } catch (NamingException nex) {
+ //ActiveMQ
+ jmsDestination = jmsSession.createQueue(destinationName);
}
- jmsProducer = jmsSession.createSender(jmsQueue);
- clean = false ;
- } finally {
- if (clean) {
- pool.closeSession(jmsSession) ;
- }
}
+ jmsProducer = jmsSession.createProducer(jmsDestination);
+ clean = false ;
} finally {
- NamingContextPool.releaseNamingContext(oCtx) ;
+ if (clean) {
+ pool.closeSession(jmsSession) ;
+ }
}
+
}
public void setDeliveryMode(final int deliveryMode ) throws JMSException
@@ -387,13 +384,14 @@
private void close() {
try {
- pool.closeSession(jmsSession);
if (jmsProducer!=null) {
jmsProducer.close();
}
} catch (Exception e) {
logger.error("Unable to close JMS Queue Setup.", e);
- }
+ } finally {
+ pool.closeSession(jmsSession);
+ }
}
}
More information about the jboss-svn-commits
mailing list