1 7 package org.ejtools.jndi.browser.model.jms; 8 9 import java.beans.beancontext.BeanContextServices ; 10 11 import javax.jms.JMSException ; 12 import javax.jms.Session ; 13 import javax.jms.TextMessage ; 14 import javax.jms.Topic ; 15 import javax.jms.TopicConnection ; 16 import javax.jms.TopicConnectionFactory ; 17 import javax.jms.TopicPublisher ; 18 import javax.jms.TopicSession ; 19 import javax.naming.Context ; 20 import javax.rmi.PortableRemoteObject ; 21 22 import org.apache.log4j.Logger; 23 import org.ejtools.jndi.browser.model.JNDIEntry; 24 import org.ejtools.jndi.browser.model.service.JMSConnectionService; 25 26 46 public class TopicProxy extends JNDIEntry 47 { 48 49 private Topic topic = null; 50 51 private static Logger logger = Logger.getLogger(TopicProxy.class); 52 53 54 61 public TopicProxy(Context context, String jndiName) 62 throws Exception 63 { 64 Object o = context.lookup(jndiName); 66 67 setName(jndiName); 68 setClassName(o.getClass().getName()); 69 70 this.topic = (Topic ) PortableRemoteObject.narrow(o, Topic .class); 71 } 72 73 74 81 public void createTextMessage(String text) 82 { 83 TopicConnection topicConnection = getTopicConnection(); 85 if (topicConnection != null) 86 { 87 try 88 { 89 TextMessage message = null; 90 91 TopicSession topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); 92 TopicPublisher topicPublisher = topicSession.createPublisher(topic); 93 94 message = topicSession.createTextMessage(); 95 message.setText(text); 96 topicPublisher.publish(message); 97 98 topicSession.close(); 99 } 100 catch (JMSException e) 101 { 102 logger.warn("Exception occurred: " + e.toString()); 103 } 104 finally 105 { 106 if (topicConnection != null) 107 { 108 try 109 { 110 topicConnection.close(); 111 } 112 catch (JMSException e) 113 { 114 } 115 } 116 } 117 } 118 } 119 120 121 125 protected TopicConnection getTopicConnection() 126 { 127 TopicConnection topicConnection = null; 128 TopicConnectionFactory topicConnectionFactory = getTopicConnectionFactory(); 129 130 if (topicConnectionFactory != null) 131 { 132 try 133 { 134 topicConnection = topicConnectionFactory.createTopicConnection(); 135 } 136 catch (JMSException e) 137 { 138 logger.warn("No Connection: " + e.toString()); 139 } 140 } 141 142 return topicConnection; 143 } 144 145 146 150 protected TopicConnectionFactory getTopicConnectionFactory() 151 { 152 TopicConnectionFactory topicConnectionFactory = null; 153 154 try 155 { 156 BeanContextServices context = (BeanContextServices ) getBeanContext(); 157 JMSConnectionService service = (JMSConnectionService) context.getService(this, this, JMSConnectionService.class, this, this); 158 topicConnectionFactory = service.getDefaultTopicConnectionFactory(); 159 } 160 catch (Exception e) 161 { 162 logger.warn("No Factory: " + e.toString()); 163 } 164 165 return topicConnectionFactory; 166 } 167 } 168 169 | Popular Tags |