From: Adrian B. <ej...@us...> - 2003-07-22 19:11:57
|
User: ejort Date: 03/07/22 12:11:56 Modified: src/main/org/jboss/ejb/plugins/jms Tag: Branch_3_2 JMSContainerInvoker.java Log: Register the JMSCI as an MBean allowing start/stop message delivery operations to be exposed. Allow delivery to be disabled at startup using a new <MDBConfig> attribute <DeliveryActive>false</DeliveryActive> Revision Changes Path No revision No revision 1.50.2.9 +74 -5 jboss/src/main/org/jboss/ejb/plugins/jms/Attic/JMSContainerInvoker.java Index: JMSContainerInvoker.java =================================================================== RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/jms/Attic/JMSContainerInvoker.java,v retrieving revision 1.50.2.8 retrieving revision 1.50.2.9 diff -u -r1.50.2.8 -r1.50.2.9 --- JMSContainerInvoker.java 16 Jun 2003 20:50:40 -0000 1.50.2.8 +++ JMSContainerInvoker.java 22 Jul 2003 19:11:56 -0000 1.50.2.9 @@ -15,7 +15,18 @@ import java.util.Collection; import java.util.Hashtable; -import javax.jms.*; +import javax.jms.Connection; +import javax.jms.ConnectionConsumer; +import javax.jms.Destination; +import javax.jms.ExceptionListener; +import javax.jms.JMSException; +import javax.jms.Message; +import javax.jms.MessageListener; +import javax.jms.Queue; +import javax.jms.QueueConnection; +import javax.jms.ServerSessionPool; +import javax.jms.Topic; +import javax.jms.TopicConnection; import javax.management.MBeanServer; import javax.management.ObjectName; @@ -54,16 +65,18 @@ /** * EJBProxyFactory for JMS MessageDrivenBeans * - * @version <tt>$Revision: 1.50.2.8 $</tt> + * @version <tt>$Revision: 1.50.2.9 $</tt> * @author <a href="mailto:pet...@ti...">Peter Antman</a> . - * @author <a href="mailto:ric...@te...">Rickard Öberg</a> + * @author <a href="mailto:ric...@te...">Rickard Ãberg</a> * @author <a href="mailto:seb...@m4...">Sebastien Alborini</a> * @author <a href="mailto:mar...@te...">Marc Fleury</a> * @author <a href="mailto:ja...@pl...">Jason Dillon</a> + * + * @jmx:mbean extends="org.jboss.system.ServiceMBean" */ public class JMSContainerInvoker extends ServiceMBeanSupport - implements EJBProxyFactory + implements EJBProxyFactory, JMSContainerInvokerMBean { private static final Logger log = Logger.getLogger(JMSContainerInvoker.class); @@ -156,6 +169,8 @@ protected InvokerProxyBindingMetaData invokerMetaData; protected String invokerBinding; + + protected boolean deliveryActive = true; /** * Set the invoker meta data so that the ProxyFactory can initialize properly @@ -190,7 +205,44 @@ // Constructors -------------------------------------------------- // Public -------------------------------------------------------- - + + /** + * @jmx:managed-attribute + * @return whether delivery is active + */ + public boolean getDeliveryActive() + { + return deliveryActive; + } + + /** + * @jmx:managed-operation + */ + public void startDelivery() + throws Exception + { + if (getState() != STARTED) + throw new IllegalStateException("The MDB is not started"); + if (deliveryActive) + return; + deliveryActive = true; + startService(); + } + + /** + * @jmx:managed-operation + */ + public void stopDelivery() + throws Exception + { + if (getState() != STARTED) + throw new IllegalStateException("The MDB is not started"); + if (deliveryActive == false) + return; + deliveryActive = false; + stopService(); + } + /** * Sets the Optimized attribute of the JMSContainerInvoker object * @@ -316,6 +368,18 @@ reconnectInterval = Long.parseLong(reconnect)*1000; } catch (Exception ignore) {} + + try + { + if ("false".equalsIgnoreCase(MetaData.getElementContent( + MetaData.getUniqueChild(mdbConfig, "DeliveryActive")))) + { + deliveryActive = false; + } + } + catch (Exception ignore) + { + } // Get Dead letter queue config - and save it for later use Element dlqEl = MetaData.getOptionalChild(mdbConfig, "DLQConfig"); @@ -600,6 +664,11 @@ protected void startService() throws Exception { + if (deliveryActive == false) + { + log.debug("Delivery is disabled"); + return; + } try { innerCreate(); |