You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2007/04/07 13:18:39 UTC

svn commit: r526418 - in /jakarta/httpcomponents/httpclient/trunk/src: examples/org/apache/http/examples/client/ examples/org/apache/http/examples/conn/ java/org/apache/http/impl/conn/

Author: olegk
Date: Sat Apr  7 04:18:37 2007
New Revision: 526418

URL: http://svn.apache.org/viewvc?view=rev&rev=526418
Log:
Ported wire logging from Commons HttpClient

Added:
    jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/LoggingHttpDataReceiverDecorator.java
      - copied, changed from r525252, jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/WireLogInputStream.java
    jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/LoggingHttpDataTransmitterDecorator.java
      - copied, changed from r525252, jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/WireLogOutputStream.java
    jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/Wire.java
      - copied, changed from r525249, jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/Wire.java
Modified:
    jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java
    jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java
    jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/ManagerConnectDirect.java
    jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/ManagerConnectProxy.java
    jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/OperatorConnectDirect.java
    jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/OperatorConnectProxy.java
    jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/DefaultClientConnection.java

Modified: jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java?view=diff&rev=526418&r1=526417&r2=526418
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java Sat Apr  7 04:18:37 2007
@@ -33,15 +33,23 @@
 
 
 import org.apache.http.Header;
-import org.apache.http.HttpHost;
 import org.apache.http.HttpEntity;
+import org.apache.http.HttpHost;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpVersion;
+import org.apache.http.client.HttpClient;
+import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.PlainSocketFactory;
+import org.apache.http.conn.Scheme;
+import org.apache.http.conn.SchemeRegistry;
+import org.apache.http.conn.SocketFactory;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.ThreadSafeClientConnManager;
 import org.apache.http.message.BasicHttpRequest;
+import org.apache.http.params.BasicHttpParams;
 import org.apache.http.params.HttpParams;
 import org.apache.http.params.HttpProtocolParams;
-import org.apache.http.params.BasicHttpParams;
 import org.apache.http.protocol.BasicHttpProcessor;
 import org.apache.http.protocol.RequestConnControl;
 import org.apache.http.protocol.RequestContent;
@@ -49,16 +57,6 @@
 import org.apache.http.protocol.RequestTargetHost;
 import org.apache.http.protocol.RequestUserAgent;
 import org.apache.http.util.EntityUtils;
-
-import org.apache.http.conn.Scheme;
-import org.apache.http.conn.SchemeRegistry;
-import org.apache.http.conn.SocketFactory;
-import org.apache.http.conn.PlainSocketFactory;
-import org.apache.http.conn.ClientConnectionManager;
-//import org.apache.http.impl.conn.SingleClientConnManager;
-import org.apache.http.impl.conn.ThreadSafeClientConnManager;
-import org.apache.http.client.HttpClient;
-import org.apache.http.impl.client.DefaultHttpClient;
 
 
 

Modified: jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java?view=diff&rev=526418&r1=526417&r2=526418
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java Sat Apr  7 04:18:37 2007
@@ -33,15 +33,26 @@
 
 
 import org.apache.http.Header;
-import org.apache.http.HttpHost;
 import org.apache.http.HttpEntity;
+import org.apache.http.HttpHost;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpVersion;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.RoutedRequest;
+import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.HttpRoute;
+import org.apache.http.conn.PlainSocketFactory;
+import org.apache.http.conn.Scheme;
+import org.apache.http.conn.SchemeRegistry;
+import org.apache.http.conn.SocketFactory;
+import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.ThreadSafeClientConnManager;
 import org.apache.http.message.BasicHttpRequest;
+import org.apache.http.params.BasicHttpParams;
 import org.apache.http.params.HttpParams;
 import org.apache.http.params.HttpProtocolParams;
-import org.apache.http.params.BasicHttpParams;
 import org.apache.http.protocol.BasicHttpProcessor;
 import org.apache.http.protocol.RequestConnControl;
 import org.apache.http.protocol.RequestContent;
@@ -49,19 +60,6 @@
 import org.apache.http.protocol.RequestTargetHost;
 import org.apache.http.protocol.RequestUserAgent;
 import org.apache.http.util.EntityUtils;
