Author: rgodfrey
Date: Wed Aug 21 11:32:22 2013
New Revision: 1516140
URL: http://svn.apache.org/r1516140
Log:
QPID-5087 : [Java Broker] Allow use of separate message stores and
configuration stores
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeFactory.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeFactory.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueFactory.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/ExchangeRecoverer.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/QueueRecoverer.java
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeFactory.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeFactory.java?rev=1516140&r1=1516139&r2=1516140&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeFactory.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeFactory.java
Wed Aug 21 11:32:22 2013
@@ -136,4 +136,10 @@ public class DefaultExchangeFactory impl
Exchange e = exchType.newInstance(id, _host, exchange, durable,
autoDelete);
return e;
}
+
+ @Override
+ public Exchange restoreExchange(UUID id, String exchange, String type,
boolean autoDelete) throws AMQException
+ {
+ return createExchange(id, exchange, type, true, autoDelete);
+ }
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeFactory.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeFactory.java?rev=1516140&r1=1516139&r2=1516140&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeFactory.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeFactory.java
Wed Aug 21 11:32:22 2013
@@ -38,5 +38,6 @@ public interface ExchangeFactory
Exchange createExchange(String exchange, String type, boolean durable,
boolean autoDelete) throws AMQException;
Exchange createExchange(UUID id, String exchange, String type, boolean
durable, boolean autoDelete) throws AMQException;
+ Exchange restoreExchange(UUID id, String exchange, String type, boolean
autoDelete) throws AMQException;
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java?rev=1516140&r1=1516139&r2=1516140&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
Wed Aug 21 11:32:22 2013
@@ -28,7 +28,6 @@ import java.util.UUID;
import org.apache.qpid.AMQException;
import org.apache.qpid.AMQSecurityException;
import org.apache.qpid.exchange.ExchangeDefaults;
-import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.configuration.QueueConfiguration;
import org.apache.qpid.server.exchange.DefaultExchangeFactory;
@@ -177,19 +176,45 @@ public class AMQQueueFactory implements
}
};
+ @Override
+ public AMQQueue restoreQueue(UUID id,
+ String queueName,
+ String owner,
+ boolean autoDelete,
+ boolean exclusive,
+ boolean deleteOnNoConsumer,
+ Map<String, Object> arguments) throws
AMQSecurityException, AMQException
+ {
+ return createOrRestoreQueue(id, queueName, true, owner, autoDelete,
exclusive, deleteOnNoConsumer, arguments, false);
+
+ }
+
/**
* @param id the id to use.
* @param deleteOnNoConsumer
*/
@Override
- public AMQQueue createAMQQueueImpl(UUID id,
- String queueName,
- boolean durable,
- String owner,
- boolean autoDelete,
- boolean exclusive,
- boolean deleteOnNoConsumer,
- Map<String, Object> arguments) throws
AMQSecurityException, AMQException
+ public AMQQueue createQueue(UUID id,
+ String queueName,
+ boolean durable,
+ String owner,
+ boolean autoDelete,
+ boolean exclusive,
+ boolean deleteOnNoConsumer,
+ Map<String, Object> arguments) throws
AMQSecurityException, AMQException
+ {
+ return createOrRestoreQueue(id, queueName, durable, owner, autoDelete,
exclusive, deleteOnNoConsumer, arguments, true);
+ }
+
+ private AMQQueue createOrRestoreQueue(UUID id,
+ String queueName,
+ boolean durable,
+ String owner,
+ boolean autoDelete,
+ boolean exclusive,
+ boolean deleteOnNoConsumer,
+ Map<String, Object> arguments,
+ boolean createInStore) throws
AMQSecurityException, AMQException
{
if (id == null)
{
@@ -358,7 +383,7 @@ public class AMQQueueFactory implements
q.setAlternateExchange(altExchange);
}
- if (q.isDurable() && !q.isAutoDelete())
+ if (createInStore && q.isDurable() && !q.isAutoDelete())
{
DurableConfigurationStoreHelper.createQueue(_virtualHost.getDurableConfigurationStore(),
q);
}
@@ -379,7 +404,7 @@ public class AMQQueueFactory implements
// we need queues that are defined in config to have deterministic ids.
UUID id = UUIDGenerator.generateQueueUUID(queueName,
_virtualHost.getName());
- AMQQueue q = createAMQQueueImpl(id, queueName, durable, owner,
autodelete, exclusive, false, arguments);
+ AMQQueue q = createQueue(id, queueName, durable, owner, autodelete,
exclusive, false, arguments);
q.configure(config);
return q;
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueFactory.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueFactory.java?rev=1516140&r1=1516139&r2=1516140&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueFactory.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueFactory.java
Wed Aug 21 11:32:22 2013
@@ -27,12 +27,21 @@ import org.apache.qpid.AMQSecurityExcept
public interface QueueFactory
{
- AMQQueue createAMQQueueImpl(UUID id,
- String queueName,
- boolean durable,
- String owner,
- boolean autoDelete,
- boolean exclusive,
- boolean deleteOnNoConsumer,
- Map<String, Object> arguments) throws
AMQSecurityException, AMQException;
+ AMQQueue createQueue(UUID id,
+ String queueName,
+ boolean durable,
+ String owner,
+ boolean autoDelete,
+ boolean exclusive,
+ boolean deleteOnNoConsumer,
+ Map<String, Object> arguments) throws
AMQSecurityException, AMQException;
+
+ AMQQueue restoreQueue(UUID id,
+ String queueName,
+ String owner,
+ boolean autoDelete,
+ boolean exclusive,
+ boolean deleteOnNoConsumer,
+ Map<String, Object> arguments) throws
AMQSecurityException, AMQException;
+
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1516140&r1=1516139&r2=1516140&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
Wed Aug 21 11:32:22 2013
@@ -518,8 +518,8 @@ public abstract class AbstractVirtualHos
{
throw new QueueExistsException("Queue with id " + id + "
already exists", _queueRegistry.getQueue(queueName));
}
- return _queueFactory.createAMQQueueImpl(id, queueName, durable,
owner, autoDelete, exclusive, deleteOnNoConsumer,
- arguments);
+ return _queueFactory.createQueue(id, queueName, durable, owner,
autoDelete, exclusive, deleteOnNoConsumer,
+ arguments);
}
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/ExchangeRecoverer.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/ExchangeRecoverer.java?rev=1516140&r1=1516139&r2=1516140&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/ExchangeRecoverer.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/ExchangeRecoverer.java
Wed Aug 21 11:32:22 2013
@@ -77,7 +77,7 @@ public class ExchangeRecoverer extends A
}
if (_exchange == null)
{
- _exchange = _exchangeFactory.createExchange(id,
exchangeName, exchangeType, true, autoDelete);
+ _exchange = _exchangeFactory.restoreExchange(id,
exchangeName, exchangeType, autoDelete);
_exchangeRegistry.registerExchange(_exchange);
}
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/QueueRecoverer.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/QueueRecoverer.java?rev=1516140&r1=1516139&r2=1516140&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/QueueRecoverer.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/QueueRecoverer.java
Wed Aug 21 11:32:22 2013
@@ -31,7 +31,6 @@ import org.apache.qpid.server.exchange.E
import org.apache.qpid.server.exchange.ExchangeRegistry;
import org.apache.qpid.server.model.Queue;
import org.apache.qpid.server.queue.AMQQueue;
-import org.apache.qpid.server.queue.AMQQueueFactory;
import org.apache.qpid.server.queue.QueueFactory;
import org.apache.qpid.server.store.AbstractDurableConfiguredObjectRecoverer;
import org.apache.qpid.server.store.UnresolvedDependency;
@@ -122,8 +121,8 @@ public class QueueRecoverer extends Abst
if (_queue == null)
{
- _queue = _queueFactory.createAMQQueueImpl(_id, queueName,
true, owner, false, exclusive,
- false,
queueArgumentsMap);
+ _queue = _queueFactory.restoreQueue(_id, queueName, owner,
false, exclusive,
+ false, queueArgumentsMap);
}
}
catch (AMQException e)
Modified:
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java?rev=1516140&r1=1516139&r2=1516140&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java
(original)
+++
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java
Wed Aug 21 11:32:22 2013
@@ -116,7 +116,7 @@ public class AMQQueueFactoryTest extends
@Override
public AMQQueue answer(InvocationOnMock invocation) throws
Throwable
{
- return _queueFactory.createAMQQueueImpl(id.getValue(),
+ return _queueFactory.createQueue(id.getValue(),
queueName.getValue(),
durable.getValue(),
owner.getValue(),
@@ -222,8 +222,12 @@ public class AMQQueueFactoryTest extends
Map<String,Object> attributes =
Collections.singletonMap(Queue.PRIORITIES, (Object) 5);
- AMQQueue queue =
_queueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(),
"testPriorityQueue", false, "owner", false,
- false,
+ AMQQueue queue =
_queueFactory.createQueue(UUIDGenerator.generateRandomUUID(),
+ "testPriorityQueue",
+ false,
+ "owner",
+ false,
+ false,
false,
attributes);
@@ -238,8 +242,8 @@ public class AMQQueueFactoryTest extends
String queueName = getName();
String dlQueueName = queueName +
AMQQueueFactory.DEFAULT_DLQ_NAME_SUFFIX;
- AMQQueue queue =
_queueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(), queueName,
false, "owner", false,
- false,
+ AMQQueue queue =
_queueFactory.createQueue(UUIDGenerator.generateRandomUUID(), queueName, false,
"owner", false,
+ false,
false,
null);
assertEquals("Queue not a simple queue", SimpleAMQQueue.class,
queue.getClass());
@@ -269,7 +273,12 @@ public class AMQQueueFactoryTest extends
assertNull("The DLQ should not yet exist",
_virtualHost.getQueue(dlQueueName));
assertNull("The alternate exchange should not yet exist",
_virtualHost.getExchange(dlExchangeName));
- AMQQueue queue =
_queueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(), queueName,
false, "owner", false, false,
+ AMQQueue queue =
_queueFactory.createQueue(UUIDGenerator.generateRandomUUID(),
+ queueName,
+ false,
+ "owner",
+ false,
+ false,
false,
attributes);
@@ -309,7 +318,12 @@ public class AMQQueueFactoryTest extends
assertNull("The DLQ should not yet exist",
_virtualHost.getQueue(dlQueueName));
assertNull("The alternate exchange should not yet exist",
_virtualHost.getExchange(dlExchangeName));
- AMQQueue queue =
_queueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(), queueName,
false, "owner", false, false,
+ AMQQueue queue =
_queueFactory.createQueue(UUIDGenerator.generateRandomUUID(),
+ queueName,
+ false,
+ "owner",
+ false,
+ false,
false,
null);
@@ -348,7 +362,12 @@ public class AMQQueueFactoryTest extends
assertNull("The DLQ should not yet exist",
_virtualHost.getQueue(dlQueueName));
assertNull("The alternate exchange should not exist",
_virtualHost.getExchange(dlExchangeName));
- AMQQueue queue =
_queueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(), queueName,
false, "owner", false, false,
+ AMQQueue queue =
_queueFactory.createQueue(UUIDGenerator.generateRandomUUID(),
+ queueName,
+ false,
+ "owner",
+ false,
+ false,
false,
attributes);
@@ -379,7 +398,12 @@ public class AMQQueueFactoryTest extends
assertNull("The alternate exchange should not exist",
_virtualHost.getExchange(dlExchangeName));
//create an autodelete queue
- AMQQueue queue =
_queueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(), queueName,
false, "owner", true, false,
+ AMQQueue queue =
_queueFactory.createQueue(UUIDGenerator.generateRandomUUID(),
+ queueName,
+ false,
+ "owner",
+ true,
+ false,
false,
attributes);
assertTrue("Queue should be autodelete", queue.isAutoDelete());
@@ -401,7 +425,12 @@ public class AMQQueueFactoryTest extends
{
Map<String,Object> attributes =
Collections.singletonMap(Queue.MAXIMUM_DELIVERY_ATTEMPTS, (Object) 5);
- final AMQQueue queue =
_queueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(),
"testMaximumDeliveryCount", false, "owner", false, false,
+ final AMQQueue queue =
_queueFactory.createQueue(UUIDGenerator.generateRandomUUID(),
+ "testMaximumDeliveryCount",
+ false,
+ "owner",
+ false,
+ false,
false,
attributes);
@@ -417,7 +446,12 @@ public class AMQQueueFactoryTest extends
*/
public void testMaximumDeliveryCountDefault() throws Exception
{
- final AMQQueue queue =
_queueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(),
"testMaximumDeliveryCount", false, "owner", false, false,
+ final AMQQueue queue =
_queueFactory.createQueue(UUIDGenerator.generateRandomUUID(),
+ "testMaximumDeliveryCount",
+ false,
+ "owner",
+ false,
+ false,
false,
null);
@@ -434,7 +468,7 @@ public class AMQQueueFactoryTest extends
{
try
{
-
_queueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(), null,
false, "owner", true, false,
+ _queueFactory.createQueue(UUIDGenerator.generateRandomUUID(),
null, false, "owner", true, false,
false,
null);
fail("queue with null name can not be created!");
@@ -459,7 +493,7 @@ public class AMQQueueFactoryTest extends
setTestSystemProperty(BrokerProperties.PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX,
"_DLE");
setTestSystemProperty(BrokerProperties.PROPERTY_DEAD_LETTER_QUEUE_SUFFIX,
"_DLQUEUE");
Map<String,Object> attributes =
Collections.singletonMap(Queue.CREATE_DLQ_ON_CREATION, (Object) true);
-
_queueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(), queueName,
false, "owner",
+ _queueFactory.createQueue(UUIDGenerator.generateRandomUUID(),
queueName, false, "owner",
false, false, false, attributes);
fail("queue with DLQ name having more than 255 characters can not
be created!");
}
@@ -484,7 +518,7 @@ public class AMQQueueFactoryTest extends
setTestSystemProperty(BrokerProperties.PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX,
"_DLEXCHANGE");
setTestSystemProperty(BrokerProperties.PROPERTY_DEAD_LETTER_QUEUE_SUFFIX,
"_DLQ");
Map<String,Object> attributes =
Collections.singletonMap(Queue.CREATE_DLQ_ON_CREATION, (Object) true);
-
_queueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(), queueName,
false, "owner",
+ _queueFactory.createQueue(UUIDGenerator.generateRandomUUID(),
queueName, false, "owner",
false, false, false, attributes);
fail("queue with DLE name having more than 255 characters can not
be created!");
}
Modified:
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java?rev=1516140&r1=1516139&r2=1516140&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java
(original)
+++
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java
Wed Aug 21 11:32:22 2013
@@ -28,10 +28,7 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.UUID;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
-import org.apache.qpid.server.configuration.QueueConfiguration;
-import org.apache.qpid.server.configuration.VirtualHostConfiguration;
import org.apache.qpid.server.exchange.DirectExchange;
import org.apache.qpid.server.exchange.Exchange;
import org.apache.qpid.server.exchange.ExchangeFactory;
@@ -39,17 +36,12 @@ import org.apache.qpid.server.exchange.E
import org.apache.qpid.server.exchange.HeadersExchange;
import org.apache.qpid.server.exchange.TopicExchange;
import org.apache.qpid.server.logging.LogActor;
-import org.apache.qpid.server.logging.RootMessageLogger;
import org.apache.qpid.server.logging.actors.CurrentActor;
import org.apache.qpid.server.model.Binding;
import org.apache.qpid.server.model.Queue;
import org.apache.qpid.server.plugin.ExchangeType;
import org.apache.qpid.server.queue.AMQQueue;
-import org.apache.qpid.server.queue.AMQQueueFactory;
import org.apache.qpid.server.queue.QueueFactory;
-import org.apache.qpid.server.queue.QueueRegistry;
-import org.apache.qpid.server.security.*;
-import org.apache.qpid.server.security.SecurityManager;
import org.apache.qpid.server.store.ConfiguredObjectRecord;
import org.apache.qpid.server.store.DurableConfigurationRecoverer;
import org.apache.qpid.server.store.DurableConfigurationStore;
@@ -131,7 +123,7 @@ public class DurableConfigurationRecover
_queueFactory = mock(QueueFactory.class);
- when(_queueFactory.createAMQQueueImpl(idArg.capture(),
queueArg.capture(),
+ when(_queueFactory.createQueue(idArg.capture(), queueArg.capture(),
anyBoolean(), anyString(), anyBoolean(), anyBoolean(),
anyBoolean(), argsArg.capture())).then(
new Answer()
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]