From d6ec5014e60b0c451b0e2b57adad56b2a174661f Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 18 Nov 2010 13:16:27 +0000 Subject: [PATCH] JndiJmsBinder backup git-svn-id: https://svn.argeo.org/commons/trunk@3910 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../org.argeo.server.core/JndiJmsBinder.txt | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 server/runtime/org.argeo.server.core/JndiJmsBinder.txt diff --git a/server/runtime/org.argeo.server.core/JndiJmsBinder.txt b/server/runtime/org.argeo.server.core/JndiJmsBinder.txt new file mode 100644 index 000000000..3b08284f7 --- /dev/null +++ b/server/runtime/org.argeo.server.core/JndiJmsBinder.txt @@ -0,0 +1,62 @@ +package com.hsbc.xfos.swapswire.jms; + +import java.util.Map; + +import javax.jms.ConnectionFactory; +import javax.jms.Destination; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.jndi.JndiTemplate; + +/** Register/unregister a JMS connection factory in JNDI. */ +public class JndiJmsBinder implements InitializingBean, DisposableBean { + private final static Log log = LogFactory.getLog(JndiJmsBinder.class); + + private ConnectionFactory jmsConnectionFactory; + private JndiTemplate jndiTemplate; + private String connectionFactoryName; + private Map destinations; + + public void afterPropertiesSet() { + try { + Thread.sleep(5000); + jndiTemplate.bind(connectionFactoryName, jmsConnectionFactory); + for (String key : destinations.keySet()) + jndiTemplate.bind(key, destinations.get(key)); + log.info("JMS object bound to JNDI"); + } catch (Exception e) { + throw new RuntimeException("Cannot bind JMS objects", e); + } + } + + public void destroy() { + try { + for (String key : destinations.keySet()) + jndiTemplate.unbind(key); + jndiTemplate.unbind(connectionFactoryName); + log.info("JMS object unbound to JNDI"); + } catch (Exception e) { + throw new RuntimeException("Cannot unbind JMS objects", e); + } + } + + public void setJmsConnectionFactory(ConnectionFactory jmsConnectionFactory) { + this.jmsConnectionFactory = jmsConnectionFactory; + } + + public void setJndiTemplate(JndiTemplate jndiTemplate) { + this.jndiTemplate = jndiTemplate; + } + + public void setConnectionFactoryName(String connectionFactoryName) { + this.connectionFactoryName = connectionFactoryName; + } + + public void setDestinations(Map destinations) { + this.destinations = destinations; + } + +} -- 2.30.2