List of usage examples for javax.jms TopicSubscriber setMessageListener
void setMessageListener(MessageListener listener) throws JMSException;
From source file:org.openhie.openempi.notification.impl.NotificationServiceImpl.java
public void registerListener(String eventTypeName, MessageHandler handler) { if (brokerService == null || !brokerInitialized) { log.debug("The broker service is not running in registerListener."); return;//w ww . j a va2 s. co m } log.info("Registering handler for event " + eventTypeName); if (!isValidHandler(handler)) { return; } Topic topic = topicMap.get(eventTypeName); if (topic == null) { log.error("Caller attempted to register interest to events of unknown type " + eventTypeName); throw new RuntimeException("Unknown event type specified in registration request."); } if (isListenerRegistered(handler, eventTypeName)) { log.warn("Caller attempted to register interest for the same event again."); return; } ConnectionFactory connectionFactory = jmsTemplate.getConnectionFactory(); try { TopicConnection connection = (TopicConnection) connectionFactory.createConnection(); if (connection.getClientID() == null) { connection.setClientID(handler.getClientId()); } log.debug("Connection is of type " + connection); TopicSession topicSession = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); TopicSubscriber subscriber = topicSession.createSubscriber(topic); MessageListenerImpl listener = new MessageListenerImpl(connection, topicSession, subscriber, handler); saveListenerRegistration(listener, eventTypeName); subscriber.setMessageListener(listener); connection.start(); } catch (JMSException e) { log.error("Failed while setting up a registrant for notification events. Error: " + e, e); throw new RuntimeException("Unable to setup registration for event notification: " + e.getMessage()); } }
From source file:org.openhie.openempi.notification.impl.NotificationServiceImpl.java
public void registerListener(List<String> eventTypeNames, MessageHandler handler) { if (brokerService == null || !brokerInitialized) { log.debug("The broker service is not running in registerListener."); return;//from www. j a v a 2 s . c o m } if (!isValidHandler(handler)) { return; } ConnectionFactory connectionFactory = jmsTemplate.getConnectionFactory(); Connection connection = null; try { connection = connectionFactory.createConnection(); connection.setClientID(handler.getClientId()); } catch (JMSException e) { log.error("Failed while setting up a registrant for notification events. Error: " + e, e); throw new RuntimeException("Unable to setup registration for event notification: " + e.getMessage()); } for (String eventTypeName : eventTypeNames) { log.info("Registering handler for event " + eventTypeName); Topic topic = topicMap.get(eventTypeName); if (topic == null) { log.error("Caller attempted to register interest to events of unknown type " + eventTypeName); throw new RuntimeException("Unknown event type specified in registration request."); } if (isListenerRegistered(handler, eventTypeName)) { log.warn("Caller attempted to register interest for the same event again."); return; } try { Session topicSession = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); TopicSubscriber subscriber = topicSession.createDurableSubscriber(topic, topic.getTopicName()); MessageListenerImpl listener = new MessageListenerImpl(connection, topicSession, subscriber, handler); saveListenerRegistration(listener, eventTypeName); subscriber.setMessageListener(listener); } catch (JMSException e) { log.error("Failed while setting up a registrant for notification events. Error: " + e, e); throw new RuntimeException( "Unable to setup registration for event notification: " + e.getMessage()); } } try { connection.start(); } catch (JMSException e) { log.error("Failed while setting up a registrant for notification events. Error: " + e, e); throw new RuntimeException("Unable to setup registration for event notification: " + e.getMessage()); } }
From source file:org.wso2.carbon.appfactory.resource.mgt.listeners.TenantCreationDurableSubscriber.java
/** * Subscribe as a durable subscriber to the topic. * * @throws AppFactoryEventException//from w ww. j a va 2 s . co m */ public void subscribe() throws AppFactoryEventException { Properties properties = new Properties(); properties.put(Context.INITIAL_CONTEXT_FACTORY, AppFactoryConstants.ANDES_ICF); properties.put(AppFactoryConstants.CF_NAME_PREFIX + AppFactoryConstants.CF_NAME, Util.getTCPConnectionURL()); properties.put(CarbonConstants.REQUEST_BASE_CONTEXT, "true"); properties.put(AppFactoryConstants.TOPIC, topicName); TopicConnectionFactory connFactory; TopicConnection topicConnection; TopicSession topicSession; TopicSubscriber topicSubscriber; InitialContext ctx; try { ctx = new InitialContext(properties); connFactory = (TopicConnectionFactory) ctx.lookup(AppFactoryConstants.CF_NAME); topicConnection = connFactory.createTopicConnection(); topicSession = topicConnection.createTopicSession(false, TopicSession.CLIENT_ACKNOWLEDGE); Topic topic; try { topic = (Topic) ctx.lookup(topicName); } catch (NamingException e) { topic = topicSession.createTopic(topicName); } topicSubscriber = topicSession.createDurableSubscriber(topic, subscriptionId); topicSubscriber.setMessageListener( new TenantCreationMessageListener(topicConnection, topicSession, topicSubscriber)); topicConnection.start(); if (log.isDebugEnabled()) { log.debug("Durable Subscriber created for topic " + topicName + " with subscription id : " + subscriptionId); } } catch (NamingException e) { throw new AppFactoryEventException("Failed to subscribe to topic : " + topicName + " with subscription id" + " : " + subscriptionId, e); } catch (JMSException e) { throw new AppFactoryEventException("Failed to subscribe to topic : " + topicName + " with subscription id" + " : " + subscriptionId, e); } }
From source file:org.wso2.carbon.appfactory.stratos.listeners.StratosSubscriptionDurableSubscriber.java
/** * Subscribe as a durable subscriber to the topic. * * @throws AppFactoryEventException/* w w w . ja va 2 s .c o m*/ */ public void subscribe() throws AppFactoryEventException { Properties properties = new Properties(); properties.put(Context.INITIAL_CONTEXT_FACTORY, AppFactoryConstants.ANDES_ICF); properties.put(AppFactoryConstants.CF_NAME_PREFIX + AppFactoryConstants.CF_NAME, Util.getTCPConnectionURL()); properties.put(CarbonConstants.REQUEST_BASE_CONTEXT, true); properties.put(AppFactoryConstants.TOPIC, topicName); TopicConnectionFactory connFactory; TopicConnection topicConnection; TopicSession topicSession; TopicSubscriber topicSubscriber; InitialContext ctx; try { ctx = new InitialContext(properties); connFactory = (TopicConnectionFactory) ctx.lookup(AppFactoryConstants.CF_NAME); topicConnection = connFactory.createTopicConnection(); topicSession = topicConnection.createTopicSession(false, TopicSession.CLIENT_ACKNOWLEDGE); Topic topic; try { topic = (Topic) ctx.lookup(topicName); } catch (NamingException e) { topic = topicSession.createTopic(topicName); } topicSubscriber = topicSession.createDurableSubscriber(topic, subscriptionId); topicSubscriber.setMessageListener( new StratosSubscriptionMessageListener(topicConnection, topicSession, topicSubscriber)); topicConnection.start(); if (log.isDebugEnabled()) { log.debug("Durable Subscriber created for topic " + topicName + " with subscription id : " + subscriptionId); } } catch (NamingException e) { throw new AppFactoryEventException("Failed to subscribe to topic : " + topicName + " with subscription id" + " : " + subscriptionId, e); } catch (JMSException e) { throw new AppFactoryEventException("Failed to subscribe to topic : " + topicName + " with subscription id" + " : " + subscriptionId, e); } }