-
-import org.apache.http.conn.Scheme;
-import org.apache.http.conn.SchemeRegistry;
-import org.apache.http.conn.SocketFactory;
-import org.apache.http.conn.PlainSocketFactory;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.HttpRoute;
-//import org.apache.http.impl.conn.SingleClientConnManager;
-import org.apache.http.impl.conn.ThreadSafeClientConnManager;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.RoutedRequest;
-import org.apache.http.impl.client.DefaultHttpClient;
 
 
 

Modified: jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/ManagerConnectDirect.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/ManagerConnectDirect.java?view=diff&rev=526418&r1=526417&r2=526418
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/ManagerConnectDirect.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/ManagerConnectDirect.java Sat Apr  7 04:18:37 2007
@@ -32,28 +32,25 @@
 package org.apache.http.examples.conn;
 
 
-import org.apache.http.HttpHost;
 import org.apache.http.Header;
+import org.apache.http.HttpHost;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpVersion;
+import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.HttpRoute;
+import org.apache.http.conn.ManagedClientConnection;
+import org.apache.http.conn.PlainSocketFactory;
+import org.apache.http.conn.Scheme;
+import org.apache.http.conn.SchemeRegistry;
+import org.apache.http.conn.SocketFactory;
+import org.apache.http.impl.conn.ThreadSafeClientConnManager;
 import org.apache.http.message.BasicHttpRequest;
+import org.apache.http.params.BasicHttpParams;
 import org.apache.http.params.HttpParams;
 import org.apache.http.params.HttpProtocolParams;
-import org.apache.http.params.BasicHttpParams;
 import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.HttpExecutionContext;
-
-import org.apache.http.conn.Scheme;
-import org.apache.http.conn.SchemeRegistry;
-import org.apache.http.conn.SocketFactory;
-import org.apache.http.conn.PlainSocketFactory;
-import org.apache.http.conn.HttpRoute;
-import org.apache.http.conn.ManagedClientConnection;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.ClientConnectionOperator;
-import org.apache.http.impl.conn.ThreadSafeClientConnManager;
-import org.apache.http.impl.conn.DefaultClientConnectionOperator;
 
 
 

Modified: jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/ManagerConnectProxy.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/ManagerConnectProxy.java?view=diff&rev=526418&r1=526417&r2=526418
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/ManagerConnectProxy.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/ManagerConnectProxy.java Sat Apr  7 04:18:37 2007
@@ -32,29 +32,26 @@
 package org.apache.http.examples.conn;
 
 
-import org.apache.http.HttpHost;
 import org.apache.http.Header;
+import org.apache.http.HttpHost;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpVersion;
-import org.apache.http.message.BasicHttpRequest;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.HttpProtocolParams;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.protocol.HttpExecutionContext;
-
+import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.HttpRoute;
+import org.apache.http.conn.ManagedClientConnection;
+import org.apache.http.conn.PlainSocketFactory;
 import org.apache.http.conn.Scheme;
 import org.apache.http.conn.SchemeRegistry;
 import org.apache.http.conn.SocketFactory;
-import org.apache.http.conn.PlainSocketFactory;
 import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.conn.HttpRoute;
-import org.apache.http.conn.ManagedClientConnection;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.ClientConnectionOperator;
 import org.apache.http.impl.conn.ThreadSafeClientConnManager;
-import org.apache.http.impl.conn.DefaultClientConnectionOperator;
+import org.apache.http.message.BasicHttpRequest;
+import org.apache.http.params.BasicHttpParams;
+import org.apache.http.params.HttpParams;
+import org.apache.http.params.HttpProtocolParams;
+import org.apache.http.protocol.HttpContext;
+import org.apache.http.protocol.HttpExecutionContext;
 
 
 

Modified: jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/OperatorConnectDirect.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/OperatorConnectDirect.java?view=diff&rev=526418&r1=526417&r2=526418
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/OperatorConnectDirect.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/OperatorConnectDirect.java Sat Apr  7 04:18:37 2007
@@ -32,25 +32,24 @@
 package org.apache.http.examples.conn;
 
 
-import org.apache.http.HttpHost;
 import org.apache.http.Header;
+import org.apache.http.HttpHost;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpVersion;
+import org.apache.http.conn.ClientConnectionOperator;
+import org.apache.http.conn.OperatedClientConnection;
+import org.apache.http.conn.PlainSocketFactory;
+import org.apache.http.conn.Scheme;
+import org.apache.http.conn.SchemeRegistry;
+import org.apache.http.conn.SocketFactory;
+import org.apache.http.impl.conn.DefaultClientConnectionOperator;
 import org.apache.http.message.BasicHttpRequest;
