diff --git a/impl/src/main/java/org/jboss/seam/jms/impl/inject/MessagePubSubProducer.java b/impl/src/main/java/org/jboss/seam/jms/impl/inject/MessagePubSubProducer.java index 60596be..31a2ed2 100644 --- a/impl/src/main/java/org/jboss/seam/jms/impl/inject/MessagePubSubProducer.java +++ b/impl/src/main/java/org/jboss/seam/jms/impl/inject/MessagePubSubProducer.java @@ -25,6 +25,7 @@ import javax.enterprise.context.RequestScoped; import javax.enterprise.inject.Any; +import javax.enterprise.inject.Disposes; import javax.enterprise.inject.Instance; import javax.enterprise.inject.Produces; import javax.enterprise.inject.spi.InjectionPoint; @@ -60,6 +61,10 @@ public TopicPublisher createTopicProducer(InjectionPoint ip, Session s) throws J return TopicPublisher.class.cast(s.createProducer(t)); } + public void disposeTopicProducer(@Disposes @Any TopicPublisher tp) throws JMSException { + tp.close(); + } + @Produces @JmsDestination public TopicSubscriber createTopicSubscriber(InjectionPoint ip, Session s) throws JMSException @@ -69,6 +74,10 @@ public TopicSubscriber createTopicSubscriber(InjectionPoint ip, Session s) throw return TopicSubscriber.class.cast(s.createConsumer(t)); } + public void disposesTopicSubscriber(@Disposes @Any TopicSubscriber ts) throws JMSException { + ts.close(); + } + @Produces @JmsDestination public QueueSender createQueueSender(InjectionPoint ip, Session s) throws JMSException @@ -78,6 +87,10 @@ public QueueSender createQueueSender(InjectionPoint ip, Session s) throws JMSExc return QueueSender.class.cast(s.createProducer(q)); } + public void disposesQueueSender(@Disposes @Any QueueSender qs) throws JMSException { + qs.close(); + } + @Produces @JmsDestination public QueueReceiver createQueueReceiver(InjectionPoint ip, Session s) throws JMSException @@ -86,4 +99,8 @@ public QueueReceiver createQueueReceiver(InjectionPoint ip, Session s) throws JM Queue q = anyQueue.select(d).get(); return QueueReceiver.class.cast(s.createConsumer(q)); } + + public void disposesQueueReceiver(@Disposes @Any QueueReceiver qr) throws JMSException { + qr.close(); + } }