/* * Copyright 2015 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wso2.carbon.registry.event.core.internal.delivery.jms; import org.wso2.carbon.registry.event.core.exception.EventBrokerException; import org.wso2.carbon.registry.event.core.subscription.Subscription; import javax.jms.TopicSubscriber; import javax.jms.TopicSession; import javax.jms.TopicConnection; import javax.jms.JMSException; /** * this class is used to keep the details of the jms subscription * to close the connections at the end */ public class JMSSubscriptionDetails { private TopicSubscriber topicSubscriber; private TopicSession topicSession; private TopicConnection topicConnection; public JMSSubscriptionDetails(TopicSubscriber topicSubscriber, TopicSession topicSession, TopicConnection topicConnection) { this.topicSubscriber = topicSubscriber; this.topicSession = topicSession; this.topicConnection = topicConnection; } public void close() throws EventBrokerException { try { this.topicSubscriber.close(); this.topicSession.close(); this.topicConnection.stop(); this.topicConnection.close(); } catch (JMSException e) { throw new EventBrokerException("Can not close connections ", e); } } public void renewSubscription(Subscription subscription) throws JMSException { JMSMessageListener jmsMessageListener = (JMSMessageListener) this.topicSubscriber.getMessageListener(); jmsMessageListener.renewSubscription(subscription); } }