From 55d8ba0156e0d9f98876bfd194c1fd534e2b0aa5 Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Thu, 3 Jun 2010 21:30:07 +0000 Subject: 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/qpid@951170 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/logging/AbstractTestLogging.java | 53 ++++++++++++++++++++++ .../logging/MemoryMessageStoreLoggingTest.java | 10 ++-- .../server/logging/VirtualHostLoggingTest.java | 6 +-- 3 files changed, 59 insertions(+), 10 deletions(-) (limited to 'java/systests') diff --git a/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java b/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java index edbf631890..5bdc337013 100644 --- a/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java +++ b/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/java/systests/src/main/java/org/apache/qpid/server/logging/MemoryMessageStoreLoggingTest.java b/java/systests/src/main/java/org/apache/qpid/server/logging/MemoryMessageStoreLoggingTest.java index 294838201f..389cae03ab 100644 --- a/java/systests/src/main/java/org/apache/qpid/server/logging/MemoryMessageStoreLoggingTest.java +++ b/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 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 vhosts = Arrays.asList(configuration.getVirtualHosts()); + List 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/java/systests/src/main/java/org/apache/qpid/server/logging/VirtualHostLoggingTest.java b/java/systests/src/main/java/org/apache/qpid/server/logging/VirtualHostLoggingTest.java index a82e0c7496..3c5ba3956b 100644 --- a/java/systests/src/main/java/org/apache/qpid/server/logging/VirtualHostLoggingTest.java +++ b/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 vhosts = Arrays.asList(configuration.getVirtualHosts()); + List vhosts = Arrays.asList(_serverConfiguration.getVirtualHosts()); assertEquals("Each vhost did not create a store.", vhosts.size(), results.size()); -- cgit v1.2.1