]> git.argeo.org Git - lgpl/argeo-commons.git/blob - server/runtime/org.argeo.server.core/JndiJmsBinder.txt
Introduce check-osgi profile
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.core / JndiJmsBinder.txt
1 package com.hsbc.xfos.swapswire.jms;
2
3 import java.util.Map;
4
5 import javax.jms.ConnectionFactory;
6 import javax.jms.Destination;
7
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10 import org.springframework.beans.factory.DisposableBean;
11 import org.springframework.beans.factory.InitializingBean;
12 import org.springframework.jndi.JndiTemplate;
13
14 /** Register/unregister a JMS connection factory in JNDI. */
15 public class JndiJmsBinder implements InitializingBean, DisposableBean {
16 private final static Log log = LogFactory.getLog(JndiJmsBinder.class);
17
18 private ConnectionFactory jmsConnectionFactory;
19 private JndiTemplate jndiTemplate;
20 private String connectionFactoryName;
21 private Map<String, Destination> destinations;
22
23 public void afterPropertiesSet() {
24 try {
25 Thread.sleep(5000);
26 jndiTemplate.bind(connectionFactoryName, jmsConnectionFactory);
27 for (String key : destinations.keySet())
28 jndiTemplate.bind(key, destinations.get(key));
29 log.info("JMS object bound to JNDI");
30 } catch (Exception e) {
31 throw new RuntimeException("Cannot bind JMS objects", e);
32 }
33 }
34
35 public void destroy() {
36 try {
37 for (String key : destinations.keySet())
38 jndiTemplate.unbind(key);
39 jndiTemplate.unbind(connectionFactoryName);
40 log.info("JMS object unbound to JNDI");
41 } catch (Exception e) {
42 throw new RuntimeException("Cannot unbind JMS objects", e);
43 }
44 }
45
46 public void setJmsConnectionFactory(ConnectionFactory jmsConnectionFactory) {
47 this.jmsConnectionFactory = jmsConnectionFactory;
48 }
49
50 public void setJndiTemplate(JndiTemplate jndiTemplate) {
51 this.jndiTemplate = jndiTemplate;
52 }
53
54 public void setConnectionFactoryName(String connectionFactoryName) {
55 this.connectionFactoryName = connectionFactoryName;
56 }
57
58 public void setDestinations(Map<String, Destination> destinations) {
59 this.destinations = destinations;
60 }
61
62 }