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();
         }
     }