+import org.apache.http.params.BasicHttpParams;
 import org.apache.http.params.HttpParams;
 import org.apache.http.params.HttpProtocolParams;
-import org.apache.http.params.BasicHttpParams;
 import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.HttpExecutionContext;
-
-import org.apache.http.conn.Scheme;
-import org.apache.http.conn.SchemeRegistry;
-import org.apache.http.conn.SocketFactory;
-import org.apache.http.conn.PlainSocketFactory;
-import org.apache.http.conn.OperatedClientConnection;
-import org.apache.http.conn.ClientConnectionOperator;
-import org.apache.http.impl.conn.DefaultClientConnectionOperator;
 
 
 

Modified: jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/OperatorConnectProxy.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/OperatorConnectProxy.java?view=diff&rev=526418&r1=526417&r2=526418
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/OperatorConnectProxy.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/conn/OperatorConnectProxy.java Sat Apr  7 04:18:37 2007
@@ -32,26 +32,25 @@
 package org.apache.http.examples.conn;
 
 
-import org.apache.http.HttpHost;
 import org.apache.http.Header;
+import org.apache.http.HttpHost;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpVersion;
-import org.apache.http.message.BasicHttpRequest;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.HttpProtocolParams;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.protocol.HttpExecutionContext;
-
+import org.apache.http.conn.ClientConnectionOperator;
+import org.apache.http.conn.OperatedClientConnection;
+import org.apache.http.conn.PlainSocketFactory;
 import org.apache.http.conn.Scheme;
 import org.apache.http.conn.SchemeRegistry;
 import org.apache.http.conn.SocketFactory;
-import org.apache.http.conn.PlainSocketFactory;
 import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.conn.OperatedClientConnection;
-import org.apache.http.conn.ClientConnectionOperator;
 import org.apache.http.impl.conn.DefaultClientConnectionOperator;
+import org.apache.http.message.BasicHttpRequest;
+import org.apache.http.params.BasicHttpParams;
+import org.apache.http.params.HttpParams;
+import org.apache.http.params.HttpProtocolParams;
+import org.apache.http.protocol.HttpContext;
+import org.apache.http.protocol.HttpExecutionContext;
 
 
 

Modified: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/DefaultClientConnection.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/DefaultClientConnection.java?view=diff&rev=526418&r1=526417&r2=526418
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/DefaultClientConnection.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/DefaultClientConnection.java Sat Apr  7 04:18:37 2007
@@ -38,6 +38,8 @@
 import org.apache.http.HttpHost;
 import org.apache.http.params.HttpParams;
 import org.apache.http.impl.SocketHttpClientConnection;
+import org.apache.http.io.HttpDataReceiver;
+import org.apache.http.io.HttpDataTransmitter;
 
 import org.apache.http.conn.OperatedClientConnection;
 
@@ -117,6 +119,26 @@
     } // shutdown
 
 
+    protected HttpDataReceiver createHttpDataReceiver(
+            final HttpParams params) throws IOException {
+        HttpDataReceiver receiver = super.createHttpDataReceiver(params);
+        if (Wire.WIRE_LOG.enabled()) {
+            receiver = new LoggingHttpDataReceiverDecorator(receiver, Wire.WIRE_LOG);
+        }
+        return receiver;
+    }
+
+    
+    protected HttpDataTransmitter createHttpDataTransmitter(
+            final HttpParams params) throws IOException {
+        HttpDataTransmitter transmitter = super.createHttpDataTransmitter(params);
+        if (Wire.WIRE_LOG.enabled()) {
+            transmitter = new LoggingHttpDataTransmitterDecorator(transmitter, Wire.WIRE_LOG);
+        }
+        return transmitter;
+    }
+
+    
     // non-javadoc, see interface OperatedClientConnection
     public void open(Socket sock, HttpHost target,
                      boolean secure, HttpParams params)
@@ -137,6 +159,7 @@
         }
 
         bind(sock, params);
+        
         targetHost = target;
         connSecure = secure;
 

