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 2011/09/10 14:16:22 UTC

svn commit: r1167502 - /httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/

Author: olegk
Date: Sat Sep 10 12:16:21 2011
New Revision: 1167502

URL: http://svn.apache.org/viewvc?rev=1167502&view=rev
Log:
Replaced custom client protocol handler with HttpAsyncClientProtocolHandler from HttpCore

Added:
    httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/LoggingClientProtocolHandler.java   (with props)
Modified:
    httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/AbstractHttpAsyncClient.java
    httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultAsyncRequestDirector.java
    httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/HttpExchange.java
    httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/MessageState.java
    httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/NHttpClientProtocolHandler.java

Modified: httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/AbstractHttpAsyncClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/AbstractHttpAsyncClient.java?rev=1167502&r1=1167501&r2=1167502&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/AbstractHttpAsyncClient.java (original)
+++ httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/AbstractHttpAsyncClient.java Sat Sep 10 12:16:21 2011
@@ -435,7 +435,7 @@ public abstract class AbstractHttpAsyncC
     }
 
     private void doExecute() {
-        NHttpClientProtocolHandler handler = new NHttpClientProtocolHandler();
+        LoggingClientProtocolHandler handler = new LoggingClientProtocolHandler();
         try {
             IOEventDispatch ioEventDispatch = new DefaultClientIODispatch(handler, getParams());
             this.connmgr.execute(ioEventDispatch);

Modified: httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultAsyncRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultAsyncRequestDirector.java?rev=1167502&r1=1167501&r2=1167502&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultAsyncRequestDirector.java (original)
+++ httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultAsyncRequestDirector.java Sat Sep 10 12:16:21 2011
@@ -80,6 +80,7 @@ import org.apache.http.nio.conn.ClientCo
 import org.apache.http.nio.conn.ManagedClientConnection;
 import org.apache.http.nio.conn.scheme.Scheme;
 import org.apache.http.nio.protocol.HttpAsyncClientExchangeHandler;
+import org.apache.http.nio.protocol.HttpAsyncClientProtocolHandler;
 import org.apache.http.nio.protocol.HttpAsyncRequestProducer;
 import org.apache.http.nio.protocol.HttpAsyncResponseConsumer;
 import org.apache.http.params.HttpConnectionParams;
@@ -91,8 +92,6 @@ import org.apache.http.protocol.HttpProc
 
 class DefaultAsyncRequestDirector<T> implements HttpAsyncClientExchangeHandler<T> {
 
-    public static final String HTTP_EXCHANGE_HANDLER = "http.nio.async-exchange-handler";
-
     private final Log log;
 
     private final HttpAsyncRequestProducer requestProducer;
@@ -327,7 +326,7 @@ class DefaultAsyncRequestDirector<T> imp
     private void releaseConnection() {
         if (this.managedConn != null) {
             try {
-                this.managedConn.getContext().removeAttribute(HTTP_EXCHANGE_HANDLER);
+                this.managedConn.getContext().removeAttribute(HttpAsyncClientProtocolHandler.HTTP_HANDLER);
                 this.managedConn.releaseConnection();
             } catch (IOException ioex) {
                 this.log.debug("I/O error releasing connection", ioex);
@@ -469,7 +468,7 @@ class DefaultAsyncRequestDirector<T> imp
                 conn.open(route, this.localContext, this.params);
             }
             this.managedConn = conn;
-            this.managedConn.getContext().setAttribute(HTTP_EXCHANGE_HANDLER, this);
+            this.managedConn.getContext().setAttribute(HttpAsyncClientProtocolHandler.HTTP_HANDLER, this);
             this.managedConn.requestOutput();
             this.routeEstablished = route.equals(conn.getRoute());
         } catch (IOException ex) {

Added: httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/LoggingClientProtocolHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/LoggingClientProtocolHandler.java?rev=1167502&view=auto
==============================================================================
--- httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/LoggingClientProtocolHandler.java (added)
+++ httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/LoggingClientProtocolHandler.java Sat Sep 10 12:16:21 2011
@@ -0,0 +1,125 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+package org.apache.http.impl.nio.client;
+
+import java.io.IOException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.http.HttpException;
+import org.apache.http.nio.ContentDecoder;
+import org.apache.http.nio.ContentEncoder;
+import org.apache.http.nio.NHttpClientConnection;
+import org.apache.http.nio.protocol.HttpAsyncClientProtocolHandler;
+
+class LoggingClientProtocolHandler extends HttpAsyncClientProtocolHandler {
+
+    private final Log log = LogFactory.getLog(HttpAsyncClientProtocolHandler.class);
+
+    public LoggingClientProtocolHandler() {
+        super();
+    }
+
+    @Override
+    protected void onException(final Exception ex) {
+        this.log.debug(ex.getMessage(), ex);
+    }
+
+    @Override
+    public void connected(final NHttpClientConnection conn, final Object attachment) {
+        if (this.log.isDebugEnabled()) {
+            this.log.debug(conn + ": Connected");
+        }
+        super.connected(conn, attachment);
+    }
+
+    @Override
+    public void closed(final NHttpClientConnection conn) {
+        if (this.log.isDebugEnabled()) {
+            this.log.debug(conn + ": Disconnected");
+        }
+        super.closed(conn);
+    }
+
+    @Override
+    public void exception(final NHttpClientConnection conn, final HttpException ex) {
+        if (this.log.isErrorEnabled()) {
+            this.log.error(conn + " HTTP protocol exception: " + ex.getMessage(), ex);
+        }
+        super.exception(conn, ex);
+    }
+
+    @Override
+    public void exception(final NHttpClientConnection conn, final IOException ex) {
+        if (this.log.isErrorEnabled()) {
+            this.log.error(conn + " I/O error: " + ex.getMessage(), ex);
+        }
+        super.exception(conn, ex);
+    }
+
+    @Override
+    public void requestReady(final NHttpClientConnection conn) {
+        if (this.log.isDebugEnabled()) {
+            this.log.debug(conn + " Request ready");
+        }
+        super.requestReady(conn);
+    }
+
+    @Override
+    public void inputReady(final NHttpClientConnection conn, final ContentDecoder decoder) {
+        if (this.log.isDebugEnabled()) {
+            this.log.debug(conn + " Input ready " + decoder);
+        }
+        super.inputReady(conn, decoder);
+    }
+
+    @Override
+    public void outputReady(final NHttpClientConnection conn, final ContentEncoder encoder) {
+        if (this.log.isDebugEnabled()) {
+            this.log.debug(conn + " Output ready " + encoder);
+        }
+        super.outputReady(conn, encoder);
+    }
+
+    @Override
+    public void responseReceived(final NHttpClientConnection conn) {
+        if (this.log.isDebugEnabled()) {
+            this.log.debug(conn + " Response received");
+        }
+        super.responseReceived(conn);
+    }
+
+    @Override
+    public void timeout(final NHttpClientConnection conn) {
+        if (this.log.isDebugEnabled()) {
+            this.log.debug(conn + " Timeout");
+        }
+        super.timeout(conn);
+    }
+
+}

Propchange: httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/LoggingClientProtocolHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/LoggingClientProtocolHandler.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: httpcomponents/httpasyncclient/branches/protocol-handler-refactoring/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/LoggingClientProtocolHandler.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain