You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ma...@apache.org on 2007/09/30 19:57:57 UTC
svn commit: r580759 - in /mina/trunk/core/src:
main/java/org/apache/mina/filter/logging/MdcInjectionFilter.java
test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java
Author: maarten
Date: Sun Sep 30 10:57:55 2007
New Revision: 580759
URL: http://svn.apache.org/viewvc?rev=580759&view=rev
Log:
small enhancements on MdcInjectionFilter:
* added method for removing property from the context
* setProperty() immediately puts property in the MDC
* check for null values
Modified:
mina/trunk/core/src/main/java/org/apache/mina/filter/logging/MdcInjectionFilter.java
mina/trunk/core/src/test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/logging/MdcInjectionFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/logging/MdcInjectionFilter.java?rev=580759&r1=580758&r2=580759&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/logging/MdcInjectionFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/logging/MdcInjectionFilter.java Sun Sep 30 10:57:55 2007
@@ -116,12 +116,28 @@
* Add a property to the context for the given session
* This property will be added to the MDC for all subsequent events
* @param session The session for which you want to set a property
- * @param key The name of the property
+ * @param key The name of the property (should not be null)
* @param value The value of the property
*/
public static void setProperty (IoSession session, String key, String value) {
- Context context = getContext(session);
- context.put(key, value);
+ if (key == null) {
+ throw new NullPointerException("key should not be null");
+ }
+ if (value == null) {
+ removeProperty(session, key);
+ }
+ Context context = getContext(session);
+ context.put(key, value);
+ MDC.put(key, value);
+ }
+
+ public static void removeProperty(IoSession session, String key) {
+ if (key == null) {
+ throw new NullPointerException("key should not be null");
+ }
+ Context context = getContext(session);
+ context.remove(key);
+ MDC.remove(key);
}
private static class Context extends HashMap<String,String> {
Modified: mina/trunk/core/src/test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java?rev=580759&r1=580758&r2=580759&view=diff
==============================================================================
--- mina/trunk/core/src/test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java (original)
+++ mina/trunk/core/src/test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java Sun Sep 30 10:57:55 2007
@@ -53,7 +53,7 @@
@Override
protected void setUp() throws Exception {
super.setUp();
- // uncomment next line if you want to see normal logging
+ // comment out next line if you want to see normal logging
org.apache.log4j.Logger.getRootLogger().removeAllAppenders();
org.apache.log4j.Logger.getRootLogger().setLevel(Level.DEBUG);
org.apache.log4j.Logger.getRootLogger().addAppender(appender);
@@ -68,7 +68,6 @@
}
public void testSimpleChain() throws IOException, InterruptedException {
- System.out.println("proc: " + Runtime.getRuntime().availableProcessors());
DefaultIoFilterChainBuilder chain = new DefaultIoFilterChainBuilder();
chain.addFirst("mdc-injector", new MdcInjectionFilter());
chain.addLast("dummy", new DummyIoFilter());
@@ -175,10 +174,12 @@
assertEventExists(events, "sessionCreated", remoteAddressClient, null);
assertEventExists(events, "sessionOpened", remoteAddressClient, null);
assertEventExists(events, "decode", remoteAddressClient, null);
- assertEventExists(events, "messageReceived", remoteAddressClient, null);
+ assertEventExists(events, "messageReceived-1", remoteAddressClient, null);
+ assertEventExists(events, "messageReceived-2", remoteAddressClient, "user-" + i);
assertEventExists(events, "encode", remoteAddressClient, null);
assertEventExists(events, "exceptionCaught", remoteAddressClient, "user-" + i);
- assertEventExists(events, "messageSent", remoteAddressClient, "user-" + i);
+ assertEventExists(events, "messageSent-1", remoteAddressClient, "user-" + i);
+ assertEventExists(events, "messageSent-2", remoteAddressClient, null);
assertEventExists(events, "sessionIdle", remoteAddressClient, "user-" + i);
assertEventExists(events, "sessionClosed", remoteAddressClient, "user-" + i);
assertEventExists(events, "sessionClosed", remoteAddressClient, "user-" + i);
@@ -254,18 +255,20 @@
@Override
public void messageReceived(IoSession session, Object message) throws Exception {
- logger.info("messageReceived");
+ logger.info("messageReceived-1");
// adding a custom property to the context
String user = "user-" + message;
MdcInjectionFilter.setProperty(session, "user", user);
- logger.info("logged-in: " + user);
+ logger.info("messageReceived-2");
session.write(message);
throw new RuntimeException("just a test, forcing exceptionCaught");
}
@Override
public void messageSent(IoSession session, Object message) throws Exception {
- logger.info("messageSent");
+ logger.info("messageSent-1");
+ MdcInjectionFilter.removeProperty(session, "user");
+ logger.info("messageSent-2");
messageSentLatch.countDown();
}
}