You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2016/05/16 09:08:27 UTC

cxf git commit: [CXF-6510] Updating LoggingOutInterceptor to use formatLoggingMessage, patch from CodeSmell(Mike) applied, This closes #135

Repository: cxf
Updated Branches:
  refs/heads/master f8d941e6c -> 5c5f752d2


[CXF-6510] Updating LoggingOutInterceptor to use formatLoggingMessage, patch from CodeSmell(Mike) applied, This closes #135


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/5c5f752d
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/5c5f752d
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/5c5f752d

Branch: refs/heads/master
Commit: 5c5f752d2be6aa3db507c52cfc623e856b921c9f
Parents: f8d941e
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Mon May 16 10:08:08 2016 +0100
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Mon May 16 10:08:08 2016 +0100

----------------------------------------------------------------------
 .../cxf/interceptor/LoggingOutInterceptor.java  |  9 +--
 .../interceptor/LoggingOutInterceptorTest.java  | 72 ++++++++++++++++++++
 2 files changed, 75 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/5c5f752d/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java
index b838fe8..b356e55 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java
@@ -19,7 +19,6 @@
 
 package org.apache.cxf.interceptor;
 
-
 import java.io.FilterWriter;
 import java.io.IOException;
 import java.io.OutputStream;
@@ -36,7 +35,6 @@ import org.apache.cxf.io.CachedOutputStreamCallback;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.phase.Phase;
 
-
 /**
  * 
  */
@@ -189,7 +187,7 @@ public class LoggingOutInterceptor extends AbstractLoggingInterceptor {
             } catch (Exception ex) {
                 //ignore
             }
-            log(logger, buffer.toString());
+            log(logger, formatLoggingMessage(buffer));
             message.setContent(Writer.class, out);
             super.close();
         }
@@ -228,7 +226,7 @@ public class LoggingOutInterceptor extends AbstractLoggingInterceptor {
             }
             if (!isShowMultipartContent() && isMultipartContent(ct)) {
                 buffer.getMessage().append(MULTIPART_CONTENT_MESSAGE).append('\n');
-                log(logger, buffer.toString());
+                log(logger, formatLoggingMessage(buffer));
                 return;
             }
             
@@ -259,8 +257,7 @@ public class LoggingOutInterceptor extends AbstractLoggingInterceptor {
             } catch (Exception ex) {
                 //ignore
             }
-            message.setContent(OutputStream.class, 
-                               origStream);
+            message.setContent(OutputStream.class, origStream);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/5c5f752d/core/src/test/java/org/apache/cxf/interceptor/LoggingOutInterceptorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/cxf/interceptor/LoggingOutInterceptorTest.java b/core/src/test/java/org/apache/cxf/interceptor/LoggingOutInterceptorTest.java
index 55c1aad..832f738 100644
--- a/core/src/test/java/org/apache/cxf/interceptor/LoggingOutInterceptorTest.java
+++ b/core/src/test/java/org/apache/cxf/interceptor/LoggingOutInterceptorTest.java
@@ -22,6 +22,8 @@ package org.apache.cxf.interceptor;
 import java.io.ByteArrayOutputStream;
 import java.io.OutputStream;
 import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.io.Writer;
 import java.util.logging.Logger;
 
 import org.apache.cxf.common.logging.LogUtils;
@@ -76,6 +78,60 @@ public class LoggingOutInterceptorTest extends Assert {
         assertTrue(str.contains("<today>"));
 
     }
+    
+    @Test
+    public void testFormattingOverride() throws Exception {
+        control.replay();
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        
+        // create a custom logging interceptor that overrides how formatting is done
+        LoggingOutInterceptor p = new CustomFormatLoggingOutInterceptor(new PrintWriter(baos));
+        CachedOutputStream cos = new CachedOutputStream();
+        String s = "<today><is><the><twenty> <second> <of> <january> <two> <thousand> <and> <nine></nine> "
+            + "</and></thousand></two></january></of></second></twenty></the></is></today>";
+        cos.write(s.getBytes());
+        
+        Message message = new MessageImpl();
+        message.setExchange(new ExchangeImpl());
+        message.put(Message.CONTENT_TYPE, "application/xml");
+        Logger logger = LogUtils.getL7dLogger(this.getClass());
+        LoggingOutInterceptor.LoggingCallback l = p.new LoggingCallback(logger, message, cos);
+        l.onClose(cos);
+        
+        String str = baos.toString();
+        assertTrue(str.contains("<tomorrow/>"));
+
+    }
+    
+    @Test
+    public void testFormattingOverrideLogWriter() throws Exception {
+        // create a custom logging interceptor that overrides how formatting is done
+        LoggingOutInterceptor p = new CustomFormatLoggingOutInterceptor();
+        
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        p.setPrintWriter(new PrintWriter(baos));
+        
+        StringWriter sw = new StringWriter();
+        sw.append("<today/>");
+        
+        Endpoint endpoint = control.createMock(Endpoint.class);
+        EndpointInfo endpointInfo = control.createMock(EndpointInfo.class);
+        EasyMock.expect(endpoint.getEndpointInfo()).andReturn(endpointInfo).anyTimes();
+        control.replay();
+
+        Message message = new MessageImpl();
+        message.setExchange(new ExchangeImpl());
+        message.put(Message.CONTENT_TYPE, "application/xml");
+        message.setContent(Writer.class, sw);
+        
+        p.handleMessage(message);
+        
+        Writer w = message.getContent(Writer.class);
+        w.close();
+        
+        String str = baos.toString();
+        assertTrue(str.contains("<tomorrow/>"));
+    }
 
     @Test
     public void testCachedOutputStreamThreshold() throws Exception {
@@ -112,4 +168,20 @@ public class LoggingOutInterceptorTest extends Assert {
         return (CachedOutputStream)os;
     }
 
+    private class CustomFormatLoggingOutInterceptor extends LoggingOutInterceptor {
+        CustomFormatLoggingOutInterceptor() {
+            super();
+        }
+        
+        CustomFormatLoggingOutInterceptor(PrintWriter w) {
+            super(w);
+        }
+        
+        @Override
+        protected String formatLoggingMessage(LoggingMessage loggingMessage) {
+            loggingMessage.getPayload().append("<tomorrow/>");
+            return super.formatLoggingMessage(loggingMessage);
+        }
+
+    }
 }