JndiJmsBinder backup
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 18 Nov 2010 13:16:27 +0000 (13:16 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 18 Nov 2010 13:16:27 +0000 (13:16 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@3910 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

server/runtime/org.argeo.server.core/JndiJmsBinder.txt [new file with mode: 0644]

diff --git a/server/runtime/org.argeo.server.core/JndiJmsBinder.txt b/server/runtime/org.argeo.server.core/JndiJmsBinder.txt
new file mode 100644 (file)
index 0000000..3b08284
--- /dev/null
@@ -0,0 +1,62 @@
+package com.hsbc.xfos.swapswire.jms;\r
+\r
+import java.util.Map;\r
+\r
+import javax.jms.ConnectionFactory;\r
+import javax.jms.Destination;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.springframework.beans.factory.DisposableBean;\r
+import org.springframework.beans.factory.InitializingBean;\r
+import org.springframework.jndi.JndiTemplate;\r
+\r
+/** Register/unregister a JMS connection factory in JNDI. */\r
+public class JndiJmsBinder implements InitializingBean, DisposableBean {\r
+       private final static Log log = LogFactory.getLog(JndiJmsBinder.class);\r
+\r
+       private ConnectionFactory jmsConnectionFactory;\r
+       private JndiTemplate jndiTemplate;\r
+       private String connectionFactoryName;\r
+       private Map<String, Destination> destinations;\r
+\r
+       public void afterPropertiesSet() {\r
+               try {\r
+                       Thread.sleep(5000);\r
+                       jndiTemplate.bind(connectionFactoryName, jmsConnectionFactory);\r
+                       for (String key : destinations.keySet())\r
+                               jndiTemplate.bind(key, destinations.get(key));\r
+                       log.info("JMS object bound to JNDI");\r
+               } catch (Exception e) {\r
+                       throw new RuntimeException("Cannot bind JMS objects", e);\r
+               }\r
+       }\r
+\r
+       public void destroy() {\r
+               try {\r
+                       for (String key : destinations.keySet())\r
+                               jndiTemplate.unbind(key);\r
+                       jndiTemplate.unbind(connectionFactoryName);\r
+                       log.info("JMS object unbound to JNDI");\r
+               } catch (Exception e) {\r
+                       throw new RuntimeException("Cannot unbind JMS objects", e);\r
+               }\r
+       }\r
+\r
+       public void setJmsConnectionFactory(ConnectionFactory jmsConnectionFactory) {\r
+               this.jmsConnectionFactory = jmsConnectionFactory;\r
+       }\r
+\r
+       public void setJndiTemplate(JndiTemplate jndiTemplate) {\r
+               this.jndiTemplate = jndiTemplate;\r
+       }\r
+\r
+       public void setConnectionFactoryName(String connectionFactoryName) {\r
+               this.connectionFactoryName = connectionFactoryName;\r
+       }\r
+\r
+       public void setDestinations(Map<String, Destination> destinations) {\r
+               this.destinations = destinations;\r
+       }\r
+\r
+}\r