Copied: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/LoggingHttpDataReceiverDecorator.java (from r525252, jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/WireLogInputStream.java)
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/LoggingHttpDataReceiverDecorator.java?view=diff&rev=526418&p1=jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/WireLogInputStream.java&r1=525252&p2=jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/LoggingHttpDataReceiverDecorator.java&r2=526418
==============================================================================
--- jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/WireLogInputStream.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/LoggingHttpDataReceiverDecorator.java Sat Apr  7 04:18:37 2007
@@ -1,5 +1,5 @@
 /*
- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/WireLogInputStream.java,v 1.15 2004/06/24 21:39:52 mbecke Exp $
+ * $HeadURL$
  * $Revision$
  * $Date$
  *
@@ -28,72 +28,90 @@
  *
  */
 
-package org.apache.commons.httpclient;
+package org.apache.http.impl.conn;
 
-import java.io.FilterInputStream;
 import java.io.IOException;
-import java.io.InputStream;
+
+import org.apache.http.io.HttpDataReceiver;
+import org.apache.http.params.HttpParams;
+import org.apache.http.util.CharArrayBuffer;
 
 /**
  * Logs all data read to the wire LOG.
  *
- * @author Ortwin Gl�ck
+ * @author Ortwin Glueck
  * @author <a href="mailto:mbowler@GargoyleSoftware.com">Mike Bowler</a>
- * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
+ * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
  * 
  * @since 2.0
  */
