summaryrefslogtreecommitdiff
path: root/qpid
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2009-08-03 13:33:05 +0000
committerMartin Ritchie <ritchiem@apache.org>2009-08-03 13:33:05 +0000
commitc727fd05a439ee6f955b15ca18acd0ccc46e59bd (patch)
tree508846636158ab5f4e9b673ee731abc13b898939 /qpid
parent09cca1a1e49b2908f0c943dc1bbe9216879fda00 (diff)
downloadqpid-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')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AbstractActor.java4
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLogger.java1
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBean.java42
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLoggerTest.java66
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java12
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MaxChannelsTest.java9
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java5
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");