diff options
| author | Robert Gemmell <robbie@apache.org> | 2012-05-17 17:26:04 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2012-05-17 17:26:04 +0000 |
| commit | f5d67044a9797c397764a7ac1aa1a1ed4aa893a3 (patch) | |
| tree | cf8a9cf6a5f741e31417ca4d32a6b708bb3b9fdd /qpid/java/broker/src/test | |
| parent | f523b9e510fc90ce3f7f7d7c2960f3bfee3d42df (diff) | |
| download | qpid-python-f5d67044a9797c397764a7ac1aa1a1ed4aa893a3.tar.gz | |
QPID-4006: add support for using BDB HA to form an active-passive cluster for persistent messaging
- Includes support for setting BDB configuration parameters via the store configuration, both for the existing store and the new HA variant.
- Removes the MessageStoreFactory and reverts store configuration to historical values.
Applied patch from Keith Wall, Andrew MacBean <andymacbean@gmail.com>, Oleksandr Rudyy <orudyy@gmail.com>, Philip Harvey <phil@philharveyonline.com>, and myself.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1339728 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker/src/test')
11 files changed, 52 insertions, 93 deletions
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java index d26e286c90..d34d1bbef3 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java @@ -36,7 +36,7 @@ import org.apache.qpid.server.queue.AMQQueueFactory; import org.apache.qpid.server.queue.QueueRegistry; import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.registry.IApplicationRegistry; -import org.apache.qpid.server.store.TestableMemoryMessageStoreFactory; +import org.apache.qpid.server.store.TestableMemoryMessageStore; import org.apache.qpid.server.util.TestApplicationRegistry; import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.server.virtualhost.VirtualHostImpl; @@ -165,7 +165,7 @@ public class AMQBrokerManagerMBeanTest extends QpidTestCase XMLConfiguration configXml = new XMLConfiguration(); configXml.addProperty("virtualhosts.virtualhost(-1).name", "test"); - configXml.addProperty("virtualhosts.virtualhost(-1).test.store.factoryclass", TestableMemoryMessageStoreFactory.class.getName()); + configXml.addProperty("virtualhosts.virtualhost(-1).test.store.class", TestableMemoryMessageStore.class.getName()); ServerConfiguration configuration = new ServerConfiguration(configXml); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java index c4c93acfb6..50e7f0588b 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java @@ -27,7 +27,6 @@ import org.apache.qpid.server.queue.AMQPriorityQueue; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.store.TestableMemoryMessageStore; -import org.apache.qpid.server.store.TestableMemoryMessageStoreFactory; import org.apache.qpid.server.util.InternalBrokerBaseCase; import org.apache.qpid.server.virtualhost.VirtualHost; @@ -162,7 +161,7 @@ public class VirtualHostConfigurationTest extends InternalBrokerBaseCase getConfigXml().addProperty("virtualhosts.virtualhost." + getName() + "Extra.queues(-1).queue(-1).name", "r2d2"); getConfigXml().addProperty("virtualhosts.virtualhost." + getName() + "Extra.queues.queue.r2d2.deadLetterQueues", "true"); getConfigXml().addProperty("virtualhosts.virtualhost." + getName() + "Extra.queues(-1).queue(-1).name", "c3p0"); - getConfigXml().addProperty("virtualhosts.virtualhost." + getName() + "Extra.store.factoryclass", TestableMemoryMessageStoreFactory.class.getName()); + getConfigXml().addProperty("virtualhosts.virtualhost." + getName() + "Extra.store.class", TestableMemoryMessageStore.class.getName()); // Start the broker now. super.createBroker(); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java index e123a968a4..337ff194c3 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java @@ -20,8 +20,6 @@ */ package org.apache.qpid.server.queue; -import java.util.UUID; - import org.apache.commons.configuration.XMLConfiguration; import org.apache.qpid.AMQException; @@ -37,7 +35,6 @@ import org.apache.qpid.server.logging.actors.CurrentActor; import org.apache.qpid.server.logging.actors.TestLogActor; import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.store.TestableMemoryMessageStore; -import org.apache.qpid.server.store.TestableMemoryMessageStoreFactory; import org.apache.qpid.server.util.TestApplicationRegistry; import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.test.utils.QpidTestCase; @@ -56,7 +53,7 @@ public class AMQQueueFactoryTest extends QpidTestCase XMLConfiguration configXml = new XMLConfiguration(); configXml.addProperty("virtualhosts.virtualhost(-1).name", getName()); - configXml.addProperty("virtualhosts.virtualhost(-1)."+getName()+".store.factoryclass", TestableMemoryMessageStoreFactory.class.getName()); + configXml.addProperty("virtualhosts.virtualhost(-1)."+getName()+".store.class", TestableMemoryMessageStore.class.getName()); ServerConfiguration configuration = new ServerConfiguration(configXml); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java index 52ad4a7c5b..a8fad96063 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java @@ -43,7 +43,6 @@ import org.apache.qpid.server.queue.SimpleAMQQueue.QueueEntryFilter; import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.store.StoredMessage; import org.apache.qpid.server.store.TestableMemoryMessageStore; -import org.apache.qpid.server.store.TestableMemoryMessageStoreFactory; import org.apache.qpid.server.subscription.MockSubscription; import org.apache.qpid.server.subscription.Subscription; import org.apache.qpid.server.txn.AutoCommitTransaction; @@ -108,7 +107,7 @@ public class SimpleAMQQueueTest extends InternalBrokerBaseCase PropertiesConfiguration env = new PropertiesConfiguration(); final VirtualHostConfiguration vhostConfig = new VirtualHostConfiguration(getClass().getName(), env); - vhostConfig.setMessageStoreFactoryClass(TestableMemoryMessageStoreFactory.class.getName()); + vhostConfig.setMessageStoreClass(TestableMemoryMessageStore.class.getName()); _virtualHost = new VirtualHostImpl(ApplicationRegistry.getInstance(), vhostConfig); applicationRegistry.getVirtualHostRegistry().registerVirtualHost(_virtualHost); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/store/DurableConfigurationStoreTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/store/DurableConfigurationStoreTest.java index a1cbb2cbc8..48e631a0f4 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/store/DurableConfigurationStoreTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/store/DurableConfigurationStoreTest.java @@ -27,7 +27,6 @@ import org.apache.qpid.server.exchange.Exchange; import org.apache.qpid.server.logging.SystemOutMessageLogger; import org.apache.qpid.server.logging.actors.CurrentActor; import org.apache.qpid.server.logging.actors.TestLogActor; -import org.apache.qpid.server.logging.subjects.TestBlankSubject; import org.apache.qpid.server.message.EnqueableMessage; import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.queue.AMQQueue; @@ -41,7 +40,7 @@ import org.apache.qpid.server.store.ConfigurationRecoveryHandler.ExchangeRecover import org.apache.qpid.server.store.ConfigurationRecoveryHandler.QueueRecoveryHandler; import org.apache.qpid.server.store.MessageStoreRecoveryHandler.StoredMessageRecoveryHandler; import org.apache.qpid.server.store.Transaction.Record; -import org.apache.qpid.server.store.derby.DerbyMessageStoreFactory; +import org.apache.qpid.server.store.derby.DerbyMessageStore; import org.apache.qpid.test.utils.QpidTestCase; import org.apache.qpid.util.FileUtils; @@ -262,14 +261,14 @@ public class DurableConfigurationStoreTest extends QpidTestCase protected MessageStore createStore() throws Exception { - String storeFactoryClass = System.getProperty(MS_FACTORY_CLASS_NAME_KEY); - if (storeFactoryClass == null) + String storeClass = System.getProperty(MESSAGE_STORE_CLASS_NAME_KEY); + if (storeClass == null) { - storeFactoryClass = DerbyMessageStoreFactory.class.getName(); + storeClass = DerbyMessageStore.class.getName(); } CurrentActor.set(new TestLogActor(new SystemOutMessageLogger())); - MessageStoreFactory factory = (MessageStoreFactory) Class.forName(storeFactoryClass).newInstance(); - return factory.createMessageStore(); + MessageStore messageStore = (MessageStore) Class.forName(storeClass).newInstance(); + return messageStore; } public void testRecordXid() throws Exception diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java index 3fb0776083..64048d294b 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java @@ -59,7 +59,6 @@ import java.io.File; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.UUID; /** * This tests the MessageStores by using the available interfaces. @@ -103,7 +102,7 @@ public class MessageStoreTest extends InternalBrokerBaseCase String storePath = System.getProperty("QPID_WORK") + "/" + getName(); _config = new PropertiesConfiguration(); - _config.addProperty("store.factoryclass", getTestProfileMessageStoreFactoryClassName()); + _config.addProperty("store.class", getTestProfileMessageStoreClassName()); _config.addProperty("store.environment-path", storePath); cleanup(new File(storePath)); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/store/OperationalLoggingListenerTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/store/OperationalLoggingListenerTest.java index 42746f9119..c6ef35d255 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/store/OperationalLoggingListenerTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/store/OperationalLoggingListenerTest.java @@ -73,11 +73,11 @@ public class OperationalLoggingListenerTest extends TestCase } - messageStore.attainState(State.CONFIGURING); + messageStore.attainState(State.INITIALISING); assertEquals("Unexpected number of operational log messages on configuring", 1, messages.size()); assertEquals(messages.remove(0).toString(), ConfigStoreMessages.CREATED().toString()); - messageStore.attainState(State.CONFIGURED); + messageStore.attainState(State.INITIALISED); assertEquals("Unexpected number of operational log messages on CONFIGURED", setStoreLocation ? 3 : 2, messages.size()); assertEquals(messages.remove(0).toString(), MessageStoreMessages.CREATED().toString()); assertEquals(messages.remove(0).toString(), TransactionLogMessages.CREATED().toString()); @@ -86,7 +86,7 @@ public class OperationalLoggingListenerTest extends TestCase assertEquals(messages.remove(0).toString(), MessageStoreMessages.STORE_LOCATION(STORE_LOCATION).toString()); } - messageStore.attainState(State.RECOVERING); + messageStore.attainState(State.ACTIVATING); assertEquals("Unexpected number of operational log messages on RECOVERING", 1, messages.size()); assertEquals(messages.remove(0).toString(), MessageStoreMessages.RECOVERY_START().toString()); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/store/StateManagerTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/store/StateManagerTest.java index 97c88ca1d3..18efb976eb 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/store/StateManagerTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/store/StateManagerTest.java @@ -45,8 +45,8 @@ public class StateManagerTest extends TestCase implements EventListener { assertEquals(State.INITIAL, _manager.getState()); - _manager.stateTransition(State.INITIAL, State.CONFIGURING); - assertEquals(State.CONFIGURING, _manager.getState()); + _manager.attainState(State.INITIALISING); + assertEquals(State.INITIALISING, _manager.getState()); } public void testStateTransitionDisallowed() @@ -55,7 +55,7 @@ public class StateManagerTest extends TestCase implements EventListener try { - _manager.stateTransition(State.ACTIVE, State.CLOSING); + _manager.attainState(State.CLOSING); fail("Exception not thrown"); } catch (IllegalStateException e) @@ -98,22 +98,29 @@ public class StateManagerTest extends TestCase implements EventListener public void testValidStateTransitions() { assertEquals(State.INITIAL, _manager.getState()); - performValidTransition(StateManager.CONFIGURE); - performValidTransition(StateManager.CONFIGURE_COMPLETE); - performValidTransition(StateManager.RECOVER); + performValidTransition(StateManager.INITIALISE); + performValidTransition(StateManager.INITALISE_COMPLETE); performValidTransition(StateManager.ACTIVATE); + performValidTransition(StateManager.ACTIVATE_COMPLETE); performValidTransition(StateManager.QUIESCE); performValidTransition(StateManager.QUIESCE_COMPLETE); performValidTransition(StateManager.RESTART); - performValidTransition(StateManager.ACTIVATE); + performValidTransition(StateManager.ACTIVATE_COMPLETE); performValidTransition(StateManager.CLOSE_ACTIVE); performValidTransition(StateManager.CLOSE_COMPLETE); + + _manager = new StateManager(this); + assertEquals(State.INITIAL, _manager.getState()); + performValidTransition(StateManager.INITIALISE); + performValidTransition(StateManager.INITALISE_COMPLETE); + performValidTransition(StateManager.CLOSE_INITIALISED); + performValidTransition(StateManager.CLOSE_COMPLETE); _manager = new StateManager(this); - performValidTransition(StateManager.CONFIGURE); - performValidTransition(StateManager.CONFIGURE_COMPLETE); - performValidTransition(StateManager.RECOVER); + performValidTransition(StateManager.INITIALISE); + performValidTransition(StateManager.INITALISE_COMPLETE); performValidTransition(StateManager.ACTIVATE); + performValidTransition(StateManager.ACTIVATE_COMPLETE); performValidTransition(StateManager.QUIESCE); performValidTransition(StateManager.QUIESCE_COMPLETE); performValidTransition(StateManager.CLOSE_QUIESCED); @@ -132,54 +139,50 @@ public class StateManagerTest extends TestCase implements EventListener { assertEquals(State.INITIAL, _manager.getState()); - - performInvalidTransitions(StateManager.CONFIGURE, State.CONFIGURED); - performInvalidTransitions(StateManager.CONFIGURE_COMPLETE, State.RECOVERING); - performInvalidTransitions(StateManager.RECOVER, State.ACTIVE); - performInvalidTransitions(StateManager.ACTIVATE, State.QUIESCING, State.CLOSING); + performInvalidTransitions(StateManager.INITIALISE, State.INITIALISED); + performInvalidTransitions(StateManager.INITALISE_COMPLETE, State.ACTIVATING, State.CLOSING); + performInvalidTransitions(StateManager.ACTIVATE, State.ACTIVE); + performInvalidTransitions(StateManager.ACTIVATE_COMPLETE, State.QUIESCING, State.CLOSING, State.INITIALISED); performInvalidTransitions(StateManager.QUIESCE, State.QUIESCED); - performInvalidTransitions(StateManager.QUIESCE_COMPLETE, State.RECOVERING, State.CLOSING); + performInvalidTransitions(StateManager.QUIESCE_COMPLETE, State.ACTIVATING, State.CLOSING); performInvalidTransitions(StateManager.CLOSE_QUIESCED, State.CLOSED); performInvalidTransitions(StateManager.CLOSE_COMPLETE); - - - } - private void performInvalidTransitions(StateManager.Transition preTransition, State... validTransitions) + private void performInvalidTransitions(StateManager.Transition preTransition, State... validEndStates) { if(preTransition != null) { performValidTransition(preTransition); } - EnumSet<State> nextStates = EnumSet.allOf(State.class); + EnumSet<State> endStates = EnumSet.allOf(State.class); - if(validTransitions != null) + if(validEndStates != null) { - for(State state: validTransitions) + for(State state: validEndStates) { - nextStates.remove(state); + endStates.remove(state); } } - for(State nextState : nextStates) + for(State invalidEndState : endStates) { - performInvalidStateTransition(nextState); + performInvalidStateTransition(invalidEndState); } } - private void performInvalidStateTransition(State state) + private void performInvalidStateTransition(State invalidEndState) { try { _event = null; State startState = _manager.getState(); - _manager.attainState(state); - fail("Invalid state transition performed: " + startState + " to " + state); + _manager.attainState(invalidEndState); + fail("Invalid state transition performed: " + startState + " to " + invalidEndState); } catch(IllegalStateException e) { @@ -188,6 +191,7 @@ public class StateManagerTest extends TestCase implements EventListener assertNull("No event should have be fired", _event); } + @Override public void event(Event event) { _event = event; diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/store/TestableMemoryMessageStoreFactory.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/store/TestableMemoryMessageStoreFactory.java deleted file mode 100644 index 44070f22ad..0000000000 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/store/TestableMemoryMessageStoreFactory.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ -package org.apache.qpid.server.store; - -public class TestableMemoryMessageStoreFactory implements MessageStoreFactory -{ - - @Override - public MessageStore createMessageStore() - { - return new TestableMemoryMessageStore(); - } - - @Override - public String getStoreClassName() - { - return TestableMemoryMessageStore.class.getSimpleName(); - } - -} diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java index f8200bf1cd..8a18aaff9e 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java @@ -44,7 +44,6 @@ import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.registry.IApplicationRegistry; import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.store.TestableMemoryMessageStore; -import org.apache.qpid.server.store.TestableMemoryMessageStoreFactory; import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.test.utils.QpidTestCase; @@ -67,10 +66,10 @@ public class InternalBrokerBaseCase extends QpidTestCase super.setUp(); _configXml.addProperty("virtualhosts.virtualhost.name", "test"); - _configXml.addProperty("virtualhosts.virtualhost.test.store.factoryclass", TestableMemoryMessageStoreFactory.class.getName()); + _configXml.addProperty("virtualhosts.virtualhost.test.store.class", TestableMemoryMessageStore.class.getName()); _configXml.addProperty("virtualhosts.virtualhost(-1).name", getName()); - _configXml.addProperty("virtualhosts.virtualhost(-1)."+getName()+".store.factoryclass", TestableMemoryMessageStoreFactory.class.getName()); + _configXml.addProperty("virtualhosts.virtualhost(-1)."+getName()+".store.class", TestableMemoryMessageStore.class.getName()); createBroker(); } diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java index 87eb0f9d16..b8ba76e43d 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java @@ -27,7 +27,7 @@ import org.apache.qpid.server.configuration.ServerConfiguration; import org.apache.qpid.server.exchange.Exchange; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.registry.ApplicationRegistry; -import org.apache.qpid.server.store.MemoryMessageStoreFactory; +import org.apache.qpid.server.store.MemoryMessageStore; import org.apache.qpid.server.util.TestApplicationRegistry; import org.apache.qpid.test.utils.QpidTestCase; @@ -192,7 +192,7 @@ public class VirtualHostImplTest extends QpidTestCase writer.write(" <name>" + vhostName + "</name>"); writer.write(" <" + vhostName + ">"); writer.write(" <store>"); - writer.write(" <factoryclass>" + MemoryMessageStoreFactory.class.getName() + "</factoryclass>"); + writer.write(" <class>" + MemoryMessageStore.class.getName() + "</class>"); writer.write(" </store>"); if(exchangeName != null && !dontDeclare) { |
