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 16:41:58 UTC
svn commit: r385575 - in /incubator/activemq/trunk/activemq-core/src:
main/java/org/apache/activemq/advisory/ main/java/org/apache/activemq/broker/
main/java/org/apache/activemq/broker/ft/
main/java/org/apache/activemq/broker/jmx/ main/java/org/apache/...
Author: jstrachan
Date: Mon Mar 13 07:41:55 2006
New Revision: 385575
URL: http://svn.apache.org/viewcvs?rev=385575&view=rev
Log:
refactor to allow the MBean createDurableSubscription() method to return the ObjectName of the newly created subscription
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/advisory/AdvisoryBroker.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerBroadcaster.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerFilter.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/EmptyBroker.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ErrorBroker.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/MutableBrokerFilter.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java
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/ManagedQueueRegion.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTempQueueRegion.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTempTopicRegion.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTopicRegion.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractSubscription.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Region.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/RegionBroker.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Subscription.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/TopicRegion.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/AuthorizationBroker.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/advisory/AdvisoryBroker.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/advisory/AdvisoryBroker.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/advisory/AdvisoryBroker.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/advisory/AdvisoryBroker.java Mon Mar 13 07:41:55 2006
@@ -22,6 +22,7 @@
import org.apache.activemq.broker.BrokerFilter;
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.broker.region.Destination;
+import org.apache.activemq.broker.region.Subscription;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.ActiveMQMessage;
import org.apache.activemq.command.ActiveMQTopic;
@@ -70,8 +71,8 @@
connections.put(info.getConnectionId(), info);
}
- public void addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
- next.addConsumer(context, info);
+ public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
+ Subscription answer = next.addConsumer(context, info);
// Don't advise advisory topics.
if( !AdvisorySupport.isAdvisoryTopic(info.getDestination()) ) {
@@ -120,6 +121,7 @@
}
}
}
+ return answer;
}
public void addProducer(ConnectionContext context, ProducerInfo info) throws Exception {
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerBroadcaster.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerBroadcaster.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerBroadcaster.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerBroadcaster.java Mon Mar 13 07:41:55 2006
@@ -16,6 +16,7 @@
import java.util.ArrayList;
import java.util.List;
import org.apache.activemq.broker.region.Destination;
+import org.apache.activemq.broker.region.Subscription;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.BrokerInfo;
import org.apache.activemq.command.ConnectionInfo;
@@ -54,12 +55,13 @@
}
}
- public void addConsumer(ConnectionContext context,ConsumerInfo info) throws Exception{
- next.addConsumer(context,info);
+ public Subscription addConsumer(ConnectionContext context,ConsumerInfo info) throws Exception{
+ Subscription answer = next.addConsumer(context,info);
Broker brokers[]=getListeners();
for(int i=0;i<brokers.length;i++){
brokers[i].addConsumer(context,info);
}
+ return answer;
}
public void addProducer(ConnectionContext context,ProducerInfo info) throws Exception{
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerFilter.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerFilter.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerFilter.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerFilter.java Mon Mar 13 07:41:55 2006
@@ -18,6 +18,7 @@
import java.util.Set;
import org.apache.activemq.broker.region.Destination;
+import org.apache.activemq.broker.region.Subscription;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.BrokerId;
import org.apache.activemq.command.BrokerInfo;
@@ -63,8 +64,8 @@
next.addConnection(context, info);
}
- public void addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
- next.addConsumer(context, info);
+ public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
+ return next.addConsumer(context, info);
}
public void addProducer(ConnectionContext context, ProducerInfo info) throws Exception {
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/EmptyBroker.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/EmptyBroker.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/EmptyBroker.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/EmptyBroker.java Mon Mar 13 07:41:55 2006
@@ -18,6 +18,7 @@
import java.util.Set;
import org.apache.activemq.broker.region.Destination;
+import org.apache.activemq.broker.region.Subscription;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.BrokerId;
import org.apache.activemq.command.BrokerInfo;
@@ -123,8 +124,8 @@
}
- public void addConsumer(ConnectionContext context,ConsumerInfo info) throws Exception{
-
+ public Subscription addConsumer(ConnectionContext context,ConsumerInfo info) throws Exception{
+ return null;
}
public void removeConsumer(ConnectionContext context,ConsumerInfo info) throws Exception{
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ErrorBroker.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ErrorBroker.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ErrorBroker.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ErrorBroker.java Mon Mar 13 07:41:55 2006
@@ -18,6 +18,7 @@
import java.util.Set;
import org.apache.activemq.broker.region.Destination;
+import org.apache.activemq.broker.region.Subscription;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.BrokerId;
import org.apache.activemq.command.BrokerInfo;
@@ -124,7 +125,7 @@
throw new IllegalStateException(this.message);
}
- public void addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
+ public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
throw new IllegalStateException(this.message);
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/MutableBrokerFilter.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/MutableBrokerFilter.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/MutableBrokerFilter.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/MutableBrokerFilter.java Mon Mar 13 07:41:55 2006
@@ -18,6 +18,7 @@
import java.util.Set;
import org.apache.activemq.broker.region.Destination;
+import org.apache.activemq.broker.region.Subscription;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.BrokerId;
import org.apache.activemq.command.BrokerInfo;
@@ -75,8 +76,8 @@
getNext().addConnection(context, info);
}
- public void addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
- getNext().addConsumer(context, info);
+ public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
+ return getNext().addConsumer(context, info);
}
public void addProducer(ConnectionContext context, ProducerInfo info) throws Exception {
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java Mon Mar 13 07:41:55 2006
@@ -21,6 +21,7 @@
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.broker.InsertableMutableBrokerFilter;
import org.apache.activemq.broker.MutableBrokerFilter;
+import org.apache.activemq.broker.region.Subscription;
import org.apache.activemq.command.Command;
import org.apache.activemq.command.ConnectionInfo;
import org.apache.activemq.command.ConsumerInfo;
@@ -132,9 +133,10 @@
sendAsyncToSlave(new RemoveInfo(info.getProducerId()));
}
- public void addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
- super.addConsumer(context, info);
+ public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
+ Subscription answer = super.addConsumer(context, info);
sendAsyncToSlave(info);
+ return answer;
}
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=385575&r1=385574&r2=385575&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 07:41:55 2006
@@ -21,6 +21,7 @@
import org.apache.activemq.broker.Broker;
import org.apache.activemq.broker.BrokerService;
import org.apache.activemq.broker.ConnectionContext;
+import org.apache.activemq.broker.region.Subscription;
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTopic;
import org.apache.activemq.command.ConsumerId;
@@ -143,7 +144,7 @@
broker.removeDestination(getConnectionContext(broker.getContextBroker()), new ActiveMQQueue(name), 1000);
}
- public void createDurableSubscriber(String clientId, String subscriberName, String topicName, String selector) throws Exception {
+ public ObjectName createDurableSubscriber(String clientId, String subscriberName, String topicName, String selector) throws Exception {
ConnectionContext context = new ConnectionContext();
context.setBroker(broker);
context.setClientId(clientId);
@@ -156,8 +157,12 @@
info.setDestination(new ActiveMQTopic(topicName));
info.setSubcriptionName(subscriberName);
info.setSelector(selector);
- broker.addConsumer(context, info);
+ Subscription subscription = broker.addConsumer(context, info);
broker.removeConsumer(context, info);
+ if (subscription != null) {
+ return subscription.getObjectName();
+ }
+ return null;
}
public void destroyDurableSubscriber(String clientId, String subscriberName) throws Exception {
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=385575&r1=385574&r2=385575&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 07:41:55 2006
@@ -109,8 +109,10 @@
* @param subscriberName the durable subscriber name
* @param topicName the name of the topic to subscribe to
* @param selector a selector or null
+ *
+ * @return the object name of the MBean registered in JMX
*/
- public void createDurableSubscriber(String clientId, String subscriberName, String topicName, String selector) throws Exception;
+ public ObjectName createDurableSubscriber(String clientId, String subscriberName, String topicName, String selector) throws Exception;
/**
* Destroys a durable subscriber
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedQueueRegion.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedQueueRegion.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedQueueRegion.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedQueueRegion.java Mon Mar 13 07:41:55 2006
@@ -17,6 +17,7 @@
package org.apache.activemq.broker.jmx;
import javax.jms.InvalidSelectorException;
+import javax.management.ObjectName;
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.broker.region.Destination;
@@ -41,7 +42,8 @@
protected Subscription createSubscription(ConnectionContext context, ConsumerInfo info) throws InvalidSelectorException {
Subscription sub = super.createSubscription(context, info);
- regionBroker.registerSubscription(context,sub);
+ ObjectName name = regionBroker.registerSubscription(context,sub);
+ sub.setObjectName(name);
return sub;
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java Mon Mar 13 07:41:55 2006
@@ -62,6 +62,7 @@
import org.apache.commons.logging.LogFactory;
import edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap;
import edu.emory.mathcs.backport.java.util.concurrent.CopyOnWriteArraySet;
+
public class ManagedRegionBroker extends RegionBroker{
private static final Log log=LogFactory.getLog(ManagedRegionBroker.class);
private final MBeanServer mbeanServer;
@@ -154,7 +155,7 @@
}
}
- public void registerSubscription(ConnectionContext context,Subscription sub){
+ public ObjectName registerSubscription(ConnectionContext context,Subscription sub){
Hashtable map=brokerObjectName.getKeyPropertyList();
String name="";
SubscriptionKey key=new SubscriptionKey(context.getClientId(),sub.getConsumerInfo().getSubcriptionName());
@@ -179,8 +180,10 @@
}
registerSubscription(objectName,sub.getConsumerInfo(),key,view);
subscriptionMap.put(sub,objectName);
+ return objectName;
}catch(Exception e){
log.error("Failed to register subscription "+sub,e);
+ return null;
}
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTempQueueRegion.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTempQueueRegion.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTempQueueRegion.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTempQueueRegion.java Mon Mar 13 07:41:55 2006
@@ -17,6 +17,7 @@
package org.apache.activemq.broker.jmx;
import javax.jms.InvalidSelectorException;
+import javax.management.ObjectName;
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.broker.region.Destination;
@@ -39,7 +40,8 @@
protected Subscription createSubscription(ConnectionContext context, ConsumerInfo info) throws InvalidSelectorException {
Subscription sub = super.createSubscription(context, info);
- regionBroker.registerSubscription(context,sub);
+ ObjectName name = regionBroker.registerSubscription(context,sub);
+ sub.setObjectName(name);
return sub;
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTempTopicRegion.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTempTopicRegion.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTempTopicRegion.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTempTopicRegion.java Mon Mar 13 07:41:55 2006
@@ -17,6 +17,7 @@
package org.apache.activemq.broker.jmx;
import javax.jms.JMSException;
+import javax.management.ObjectName;
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.broker.region.Destination;
@@ -39,7 +40,8 @@
protected Subscription createSubscription(ConnectionContext context, ConsumerInfo info) throws JMSException {
Subscription sub = super.createSubscription(context, info);
- regionBroker.registerSubscription(context,sub);
+ ObjectName name = regionBroker.registerSubscription(context,sub);
+ sub.setObjectName(name);
return sub;
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTopicRegion.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTopicRegion.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTopicRegion.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedTopicRegion.java Mon Mar 13 07:41:55 2006
@@ -17,6 +17,7 @@
package org.apache.activemq.broker.jmx;
import javax.jms.JMSException;
+import javax.management.ObjectName;
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.broker.region.Destination;
@@ -41,7 +42,8 @@
protected Subscription createSubscription(ConnectionContext context, ConsumerInfo info) throws JMSException {
Subscription sub = super.createSubscription(context, info);
- regionBroker.registerSubscription(context,sub);
+ ObjectName name = regionBroker.registerSubscription(context,sub);
+ sub.setObjectName(name);
return sub;
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java Mon Mar 13 07:41:55 2006
@@ -113,7 +113,7 @@
}
}
- public void addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
+ public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
Subscription sub = createSubscription(context, info);
@@ -148,6 +148,7 @@
((QueueBrowserSubscription)sub).browseDone();
}
+ return sub;
}
/**
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractSubscription.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractSubscription.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractSubscription.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractSubscription.java Mon Mar 13 07:41:55 2006
@@ -18,6 +18,7 @@
import javax.jms.InvalidSelectorException;
import javax.jms.JMSException;
+import javax.management.ObjectName;
import java.io.IOException;
@@ -46,6 +47,7 @@
protected ConsumerInfo info;
final protected DestinationFilter destinationFilter;
private BooleanExpression selectorExpression;
+ private ObjectName objectName;
final protected CopyOnWriteArrayList destinations = new CopyOnWriteArrayList();
@@ -139,5 +141,13 @@
// its valid so lets actually update it now
info.setSelector(selector);
this.selectorExpression = newSelector;
+ }
+
+ public ObjectName getObjectName() {
+ return objectName;
+ }
+
+ public void setObjectName(ObjectName objectName) {
+ this.objectName = objectName;
}
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Region.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Region.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Region.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Region.java Mon Mar 13 07:41:55 2006
@@ -60,9 +60,10 @@
/**
* Adds a consumer.
* @param context the environment the operation is being executed under.
+ * @return TODO
* @throws Exception TODO
*/
- public void addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception;
+ public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception;
/**
* Removes a consumer.
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/RegionBroker.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/RegionBroker.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/RegionBroker.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/RegionBroker.java Mon Mar 13 07:41:55 2006
@@ -200,7 +200,7 @@
answer = tempTopicRegion.addDestination(context, destination);
break;
default:
- throwUnknownDestinationType(destination);
+ throw createUnknownDestinationTypeException(destination);
}
destinations.add(destination);
@@ -225,7 +225,7 @@
tempTopicRegion.removeDestination(context, destination, timeout);
break;
default:
- throwUnknownDestinationType(destination);
+ throw createUnknownDestinationTypeException(destination);
}
destinations.remove(destination);
@@ -251,23 +251,23 @@
public void removeProducer(ConnectionContext context, ProducerInfo info) throws Exception {
}
- public void addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
+ public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
ActiveMQDestination destination = info.getDestination();
switch(destination.getDestinationType()) {
case ActiveMQDestination.QUEUE_TYPE:
- queueRegion.addConsumer(context, info);
- break;
+ return queueRegion.addConsumer(context, info);
+
case ActiveMQDestination.TOPIC_TYPE:
- topicRegion.addConsumer(context, info);
- break;
+ return topicRegion.addConsumer(context, info);
+
case ActiveMQDestination.TEMP_QUEUE_TYPE:
- tempQueueRegion.addConsumer(context, info);
- break;
+ return tempQueueRegion.addConsumer(context, info);
+
case ActiveMQDestination.TEMP_TOPIC_TYPE:
- tempTopicRegion.addConsumer(context, info);
- break;
+ return tempTopicRegion.addConsumer(context, info);
+
default:
- throwUnknownDestinationType(destination);
+ throw createUnknownDestinationTypeException(destination);
}
}
@@ -287,7 +287,7 @@
tempTopicRegion.removeConsumer(context, info);
break;
default:
- throwUnknownDestinationType(destination);
+ throw createUnknownDestinationTypeException(destination);
}
}
@@ -316,7 +316,7 @@
tempTopicRegion.send(context, message);
break;
default:
- throwUnknownDestinationType(destination);
+ throw createUnknownDestinationTypeException(destination);
}
}
@@ -336,7 +336,7 @@
tempTopicRegion.acknowledge(context, ack);
break;
default:
- throwUnknownDestinationType(destination);
+ throw createUnknownDestinationTypeException(destination);
}
}
@@ -402,8 +402,8 @@
return destinationStatistics;
}
- protected void throwUnknownDestinationType(ActiveMQDestination destination) throws JMSException {
- throw new JMSException("Unknown destination type: " + destination.getDestinationType());
+ protected JMSException createUnknownDestinationTypeException(ActiveMQDestination destination) {
+ return new JMSException("Unknown destination type: " + destination.getDestinationType());
}
public synchronized void addBroker(Connection connection,BrokerInfo info){
@@ -442,7 +442,7 @@
tempTopicRegion.processDispatchNotification(messageDispatchNotification);
break;
default:
- throwUnknownDestinationType(destination);
+ throw createUnknownDestinationTypeException(destination);
}
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Subscription.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Subscription.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Subscription.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Subscription.java Mon Mar 13 07:41:55 2006
@@ -26,6 +26,7 @@
import org.apache.activemq.filter.MessageEvaluationContext;
import javax.jms.InvalidSelectorException;
+import javax.management.ObjectName;
/**
* @version $Revision: 1.5 $
@@ -137,4 +138,14 @@
* This operation is not supported for persistent topics.
*/
public void setSelector(String selector) throws InvalidSelectorException, UnsupportedOperationException;
+
+ /**
+ * @return the JMX object name that this subscription was registered as if applicable
+ */
+ public ObjectName getObjectName();
+
+ /**
+ * Set when the subscription is registered in JMX
+ */
+ public void setObjectName(ObjectName objectName);
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/TopicRegion.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/TopicRegion.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/TopicRegion.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/TopicRegion.java Mon Mar 13 07:41:55 2006
@@ -57,7 +57,7 @@
}
- public void addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
+ public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
if (info.isDurable()) {
ActiveMQDestination destination = info.getDestination();
@@ -103,9 +103,10 @@
}
sub.activate(context, info);
+ return sub;
}
else {
- super.addConsumer(context, info);
+ return super.addConsumer(context, info);
}
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/AuthorizationBroker.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/AuthorizationBroker.java?rev=385575&r1=385574&r2=385575&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/AuthorizationBroker.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/AuthorizationBroker.java Mon Mar 13 07:41:55 2006
@@ -20,6 +20,7 @@
import org.apache.activemq.broker.BrokerFilter;
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.broker.region.Destination;
+import org.apache.activemq.broker.region.Subscription;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTempDestination;
@@ -85,7 +86,7 @@
super.removeDestination(context, destination, timeout);
}
- public void addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
+ public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
final SecurityContext subject = (SecurityContext) context.getSecurityContext();
if( subject == null )
@@ -117,7 +118,7 @@
}
- super.addConsumer(context, info);
+ return super.addConsumer(context, info);
}
public void addProducer(ConnectionContext context, ProducerInfo info) 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=385575&r1=385574&r2=385575&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 07:41:55 2006
@@ -140,10 +140,14 @@
String topicName = getDestinationString();
String selector = null;
- broker.createDurableSubscriber(clientID, "subscriber1", topicName , selector);
+ ObjectName name1 = broker.createDurableSubscriber(clientID, "subscriber1", topicName , selector);
broker.createDurableSubscriber(clientID, "subscriber2", topicName, selector);
assertEquals("Durable subscriber count", 2, broker.getDurableTopicSubscribers().length);
+ assertNotNull("Should have created an mbean name for the durable subscriber!", name1);
+
+ System.out.println("Created durable subscriber with name: " + name1);
+
// now lets try destroy it
broker.destroyDurableSubscriber(clientID, "subscriber1");
assertEquals("Durable subscriber count", 1, broker.getDurableTopicSubscribers().length);