-class WireLogInputStream extends FilterInputStream {
+class LoggingHttpDataReceiverDecorator implements HttpDataReceiver {
      
-    /** Original input stream. */
-    private InputStream in;
+    /** Original data receiver. */
+    private final HttpDataReceiver in;
 
     /** The wire log to use for writing. */
-    private Wire wire;
+    private final Wire wire;
     
     /**
-     * Create an instance that wraps the specified input stream.
+     * Create an instance that wraps the specified HTTP data receiver.
      * @param in The input stream.
      * @param wire The wire log to use.
      */
-    public WireLogInputStream(InputStream in, Wire wire) {
-        super(in);
+    public LoggingHttpDataReceiverDecorator(final HttpDataReceiver in, final Wire wire) {
+        super();
         this.in = in;
         this.wire = wire;
     }
-    /**
-     * 
-     * @see java.io.InputStream#read(byte[], int, int)
-     */
+
+    public void reset(final HttpParams params) {
+        this.in.reset(params);
+    }
+    
+    public boolean isDataAvailable(int timeout) throws IOException {
+        return this.in.isDataAvailable(timeout);
+    }
+
     public int read(byte[] b, int off, int len) throws IOException {
         int l = this.in.read(b,  off,  len);
-        if (l > 0) {
-            wire.input(b, off, l);
+        if (this.wire.enabled() && l > 0) {
+            this.wire.input(b, off, l);
         }
         return l;
     }
 
-    /**
-     * 
-     * @see java.io.InputStream#read()
-     */
     public int read() throws IOException {
         int l = this.in.read();
-        if (l > 0) { 
-            wire.input(l);
+        if (this.wire.enabled() && l > 0) { 
+            this.wire.input(l);
         }
         return l;
     }
 
-    /**
-     * 
-     * @see java.io.InputStream#read(byte[])
-     */
     public int read(byte[] b) throws IOException {
         int l = this.in.read(b);
-        if (l > 0) {
-            wire.input(b, 0, l);
+        if (this.wire.enabled() && l > 0) {
+            this.wire.input(b, 0, l);
+        }
+        return l;
+    }
+
+    public String readLine() throws IOException {
+        String s = this.in.readLine();
+        if (this.wire.enabled() && s != null) {
+            this.wire.input(s + "[EOL]");
+        }
+        return s;
+    }
+
+    public int readLine(final CharArrayBuffer buffer) throws IOException {
+        int l = this.in.readLine(buffer);
+        if (this.wire.enabled() && l > 0) {
+            int pos = buffer.length() - l;
+            String s = new String(buffer.buffer(), pos, l);
+            this.wire.input(s + "[EOL]");
         }
         return l;
     }
+
 }

Copied: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/LoggingHttpDataTransmitterDecorator.java (from r525252, jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/WireLogOutputStream.java)
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/LoggingHttpDataTransmitterDecorator.java?view=diff&rev=526418&p1=jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/WireLogOutputStream.java&r1=525252&p2=jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/LoggingHttpDataTransmitterDecorator.java&r2=526418
==============================================================================
--- jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/WireLogOutputStream.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/LoggingHttpDataTransmitterDecorator.java Sat Apr  7 04:18:37 2007
@@ -1,5 +1,5 @@
 /*
- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/WireLogOutputStream.java,v 1.7 2004/06/24 21:39:52 mbecke Exp $
+ * $HeadURL$
  * $Revision$
  * $Date$
  *
@@ -28,62 +28,82 @@
  *
  */
 
-package org.apache.commons.httpclient;
+package org.apache.http.impl.conn;
 
-import java.io.FilterOutputStream;
 import java.io.IOException;
-import java.io.OutputStream;
+
+import org.apache.http.io.HttpDataTransmitter;
+import org.apache.http.params.HttpParams;
+import org.apache.http.util.CharArrayBuffer;
 
 /**
  * Logs all data written to the wire LOG.
  *
- * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
+ * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
  * 
  * @since 2.0beta1
  */
-class WireLogOutputStream extends FilterOutputStream {
+class LoggingHttpDataTransmitterDecorator implements HttpDataTransmitter {
 
-    /** Original input stream. */
-    private OutputStream out;
+    /** Original data transmitter. */
+    private final HttpDataTransmitter out;
     
     /** The wire log to use. */
-    private Wire wire;
+    private final Wire wire;
 
     /**
      * Create an instance that wraps the specified output stream.
      * @param out The output stream.
      * @param wire The Wire log to use.
      */
-    public WireLogOutputStream(OutputStream out, Wire wire) {
-        super(out);
+    public LoggingHttpDataTransmitterDecorator(final HttpDataTransmitter out, final Wire wire) {
+        super();
         this.out = out;
         this.wire = wire;
     }
     
-    /**
-     * 
-     * @see java.io.OutputStream#write(byte[], int, int)
-     */
+    public void reset(final HttpParams params) {
+        this.out.reset(params);
+    }
+    
     public void write(byte[] b, int off, int len) throws IOException {
         this.out.write(b,  off,  len);
-        wire.output(b, off, len);
+        if (this.wire.enabled()) {
+            this.wire.output(b, off, len);
+        }
     }
 
-    /**
-     * 
-     * @see java.io.OutputStream#write()
-     */
     public void write(int b) throws IOException {
         this.out.write(b);
-        wire.output(b);
+        if (this.wire.enabled()) {
+            this.wire.output(b);
+        }
     }
 
-    /**
-     * 
-     * @see java.io.OutputStream#write(byte[])
-     */
     public void write(byte[] b) throws IOException {
         this.out.write(b);
-        wire.output(b);
+        if (this.wire.enabled()) {
+            this.wire.output(b);
+        }
+    }
+
+    public void flush() throws IOException {
+        this.out.flush();
+    }
+
+    public void writeLine(final CharArrayBuffer buffer) throws IOException {
+        this.out.writeLine(buffer);
+        if (this.wire.enabled()) {
+            String s = new String(buffer.buffer(), 0, buffer.length());
+            this.wire.output(s + "[EOL]");
+        }
+    }
+
+    public void writeLine(final String s) throws IOException {
+        this.out.writeLine(s);
+        if (this.wire.enabled()) {
+            this.wire.output(s + "[EOL]");
+        }
     }
+    
 }

Copied: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/Wire.java (from r525249, jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/Wire.java)
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/Wire.java?view=diff&rev=526418&p1=jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/Wire.java&r1=525249&p2=jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/Wire.java&r2=526418
==============================================================================
--- jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/Wire.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/Wire.java Sat Apr  7 04:18:37 2007
@@ -28,7 +28,7 @@
  *
  */
 
-package org.apache.commons.httpclient;
+package org.apache.http.impl.conn;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -39,15 +39,13 @@
 /**
  * Logs data to the wire LOG.
  *
- * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
+ * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
  * 
  * @since 2.0beta1
  */
 class Wire {
 
-    public static Wire HEADER_WIRE = new Wire(LogFactory.getLog("httpclient.wire.header"));
-    
-    public static Wire CONTENT_WIRE = new Wire(LogFactory.getLog("httpclient.wire.content"));
+    public static Wire WIRE_LOG = new Wire(LogFactory.getLog("org.apache.http.wire"));
     
     /** Log for any wire messages. */
     private Log log;