diff options
| author | Martin Ritchie <ritchiem@apache.org> | 2009-08-03 13:33:05 +0000 |
|---|---|---|
| committer | Martin Ritchie <ritchiem@apache.org> | 2009-08-03 13:33:05 +0000 |
| commit | c727fd05a439ee6f955b15ca18acd0ccc46e59bd (patch) | |
| tree | 508846636158ab5f4e9b673ee731abc13b898939 /qpid | |
| parent | 09cca1a1e49b2908f0c943dc1bbe9216879fda00 (diff) | |
| download | qpid-python-c727fd05a439ee6f955b15ca18acd0ccc46e59bd.tar.gz | |
QPID-2002 : Updates to integrate Logging with test ant test runs.
MaxChannelsTest/AMQProtoSessionMBean - Ensured CurrentActor is correctly set and removed.
Log4jMessageLogger - Correctly Set log level to ensure messages are logged.
AbstractActor - Null validation of RootLogger
Log4jMessasgeLoggerTest - Updated and removed erroneous tests that were based on inherited log levels.
AbstractTestLogSubject - Updated to correctly parse IP given by the use of InternalTestProtocolSession
TestApplicationRegistry - Created RootMessageLogger
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@800374 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid')
7 files changed, 72 insertions, 67 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AbstractActor.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AbstractActor.java index 8d96739eeb..4502710dd6 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AbstractActor.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AbstractActor.java @@ -32,6 +32,10 @@ public abstract class AbstractActor implements LogActor public AbstractActor(RootMessageLogger rootLogger) { + if(rootLogger == null) + { + throw new NullPointerException("RootMessageLogger cannot be null"); + } _rootLogger = rootLogger; } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLogger.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLogger.java index 3774155626..f996576f31 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLogger.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLogger.java @@ -41,6 +41,7 @@ public class Log4jMessageLogger implements RawMessageLogger _level = Level.toLevel(level); _rawMessageLogger = Logger.getLogger(logger); + _rawMessageLogger.setLevel(_level); } public void rawMessage(String message) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBean.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBean.java index 65235ba9b9..225a01386b 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBean.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBean.java @@ -65,6 +65,8 @@ import org.apache.qpid.management.common.mbeans.annotations.MBeanConstructor; import org.apache.qpid.management.common.mbeans.annotations.MBeanDescription; import org.apache.qpid.protocol.AMQConstant; import org.apache.qpid.server.AMQChannel; +import org.apache.qpid.server.logging.actors.CurrentActor; +import org.apache.qpid.server.logging.LogActor; import org.apache.qpid.server.management.AMQManagedObject; import org.apache.qpid.server.management.ManagedObject; @@ -185,6 +187,7 @@ public class AMQProtocolSessionMBean extends AMQManagedObject implements Managed */ public void commitTransactions(int channelId) throws JMException { + CurrentActor.set(getLogActor()); try { AMQChannel channel = _session.getChannel(channelId); @@ -199,6 +202,10 @@ public class AMQProtocolSessionMBean extends AMQManagedObject implements Managed { throw new MBeanException(ex, ex.toString()); } + finally + { + CurrentActor.remove(); + } } /** @@ -209,6 +216,7 @@ public class AMQProtocolSessionMBean extends AMQManagedObject implements Managed */ public void rollbackTransactions(int channelId) throws JMException { + CurrentActor.set(getLogActor()); try { AMQChannel channel = _session.getChannel(channelId); @@ -223,6 +231,10 @@ public class AMQProtocolSessionMBean extends AMQManagedObject implements Managed { throw new MBeanException(ex, ex.toString()); } + finally + { + CurrentActor.remove(); + } } /** @@ -269,18 +281,38 @@ public class AMQProtocolSessionMBean extends AMQManagedObject implements Managed 0, 0); - _session.writeFrame(responseBody.generateFrame(0)); - + CurrentActor.set(getLogActor()); try { - _session.closeSession(); + _session.writeFrame(responseBody.generateFrame(0)); + + try + { + + _session.closeSession(); + } + catch (AMQException ex) + { + throw new MBeanException(ex, ex.toString()); + } } - catch (AMQException ex) + finally { - throw new MBeanException(ex, ex.toString()); + CurrentActor.remove(); } } + /** + * Return the LogActor for this MBean Session + * //fixme currently simply returning the managed sessions LogActor, should + * be the ManagementActor + * @return + */ + private LogActor getLogActor() + { + return _session.getLogActor(); + } + @Override public MBeanNotificationInfo[] getNotificationInfo() { diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLoggerTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLoggerTest.java index d7a5aa667b..4b69a46793 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLoggerTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLoggerTest.java @@ -77,10 +77,8 @@ public class Log4jMessageLoggerTest extends TestCase * Verify that the default configuraion of Log4jMessageLogger will * log a message. * - * @throws IOException - * @throws InterruptedException */ - public void testDefaultLogsMessage() throws IOException, InterruptedException + public void testDefaultLogsMessage() { // Create a logger to test Log4jMessageLogger logger = new Log4jMessageLogger(); @@ -95,28 +93,17 @@ public class Log4jMessageLoggerTest extends TestCase } /** - * This test checks that if the Root Logger level is set such that the INFO - * messages would not be logged then the Log4jMessageLogger default of INFO - * will result in logging not being presented. + * This test verifies that the Log4jMessageLogger does not inherit a logging + * level from the RootLogger. The Log4jMessageLogger default of INFO + * will result in logging being presented. * - * @throws IOException - * @throws InterruptedException */ - public void testDefaultsLogsAtInfo() throws IOException, InterruptedException + public void testLoggerDoesNotInheritRootLevel() { - // Create a logger to test - Log4jMessageLogger logger = new Log4jMessageLogger(); - - //Create Message for test - String message = "testDefaults"; - //Set default logger level to off - Logger.getRootLogger().setLevel(Level.WARN); + Logger.getRootLogger().setLevel(Level.OFF); - // Log the message - logger.rawMessage(message); - - verifyNoLog(message); + testDefaultLogsMessage(); } /** @@ -125,10 +112,8 @@ public class Log4jMessageLoggerTest extends TestCase * Test this by setting the default logger level to off which has been * verified to work by test 'testDefaultsLevelObeyed' * - * @throws IOException - * @throws InterruptedException */ - public void testDefaultLoggerAdjustment() throws IOException, InterruptedException + public void testDefaultLoggerAdjustment() { String loggerName = "TestLogger"; // Create a logger to test @@ -150,41 +135,6 @@ public class Log4jMessageLoggerTest extends TestCase Logger.getLogger(Log4jMessageLogger.DEFAULT_LOGGER).setLevel(originalLevel); } - /** - * Test that changing the log level has an effect. - * Set the level to be debug - * but only set the logger to log at INFO - * there should be no data printed - * subsequently changing the root logger to allow DEBUG should - * show the message - * - * @throws IOException - * @throws InterruptedException - */ - public void testDefaultsLevelObeyed() throws IOException, InterruptedException - { - // Create a logger to test - Log4jMessageLogger logger = new Log4jMessageLogger("DEBUG", Log4jMessageLogger.DEFAULT_LOGGER); - - //Create Message for test - String message = "testDefaults"; - - //Set root logger to INFO only - Logger.getRootLogger().setLevel(Level.INFO); - - // Log the message - logger.rawMessage(message); - - verifyNoLog(message); - - //Set root logger to INFO only - Logger.getRootLogger().setLevel(Level.DEBUG); - - // Log the message - logger.rawMessage(message); - - verifyLogPresent(message); - } /** * Check that the Log Message reached log4j diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java index 974f2f808d..56d611a44f 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java @@ -112,15 +112,19 @@ public abstract class AbstractTestLogSubject extends TestCase assertEquals("Username not as expected", userNameParts[0], user); // Extract IP. + // The connection will be of the format - guest@/127.0.0.1:1/test + // and so our userNamePart will be '/127.0.0.1:1/test' String[] ipParts = userNameParts[1].split("/"); + // We will have three sections assertEquals("Unable to split IP from rest of Connection:" - + userNameParts[1], 2, ipParts.length); + + userNameParts[1], 3, ipParts.length); - assertEquals("IP not as expected", ipParts[0], ipString); + // We need to skip the first '/' split will be empty so validate 1 as IP + assertEquals("IP not as expected", ipString, ipParts[1]); - //Finally check vhost - assertEquals("Virtualhost name not as expected.", vhost, ipParts[1]); + //Finally check vhost which is section 2 + assertEquals("Virtualhost name not as expected.", vhost, ipParts[2]); } /** diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MaxChannelsTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MaxChannelsTest.java index fb0f746280..7e16737a83 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MaxChannelsTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MaxChannelsTest.java @@ -25,6 +25,7 @@ import org.apache.qpid.AMQException; import org.apache.qpid.codec.AMQCodecFactory; import org.apache.qpid.protocol.AMQConstant; import org.apache.qpid.server.AMQChannel; +import org.apache.qpid.server.logging.actors.CurrentActor; import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.registry.IApplicationRegistry; import org.apache.qpid.AMQException; @@ -43,6 +44,9 @@ public class MaxChannelsTest extends TestCase _session = new AMQMinaProtocolSession(new TestIoSession(), _appRegistry .getVirtualHostRegistry(), new AMQCodecFactory(true)); + // Set the current Actor for these tests + CurrentActor.set(_session.getLogActor()); + // Need to authenticate session for it to work, (well for logging to work) _session.setAuthorizedID(new Principal() { @@ -92,6 +96,11 @@ public class MaxChannelsTest extends TestCase // Yikes fail(e.getMessage()); } + finally + { + //Remove the actor set during the test + CurrentActor.remove(); + } ApplicationRegistry.remove(1); } diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java index 84bee7984b..4ecbffb4b4 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java @@ -39,6 +39,8 @@ import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.store.TestableMemoryMessageStore; import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.server.virtualhost.VirtualHostRegistry; +import org.apache.qpid.server.logging.RootMessageLoggerImpl; +import org.apache.qpid.server.logging.rawloggers.Log4jMessageLogger; import java.util.Collection; import java.util.HashMap; @@ -73,6 +75,9 @@ public class TestApplicationRegistry extends ApplicationRegistry public void initialise() throws Exception { + _rootMessageLogger = new RootMessageLoggerImpl(_configuration, + new Log4jMessageLogger()); + Properties users = new Properties(); users.put("guest", "guest"); |
