You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by js...@apache.org on 2006/03/13 15:29:49 UTC
svn commit: r385561 - in /incubator/activemq/trunk/activemq-core/src:
main/java/org/apache/activemq/broker/jmx/
test/java/org/apache/activemq/broker/jmx/
Author: jstrachan
Date: Mon Mar 13 06:29:48 2006
New Revision: 385561
URL: http://svn.apache.org/viewcvs?rev=385561&view=rev
Log:
moved the create/destroy durable subscriptions to the broker MBean to make it easier to use and not require a reference to the topic to destroy them
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/BrokerViewMBean.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/TopicView.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/TopicViewMBean.java
incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java?rev=385561&r1=385560&r2=385561&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java Mon Mar 13 06:29:48 2006
@@ -23,10 +23,13 @@
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTopic;
+import org.apache.activemq.command.ConsumerId;
+import org.apache.activemq.command.ConsumerInfo;
+import org.apache.activemq.command.RemoveSubscriptionInfo;
public class BrokerView implements BrokerViewMBean {
- private final ManagedRegionBroker broker;
+ final ManagedRegionBroker broker;
private final BrokerService brokerService;
public BrokerView(BrokerService brokerService, ManagedRegionBroker managedBroker) throws Exception {
@@ -138,6 +141,33 @@
public void removeQueue(String name) throws Exception {
broker.removeDestination(getConnectionContext(broker.getContextBroker()), new ActiveMQQueue(name), 1000);
+ }
+
+ public void createDurableSubscriber(String clientId, String subscriberName, String topicName, String selector) throws Exception {
+ ConnectionContext context = new ConnectionContext();
+ context.setBroker(broker);
+ context.setClientId(clientId);
+ ConsumerInfo info = new ConsumerInfo();
+ ConsumerId consumerId = new ConsumerId();
+ consumerId.setConnectionId(clientId);
+ consumerId.setSessionId(0);
+ consumerId.setValue(0);
+ info.setConsumerId(consumerId);
+ info.setDestination(new ActiveMQTopic(topicName));
+ info.setSubcriptionName(subscriberName);
+ info.setSelector(selector);
+ broker.addConsumer(context, info);
+ broker.removeConsumer(context, info);
+ }
+
+ public void destroyDurableSubscriber(String clientId, String subscriberName) throws Exception {
+ RemoveSubscriptionInfo info = new RemoveSubscriptionInfo();
+ info.setClientId(clientId);
+ info.setSubcriptionName(subscriberName);
+ ConnectionContext context = new ConnectionContext();
+ context.setBroker(broker);
+ context.setClientId(clientId);
+ broker.removeSubscription(context, info);
}
static public ConnectionContext getConnectionContext(Broker broker) {
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/BrokerViewMBean.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/BrokerViewMBean.java?rev=385561&r1=385560&r2=385561&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/BrokerViewMBean.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/BrokerViewMBean.java Mon Mar 13 06:29:48 2006
@@ -18,6 +18,11 @@
import javax.management.ObjectName;
import org.apache.activemq.Service;
+import org.apache.activemq.broker.ConnectionContext;
+import org.apache.activemq.command.ActiveMQTopic;
+import org.apache.activemq.command.ConsumerId;
+import org.apache.activemq.command.ConsumerInfo;
+import org.apache.activemq.command.RemoveSubscriptionInfo;
public interface BrokerViewMBean extends Service {
@@ -96,5 +101,23 @@
* @throws Exception
*/
public void removeQueue(String name) throws Exception;
+
+ /**
+ * Creates a new durable topic subscriber
+ *
+ * @param clientId the JMS client ID
+ * @param subscriberName the durable subscriber name
+ * @param topicName the name of the topic to subscribe to
+ * @param selector a selector or null
+ */
+ public void createDurableSubscriber(String clientId, String subscriberName, String topicName, String selector) throws Exception;
+
+ /**
+ * Destroys a durable subscriber
+ *
+ * @param clientId the JMS client ID
+ * @param subscriberName the durable subscriber name
+ */
+ public void destroyDurableSubscriber(String clientId, String subscriberName) throws Exception;
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/TopicView.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/TopicView.java?rev=385561&r1=385560&r2=385561&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/TopicView.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/TopicView.java Mon Mar 13 06:29:48 2006
@@ -19,37 +19,10 @@
import org.apache.activemq.command.ConsumerInfo;
import org.apache.activemq.command.RemoveSubscriptionInfo;
-public class TopicView extends DestinationView implements TopicViewMBean{
-
- public TopicView(ManagedRegionBroker broker, Topic destination){
- super(broker, destination);
- }
+public class TopicView extends DestinationView implements TopicViewMBean {
- public void createDurableSubscriber(String clientId,String subscriberName) throws Exception{
- ConnectionContext context = new ConnectionContext();
- context.setBroker(broker);
- context.setClientId(clientId);
- ConsumerInfo info = new ConsumerInfo();
- ConsumerId consumerId = new ConsumerId();
- consumerId.setConnectionId(clientId);
- consumerId.setSessionId(0);
- consumerId.setValue(0);
- info.setConsumerId(consumerId);
- info.setDestination(destination.getActiveMQDestination());
- info.setSubcriptionName(subscriberName);
- broker.addConsumer(context, info);
- broker.removeConsumer(context, info);
+ public TopicView(ManagedRegionBroker broker, Topic destination) {
+ super(broker, destination);
}
- public void destroyDurableSubscriber(String clientId,String subscriberName) throws Exception{
- RemoveSubscriptionInfo info = new RemoveSubscriptionInfo();
- info.setClientId(clientId);
- info.setSubcriptionName(subscriberName);
- ConnectionContext context = new ConnectionContext();
- context.setBroker(broker);
- context.setClientId(clientId);
- broker.removeSubscription(context, info);
-
-
- }
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/TopicViewMBean.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/TopicViewMBean.java?rev=385561&r1=385560&r2=385561&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/TopicViewMBean.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/TopicViewMBean.java Mon Mar 13 06:29:48 2006
@@ -17,23 +17,4 @@
package org.apache.activemq.broker.jmx;
public interface TopicViewMBean extends DestinationViewMBean {
-
- /**
- * Creates a durable subscription that is subscribed to this topic.
- *
- * @param clientId
- * @param subscriberName
- * @throws Exception
- */
- public void createDurableSubscriber(String clientId, String subscriberName) throws Exception;
-
- /**
- * Destroys a durable subscription that had previously subscribed to this topic.
- *
- * @param clientId
- * @param subscriberName
- * @throws Exception
- */
- public void destroyDurableSubscriber(String clientId, String subscriberName) throws Exception;
-
}
Modified: incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java?rev=385561&r1=385560&r2=385561&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java (original)
+++ incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java Mon Mar 13 06:29:48 2006
@@ -138,14 +138,14 @@
assertEquals("Durable subscriber count", 0, broker.getDurableTopicSubscribers().length);
- ObjectName newTopicName = assertRegisteredObjectName(domain + ":Type=Topic,Destination=" + getDestinationString() + ",BrokerName=localhost");
- TopicViewMBean topic = (TopicViewMBean) MBeanServerInvocationHandler.newProxyInstance(mbeanServer, newTopicName, TopicViewMBean.class, true);
- topic.createDurableSubscriber(clientID, "subscriber1");
- topic.createDurableSubscriber(clientID, "subscriber2");
+ String topicName = getDestinationString();
+ String selector = null;
+ broker.createDurableSubscriber(clientID, "subscriber1", topicName , selector);
+ broker.createDurableSubscriber(clientID, "subscriber2", topicName, selector);
assertEquals("Durable subscriber count", 2, broker.getDurableTopicSubscribers().length);
// now lets try destroy it
- topic.destroyDurableSubscriber(clientID, "subscriber1");
+ broker.destroyDurableSubscriber(clientID, "subscriber1");
assertEquals("Durable subscriber count", 1, broker.getDurableTopicSubscribers().length);
}