diff options
| author | Martin Ritchie <ritchiem@apache.org> | 2010-06-03 21:30:07 +0000 |
|---|---|---|
| committer | Martin Ritchie <ritchiem@apache.org> | 2010-06-03 21:30:07 +0000 |
| commit | 55c585d4b7d6af2dbcaf30b1df01f8604a38d203 (patch) | |
| tree | 94c3fa439cccd4cb74377bbcd9210f9d4e230e5e /qpid/java | |
| parent | 88782570f5e820c449dd3c5c47cc417f0751226d (diff) | |
| download | qpid-python-55c585d4b7d6af2dbcaf30b1df01f8604a38d203.tar.gz | |
QPID-2632 : External broker profile actually needs an InVM broker created to process the configuration.
As we don't automatically create the AppRegistry any more we need to explicitly create an InVM broker
for these two tests. It may be necessary to move the IBBC creation from AbstractTestLogging to QBTC for
external profile runs. However, testing to date has only shown these two tests failing due to missing AR.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@951170 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
4 files changed, 60 insertions, 11 deletions
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 9bc36c1428..f731988a8e 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 @@ -58,7 +58,7 @@ public class InternalBrokerBaseCase extends TestCase protected AMQShortString QUEUE_NAME; protected ServerConfiguration _configuration; protected XMLConfiguration _configXml = new XMLConfiguration(); - private boolean _started = false; + protected boolean _started = false; public void setUp() throws Exception { diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java index edbf631890..5bdc337013 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java @@ -20,7 +20,13 @@ */ package org.apache.qpid.server.logging; +import org.apache.qpid.server.configuration.ServerConfiguration; +import org.apache.qpid.server.logging.actors.CurrentActor; +import org.apache.qpid.server.logging.actors.TestLogActor; import org.apache.qpid.server.logging.subjects.AbstractTestLogSubject; +import org.apache.qpid.server.registry.ApplicationRegistry; +import org.apache.qpid.server.util.InternalBrokerBaseCase; +import org.apache.qpid.server.util.TestApplicationRegistry; import org.apache.qpid.test.utils.QpidBrokerTestCase; import org.apache.qpid.util.LogMonitor; @@ -34,18 +40,65 @@ public class AbstractTestLogging extends QpidBrokerTestCase { public static final long DEFAULT_LOG_WAIT = 2000; protected LogMonitor _monitor; + ServerConfiguration _serverConfiguration; + + InternalBrokerBaseCase _configLoader; @Override public void setUp() throws Exception { super.setUp(); _monitor = new LogMonitor(_outputFile); + + if (isExternalBroker()) + { + _serverConfiguration = new ServerConfiguration(_configFile); + + _configLoader = new InternalBrokerBaseCase() + { + @Override + protected void createBroker() throws Exception + { + _started = true; + CurrentActor.set(new TestLogActor(new StartupRootMessageLogger())); + + // Prevent the InVM broker from logging and spoiling tests. + _serverConfiguration.getConfig().setProperty(ServerConfiguration.STATUS_UPDATES, "off"); + + _configuration = _serverConfiguration; + _registry = new TestApplicationRegistry(_configuration); + ApplicationRegistry.initialise(_registry); + + } + + @Override + protected void stopBroker() + { + ApplicationRegistry.remove(); + } + }; + + // Set the test name as this will be used to define some default queues + // VirtualHost, use test as this is a default vhost name. + _configLoader.setName("test"); + + _configLoader.setUp(); + } + else + { + _serverConfiguration = ApplicationRegistry.getInstance().getConfiguration(); + } + } @Override public void tearDown() throws Exception { _monitor.close(); + if (isExternalBroker() && _configLoader != null) + { + _configLoader.tearDown(); + } super.tearDown(); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/MemoryMessageStoreLoggingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/MemoryMessageStoreLoggingTest.java index 294838201f..389cae03ab 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/MemoryMessageStoreLoggingTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/MemoryMessageStoreLoggingTest.java @@ -76,7 +76,7 @@ public class MemoryMessageStoreLoggingTest extends AbstractTestLogging { assertLoggingNotYetOccured(MESSAGES_STORE_PREFIX); - startBroker(); + super.setUp(); List<String> results = _monitor.waitAndFindMatches(MESSAGES_STORE_PREFIX, DEFAULT_LOG_WAIT); @@ -92,9 +92,7 @@ public class MemoryMessageStoreLoggingTest extends AbstractTestLogging results = _monitor.waitAndFindMatches("MST-1001", DEFAULT_LOG_WAIT); // Load VirtualHost list from file. - ServerConfiguration configuration = new ServerConfiguration(_configFile); - configuration.initialise(); - List<String> vhosts = Arrays.asList(configuration.getVirtualHosts()); + List<String> vhosts = Arrays.asList(_serverConfiguration.getVirtualHosts()); assertEquals("Each vhost did not create a store.", vhosts.size(), results.size()); @@ -107,7 +105,7 @@ public class MemoryMessageStoreLoggingTest extends AbstractTestLogging String vhostName = AbstractTestLogSubject.getSlice("vh", result).substring(1); // Get the store class used in the configuration for the virtualhost. - String fullStoreName = configuration.getVirtualHostConfig(vhostName).getMessageStoreClass(); + String fullStoreName = _serverConfiguration.getVirtualHostConfig(vhostName).getMessageStoreClass(); // Get the Simple class name from the expected class name of o.a.q.s.s.MMS String storeName = fullStoreName.substring(fullStoreName.lastIndexOf(".") + 1); @@ -142,7 +140,7 @@ public class MemoryMessageStoreLoggingTest extends AbstractTestLogging { assertLoggingNotYetOccured(MESSAGES_STORE_PREFIX); - startBroker(); + super.setUp(); //Stop the broker so we get the close messages. stopBroker(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/VirtualHostLoggingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/VirtualHostLoggingTest.java index a82e0c7496..3c5ba3956b 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/VirtualHostLoggingTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/VirtualHostLoggingTest.java @@ -27,6 +27,7 @@ import java.util.List; import junit.framework.AssertionFailedError; import org.apache.qpid.server.configuration.ServerConfiguration; +import org.apache.qpid.server.util.InternalBrokerBaseCase; /** * Virtualhost Test Cases @@ -68,10 +69,7 @@ public class VirtualHostLoggingTest extends AbstractTestLogging try { - // Load VirtualHost list from file. - ServerConfiguration configuration = new ServerConfiguration(_configFile); - configuration.initialise(); - List<String> vhosts = Arrays.asList(configuration.getVirtualHosts()); + List<String> vhosts = Arrays.asList(_serverConfiguration.getVirtualHosts()); assertEquals("Each vhost did not create a store.", vhosts.size(), results.size()); |
