summaryrefslogtreecommitdiff
path: root/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java74
1 files changed, 34 insertions, 40 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java b/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
index 265aa7714e..0f32b98aa8 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
@@ -33,11 +33,11 @@ import org.apache.qpid.server.logging.actors.CurrentActor;
import org.apache.qpid.server.logging.actors.ManagementActor;
import org.apache.qpid.server.management.AMQManagedObject;
import org.apache.qpid.server.management.ManagedObject;
+import org.apache.qpid.server.model.UUIDGenerator;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.queue.AMQQueueFactory;
import org.apache.qpid.server.queue.AMQQueueMBean;
import org.apache.qpid.server.queue.QueueRegistry;
-import org.apache.qpid.server.store.DurableConfigurationStore;
import org.apache.qpid.server.virtualhost.VirtualHost;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
@@ -49,6 +49,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.UUID;
/**
* This MBean implements the broker management interface and exposes the
@@ -60,8 +61,6 @@ public class AMQBrokerManagerMBean extends AMQManagedObject implements ManagedBr
private final QueueRegistry _queueRegistry;
private final ExchangeRegistry _exchangeRegistry;
private final ExchangeFactory _exchangeFactory;
- private final Exchange _defaultExchange;
- private final DurableConfigurationStore _durableConfig;
private final VirtualHostImpl.VirtualHostMBean _virtualHostMBean;
@@ -75,8 +74,6 @@ public class AMQBrokerManagerMBean extends AMQManagedObject implements ManagedBr
_queueRegistry = virtualHost.getQueueRegistry();
_exchangeRegistry = virtualHost.getExchangeRegistry();
- _defaultExchange = _exchangeRegistry.getDefaultExchange();
- _durableConfig = virtualHost.getDurableConfigurationStore();
_exchangeFactory = virtualHost.getExchangeFactory();
}
@@ -176,12 +173,12 @@ public class AMQBrokerManagerMBean extends AMQManagedObject implements ManagedBr
Exchange exchange = _exchangeRegistry.getExchange(new AMQShortString(exchangeName));
if (exchange == null)
{
- exchange = _exchangeFactory.createExchange(new AMQShortString(exchangeName), new AMQShortString(type),
- durable, false, 0);
+ exchange = _exchangeFactory.createExchange(new AMQShortString(exchangeName),
+ new AMQShortString(type), durable, false, 0);
_exchangeRegistry.registerExchange(exchange);
if (durable)
{
- _durableConfig.createExchange(exchange);
+ getVirtualHost().getMessageStore().createExchange(exchange);
}
}
else
@@ -249,45 +246,42 @@ public class AMQBrokerManagerMBean extends AMQManagedObject implements ManagedBr
public void createNewQueue(String queueName, String owner, boolean durable, Map<String,Object> arguments) throws JMException
{
final AMQShortString queueNameAsAMQShortString = new AMQShortString(queueName);
- AMQQueue queue = _queueRegistry.getQueue(queueNameAsAMQShortString);
- if (queue != null)
+ synchronized (_queueRegistry)
{
- throw new JMException("The queue \"" + queueName + "\" already exists.");
- }
-
- CurrentActor.set(new ManagementActor(getLogActor().getRootMessageLogger()));
- try
- {
- AMQShortString ownerShortString = null;
- if (owner != null)
+ AMQQueue queue = _queueRegistry.getQueue(queueNameAsAMQShortString);
+ if (queue != null)
{
- ownerShortString = new AMQShortString(owner);
+ throw new JMException("The queue \"" + queueName + "\" already exists.");
}
- FieldTable args = null;
- if(arguments != null)
+ CurrentActor.set(new ManagementActor(getLogActor().getRootMessageLogger()));
+ try
{
- args = FieldTable.convertToFieldTable(arguments);
- }
- final VirtualHost virtualHost = getVirtualHost();
+ FieldTable args = null;
+ if(arguments != null)
+ {
+ args = FieldTable.convertToFieldTable(arguments);
+ }
+ final VirtualHost virtualHost = getVirtualHost();
+
+ queue = AMQQueueFactory.createAMQQueueImpl(UUIDGenerator.generateUUID(), queueName, durable, owner,
+ false, false, getVirtualHost(), arguments);
+ if (queue.isDurable() && !queue.isAutoDelete())
+ {
+ getVirtualHost().getMessageStore().createQueue(queue, args);
+ }
- queue = AMQQueueFactory.createAMQQueueImpl(queueNameAsAMQShortString, durable, ownerShortString,
- false, false, getVirtualHost(), args);
- if (queue.isDurable() && !queue.isAutoDelete())
+ virtualHost.getBindingFactory().addBinding(queueName, queue, _exchangeRegistry.getDefaultExchange(), null);
+ }
+ catch (AMQException ex)
{
- _durableConfig.createQueue(queue, args);
+ JMException jme = new JMException(ex.toString());
+ throw new MBeanException(jme, "Error in creating queue " + queueName);
+ }
+ finally
+ {
+ CurrentActor.remove();
}
-
- virtualHost.getBindingFactory().addBinding(queueName, queue, _defaultExchange, null);
- }
- catch (AMQException ex)
- {
- JMException jme = new JMException(ex.toString());
- throw new MBeanException(jme, "Error in creating queue " + queueName);
- }
- finally
- {
- CurrentActor.remove();
}
}
@@ -317,7 +311,7 @@ public class AMQBrokerManagerMBean extends AMQManagedObject implements ManagedBr
queue.delete();
if (queue.isDurable())
{
- _durableConfig.removeQueue(queue);
+ getVirtualHost().getMessageStore().removeQueue(queue);
}
}
catch (AMQException ex)