synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: [PATCH] Upgrades Synapse NHttp to HttpCore 4.0-ALPHA5-SNAPSHOT, improves logging
Date Thu, 21 Jun 2007 07:59:41 GMT
On Thu, 2007-06-21 at 08:56 +0530, Ruwan Linton wrote:
> Yes asankha,
> 
> I will be able to run some load tests and check this. 
> 
> Oleg, I will get back to you ASAP,
> 
> Thanks,
> Ruwan.
> 

Take it easy, guys. The release can wait.

Oleg

> On 6/20/07, Asankha C. Perera <asankha@wso2.com> wrote:
>         Hi Oleg
>         
>         Sorry for the delay in response. I will run this through some
>         load tests and get back to you soon. I will be traveling next
>         week, and thus if I am unable to perform this on time, I will
>         check if Ruwan would be able to get back to you by early next
>         week.
>         
>         thanks
>         asankha
>         
>         Oleg Kalnichevski wrote: 
>         > Hi Asankha
>         > 
>         > I am submitting for your consideration a patch that upgrades Synapse
>         > NHttp transport to HttpCore 4.0-ALPHA5-SNAPSHOT and adds some
>         > incremental improvements to the I/O debug logging (such as prettier I/O
>         > 
>         > session logs and optional HTTP header logs)
>         > 
>         > All tests pass for me, but please do run a few stress tests to make sure
>         > there are no regressions.
>         > 
>         > Provided everything goes well HttpCore 4.0-ALPHA5 release is expected
>         > 
>         > within the next two weeks.
>         > 
>         > Cheers
>         > 
>         > Oleg
>         >   
>         > 
>         > ____________________________________________________________
>         > 
>         > Index: modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java
>         > ===================================================================
>         > --- modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java
(revision 548631)
>         > 
>         > +++ modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java
(working copy)
>         > @@ -26,17 +26,15 @@
>         >  import org.apache.axis2.transport.MessageFormatter;
>         >  import org.apache.axis2.transport.TransportUtils
>         > ;
>         >  import org.apache.http.*;
>         > +import org.apache.http.message.BasicHttpEntityEnclosingRequest;
>         >  import org.apache.http.protocol.HTTP;
>         >  import org.apache.http.entity.BasicHttpEntity;
>         > -import org.apache.http.message.HttpPost
>         > ;
>         >  import org.apache.axiom.om.OMOutputFormat;
>         >  import org.apache.commons.logging.Log;
>         >  import org.apache.commons.logging.LogFactory;
>         >  
>         > -import javax.xml.stream.XMLStreamException;
>         >  import java.io.IOException
>         > ;
>         >  import java.io.OutputStream;
>         > -import java.nio.channels.Pipe;
>         >  import java.nio.channels.Channels;
>         >  import java.nio.channels.ReadableByteChannel;
>         >  import java.util.Map;
>         > @@ -98,7 +96,9 @@
>         >       * @return the HttpRequest to be sent out
>         > 
>         >       */
>         >      public HttpRequest getRequest() throws IOException {
>         > -        HttpPost httpRequest = new HttpPost(epr.getAddress());
>         > +        HttpEntityEnclosingRequest httpRequest = new BasicHttpEntityEnclosingRequest(
>         > 
>         > +                "POST", 
>         > +                epr.getAddress());
>         >          httpRequest.setEntity(new BasicHttpEntity());
>         >  
>         >          // set any transport headers
>         > Index: modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpClientHandler.java
>         > 
>         > ===================================================================
>         > --- modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpClientHandler.java
(revision 548631)
>         > +++ modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpClientHandler.java
(working copy)
>         > 
>         > @@ -22,6 +22,7 @@
>         >  
>         >  import org.apache.commons.logging.Log;
>         >  import org.apache.commons.logging.LogFactory;
>         > +import org.apache.http.Header;
>         >  import org.apache.http.HttpException;
>         >  import org.apache.http.HttpResponse
>         > ;
>         >  import org.apache.http.nio.ContentDecoder;
>         > @@ -36,6 +37,7 @@
>         >  public class LoggingNHttpClientHandler implements NHttpClientHandler {
>         >  
>         >      private final Log log;
>         > +    private final Log headerlog;
>         > 
>         >      private final NHttpClientHandler handler;
>         >      
>         >      public LoggingNHttpClientHandler(final NHttpClientHandler handler)
{
>         > @@ -45,6 +47,7 @@
>         >          }
>         >          this.handler = handler;
>         >          this.log
>         >  = LogFactory.getLog(handler.getClass());
>         > +        this.headerlog = LogFactory.getLog("org.apache.axis2.transport.nhttp.headers");
>         >      }
>         >      
>         >      public void connected(final NHttpClientConnection conn, final Object
attachment) {
>         > 
>         > @@ -89,11 +92,18 @@
>         >      }
>         >  
>         >      public void responseReceived(final NHttpClientConnection conn) {
>         > +        HttpResponse response = conn.getHttpResponse();
>         >          if (this.log.isDebugEnabled()) {
>         > -            HttpResponse response = 
>         > conn.getHttpResponse();
>         >              this.log.debug("HTTP connection " + conn + ": " + response.getStatusLine());
>         >          }
>         >          this.handler.responseReceived(conn);
>         > +        if (this.headerlog.isDebugEnabled
>         > ()) {
>         > +            this.headerlog.debug("<< " + response.getStatusLine().toString());
>         > +            Header[] headers = response.getAllHeaders();
>         > +            for (int i = 0; i < headers.length; i++) {
>         > 
>         > +                this.headerlog.debug("<< " + headers[i].toString());
>         > +            }
>         > +        }
>         >      }
>         >  
>         >      public void inputReady(final NHttpClientConnection conn, final ContentDecoder
decoder) {
>         > 
>         > Index: modules/nhttp/src/org/apache/axis2/transport/nhttp/SSLServerIOEventDispatch.java
>         > ===================================================================
>         > --- modules/nhttp/src/org/apache/axis2/transport/nhttp/SSLServerIOEventDispatch.java
(revision 548631)
>         > 
>         > +++ modules/nhttp/src/org/apache/axis2/transport/nhttp/SSLServerIOEventDispatch.java
(working copy)
>         > @@ -31,6 +31,7 @@
>         >  import org.apache.http.nio.NHttpServiceHandler;
>         >  import org.apache.http.nio.reactor.IOEventDispatch
>         > ;
>         >  import org.apache.http.nio.reactor.IOSession;
>         > +import org.apache.http.nio.util.HeapByteBufferAllocator;
>         >  import org.apache.http.params.HttpParams;
>         >  
>         >  public class SSLServerIOEventDispatch implements IOEventDispatch {
>         > 
>         > @@ -81,6 +82,7 @@
>         >          DefaultNHttpServerConnection conn = new DefaultNHttpServerConnection(
>         >                  new LoggingIOSession(sslSession), 
>         >                  new DefaultHttpRequestFactory(),
>         > +                new HeapByteBufferAllocator(),
>         > 
>         >                  this.params); 
>         >          
>         >          session.setAttribute(NHTTP_CONN, conn);
>         > @@ -89,7 +91,7 @@
>         >          this.handler.connected(conn);
>         >  
>         >          try {
>         > -            sslSession.initialize
>         > (SSLMode.SERVER, this.params);
>         > +            sslSession.bind(SSLMode.SERVER, this.params);
>         >          } catch (SSLException ex) {
>         >              this.handler.exception(conn, ex);
>         >              sslSession.shutdown();
>         > 
>         > Index: modules/nhttp/src/org/apache/axis2/transport/nhttp/PlainServerIOEventDispatch.java
>         > ===================================================================
>         > --- modules/nhttp/src/org/apache/axis2/transport/nhttp/PlainServerIOEventDispatch.java
(revision 548631)
>         > 
>         > +++ modules/nhttp/src/org/apache/axis2/transport/nhttp/PlainServerIOEventDispatch.java
(working copy)
>         > @@ -23,6 +23,7 @@
>         >  import org.apache.http.nio.NHttpServiceHandler;
>         >  import org.apache.http.nio.reactor.IOEventDispatch
>         > ;
>         >  import org.apache.http.nio.reactor.IOSession;
>         > +import org.apache.http.nio.util.HeapByteBufferAllocator;
>         >  import org.apache.http.params.HttpParams;
>         >  
>         >  public class PlainServerIOEventDispatch implements IOEventDispatch {
>         > 
>         > @@ -47,9 +48,10 @@
>         >      
>         >      public void connected(final IOSession session) {
>         >          // Decorate I/O session with logging capabilities
>         > -        DefaultNHttpServerConnection conn = new DefaultNHttpServerConnection(
>         > 
>         > +        LoggingNHttpServerConnection conn = new LoggingNHttpServerConnection(
>         >                  new LoggingIOSession(session), 
>         >                  new DefaultHttpRequestFactory(),
>         > +                new HeapByteBufferAllocator(),
>         > 
>         >                  this.params); 
>         >          session.setAttribute(NHTTP_CONN, conn);
>         >          this.handler.connected(conn);
>         > Index: modules/nhttp/src/org/apache/axis2/transport/nhttp/SSLClientIOEventDispatch.java
>         > 
>         > ===================================================================
>         > --- modules/nhttp/src/org/apache/axis2/transport/nhttp/SSLClientIOEventDispatch.java
(revision 548631)
>         > +++ modules/nhttp/src/org/apache/axis2/transport/nhttp/SSLClientIOEventDispatch.java
(working copy)
>         > 
>         > @@ -31,6 +31,7 @@
>         >  import org.apache.http.nio.NHttpClientHandler;
>         >  import org.apache.http.nio.reactor.IOEventDispatch;
>         >  import org.apache.http.nio.reactor.IOSession;
>         > +import org.apache.http.nio.util.HeapByteBufferAllocator
>         > ;
>         >  import org.apache.http.params.HttpParams;
>         >  
>         >  public class SSLClientIOEventDispatch implements IOEventDispatch {
>         > @@ -81,6 +82,7 @@
>         >          DefaultNHttpClientConnection conn = new DefaultNHttpClientConnection(
>         > 
>         >                  new LoggingIOSession(sslSession), 
>         >                  new DefaultHttpResponseFactory(),
>         > +                new HeapByteBufferAllocator(),
>         >                  this.params); 
>         >          
>         >          
>         > session.setAttribute(NHTTP_CONN, conn);
>         > @@ -90,7 +92,7 @@
>         >          this.handler.connected(conn, attachment);
>         >  
>         >          try {
>         > -            sslSession.initialize(SSLMode.CLIENT, this.params);
>         > +            
>         > sslSession.bind(SSLMode.CLIENT, this.params);
>         >          } catch (SSLException ex) {
>         >              this.handler.exception(conn, ex);
>         >              sslSession.shutdown();
>         > Index: modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpServerConnection.java
>         > 
>         > ===================================================================
>         > --- modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpServerConnection.java
(revision 0)
>         > +++ modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpServerConnection.java
(revision 0)
>         > 
>         > @@ -0,0 +1,76 @@
>         > +/*
>         > + * $HeadURL$
>         > + * $Revision$
>         > + * $Date$
>         > + *
>         > + * ====================================================================
>         > + * 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.axis2.transport.nhttp;
>         > +
>         > +import java.io.IOException;
>         > +
>         > +import org.apache.commons.logging.Log;
>         > +import org.apache.commons.logging.LogFactory;
>         > +import org.apache.http.Header
>         > ;
>         > +import org.apache.http.HttpException;
>         > +import org.apache.http.HttpRequestFactory;
>         > +import org.apache.http.HttpResponse;
>         > +import org.apache.http.impl.nio.DefaultNHttpServerConnection;
>         > +import org.apache.http.nio.reactor.IOSession
>         > ;
>         > +import org.apache.http.nio.util.ByteBufferAllocator;
>         > +import org.apache.http.params.HttpParams;
>         > +
>         > +public class LoggingNHttpServerConnection extends DefaultNHttpServerConnection
{
>         > +
>         > +    private final Log log;
>         > 
>         > +    private final Log headerlog;
>         > +    
>         > +    public LoggingNHttpServerConnection(
>         > +            final IOSession session,
>         > +            final HttpRequestFactory requestFactory,
>         > +            final ByteBufferAllocator allocator,
>         > 
>         > +            final HttpParams params) {
>         > +        super(session, requestFactory, allocator, params);
>         > +        this.log = LogFactory.getLog(DefaultNHttpServerConnection.class);
>         > +        this.headerlog = LogFactory.getLog
>         > ("org.apache.axis2.transport.nhttp.headers");
>         > +    }
>         > +
>         > +    public void submitResponse(final HttpResponse response) throws IOException,
HttpException {
>         > +        if (this.log.isDebugEnabled()) {
>         > +            
>         > this.log.debug("HTTP connection " + this + ": "  + response.getStatusLine().toString());
>         > +        }
>         > +        super.submitResponse(response);
>         > +        if (this.headerlog.isDebugEnabled()) {
>         > 
>         > +            this.headerlog.debug("<< " + response.getStatusLine().toString());
>         > +            Header[] headers = response.getAllHeaders();
>         > +            for (int i = 0; i < headers.length; i++) {
>         > 
>         > +                this.headerlog.debug("<< " + headers[i].toString());
>         > +            }
>         > +        }
>         > +    }
>         > +    
>         > +}
>         > \ No newline at end of file
>         > 
>         > Property changes on: modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpServerConnection.java
>         > 
>         > ___________________________________________________________________
>         > Name: svn:mime-type
>         >    + text/plain
>         > Name: svn:keywords
>         >    + Date Author Id Revision HeadURL
>         > Name: svn:eol-style
>         >    + native
>         > 
>         > 
>         > Index: modules/nhttp/src/org/apache/axis2/transport/nhttp/ClientHandler.java
>         > ===================================================================
>         > --- modules/nhttp/src/org/apache/axis2/transport/nhttp/ClientHandler.java
(revision 548631)
>         > 
>         > +++ modules/nhttp/src/org/apache/axis2/transport/nhttp/ClientHandler.java
(working copy)
>         > @@ -23,6 +23,7 @@
>         >  import org.apache.http.nio.ContentDecoder;
>         >  import org.apache.http.nio.ContentEncoder;
>         >  import org.apache.http.params.HttpParams
>         > ;
>         > +import org.apache.http.params.HttpParamsLinker;
>         >  import org.apache.http.*;
>         >  import org.apache.http.entity.BasicHttpEntity;
>         >  import org.apache.http.impl.DefaultConnectionReuseStrategy;
>         > @@ -30,7 +31,6 @@
>         > 
>         >  import org.apache.axis2.context.ConfigurationContext;
>         >  import org.apache.axis2.context.MessageContext;
>         >  import org.apache.axis2.transport.nhttp.util.PipeImpl;
>         > -import org.apache.axis2.transport.nhttp.util.NativeWorkerPool
>         > ;
>         >  import org.apache.axis2.transport.nhttp.util.WorkerPool;
>         >  import org.apache.axis2.transport.nhttp.util.WorkerPoolFactory;
>         >  import org.apache.axis2.description.WSDL2Constants;
>         > @@ -124,7 +124,7 @@
>         >              
>         > context.setAttribute(REQUEST_SOURCE_CHANNEL, axis2Req.getSourceChannel());
>         >  
>         >              HttpRequest request = axis2Req.getRequest();
>         > -            request.getParams().setDefaults(this.params);
>         > +            HttpParamsLinker.link
>         > (request, this.params);
>         >              this.httpProcessor.process(request, context);
>         >  
>         >              conn.submitRequest(request);
>         > @@ -158,7 +158,7 @@
>         >              context.setAttribute(REQUEST_SOURCE_CHANNEL, axis2Req.getSourceChannel
>         > ());
>         >  
>         >              HttpRequest request = axis2Req.getRequest();
>         > -            request.getParams().setDefaults(this.params);
>         > +            HttpParamsLinker.link(request, this.params);
>         >              this.httpProcessor.process
>         > (request, context);
>         >  
>         >              conn.submitRequest(request);
>         > @@ -243,7 +243,6 @@
>         >       */
>         >      public void outputReady(final NHttpClientConnection conn, final ContentEncoder
encoder) {
>         >          HttpContext context = 
>         > conn.getContext();
>         > -        HttpResponse response = conn.getHttpResponse();
>         >  
>         >          ReadableByteChannel source = (ReadableByteChannel) context.getAttribute(REQUEST_SOURCE_CHANNEL);
>         >          ByteBuffer outbuf = (ByteBuffer) 
>         > context.getAttribute(RESPONSE_BUFFER);
>         > Index: modules/nhttp/src/org/apache/axis2/transport/nhttp/PlainClientIOEventDispatch.java
>         > ===================================================================
>         > --- modules/nhttp/src/org/apache/axis2/transport/nhttp/PlainClientIOEventDispatch.java
(revision 548631)
>         > 
>         > +++ modules/nhttp/src/org/apache/axis2/transport/nhttp/PlainClientIOEventDispatch.java
(working copy)
>         > @@ -23,6 +23,7 @@
>         >  import org.apache.http.nio.NHttpClientHandler;
>         >  import org.apache.http.nio.reactor.IOEventDispatch
>         > ;
>         >  import org.apache.http.nio.reactor.IOSession;
>         > +import org.apache.http.nio.util.HeapByteBufferAllocator;
>         >  import org.apache.http.params.HttpParams;
>         >  
>         >  public class PlainClientIOEventDispatch implements IOEventDispatch {
>         > 
>         > @@ -47,9 +48,10 @@
>         >      
>         >      public void connected(final IOSession session) {
>         >          // Decorate I/O session with logging capabilities
>         > -        DefaultNHttpClientConnection conn = new DefaultNHttpClientConnection(
>         > 
>         > +        LoggingNHttpClientConnection conn = new LoggingNHttpClientConnection(
>         >                  new LoggingIOSession(session), 
>         >                  new DefaultHttpResponseFactory(),
>         > +                new HeapByteBufferAllocator(),
>         > 
>         >                  this.params); 
>         >          session.setAttribute(NHTTP_CONN, conn);
>         >          
>         > Index: modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingIOSession.java
>         > ===================================================================
>         > 
>         > --- modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingIOSession.java
(revision 548631)
>         > +++ modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingIOSession.java
(working copy)
>         > @@ -22,6 +22,7 @@
>         >  import 
>         > java.net.SocketAddress;
>         >  import java.nio.ByteBuffer;
>         >  import java.nio.channels.ByteChannel;
>         > +import java.nio.channels.SelectionKey;
>         >  
>         >  import org.apache.commons.logging.Log;
>         >  import org.apache.commons.logging.LogFactory
>         > ;
>         > @@ -68,10 +69,29 @@
>         >          return this.session.getEventMask();
>         >      }
>         >  
>         > +    private static String formatOps(int ops) {
>         > +        StringBuffer buffer = new StringBuffer(6);
>         > +        buffer.append('[');
>         > 
>         > +        if ((ops & SelectionKey.OP_READ) > 0) {
>         > +            buffer.append('r');
>         > +        }
>         > +        if ((ops & SelectionKey.OP_WRITE) > 0) {
>         > +            buffer.append('w');
>         > 
>         > +        }
>         > +        if ((ops & SelectionKey.OP_ACCEPT) > 0) {
>         > +            buffer.append('a');
>         > +        }
>         > +        if ((ops & SelectionKey.OP_CONNECT) > 0) {
>         > +            buffer.append
>         > ('c');
>         > +        }
>         > +        buffer.append(']');
>         > +        return buffer.toString();
>         > +    }
>         > +    
>         >      public void setEventMask(int ops) {
>         >          if (this.log.isDebugEnabled()) {
>         >              
>         > this.log.debug("I/O session " + this.id + " " + this.session + ": Set event
mask " 
>         > -                    + ops);
>         > 
>         > +                    + formatOps(ops));
>         >          }
>         >          this.session.setEventMask(ops);
>         >      }
>         > @@ -79,7 +99,7 @@
>         >      public void setEvent(int op) {
>         >          if (this.log.isDebugEnabled()) {
>         >              
>         > this.log.debug("I/O session " + this.id + " " + this.session + ": Set event
" 
>         > -                    + op);
>         > 
>         > +                    + formatOps(op));
>         >          }
>         >          this.session.setEvent(op);
>         >      }
>         > @@ -87,7 +107,7 @@
>         >      public void clearEvent(int op) {
>         >          if (this.log.isDebugEnabled()) {
>         >              
>         > this.log.debug("I/O session " + this.id + " " + this.session + ": Clear
event " 
>         > -                    + op);
>         > 
>         > +                    + formatOps(op));
>         >          }
>         >          this.session.clearEvent(op);
>         >      }
>         > @@ -103,6 +123,13 @@
>         >          return this.session.isClosed();
>         >      }
>         >  
>         > +    public void shutdown() {
>         > 
>         > +        if (this.log.isDebugEnabled()) {
>         > +            this.log.debug("I/O session " + this.id + " " + 
>         > this.session + ": Shutdown");
>         > +        }
>         > +        this.session.shutdown();
>         > +    }
>         > +
>         >      public int getSocketTimeout() {
>         >          return this.session.getSocketTimeout();
>         >      }
>         > Index: modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpServiceHandler.java
>         > 
>         > ===================================================================
>         > --- modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpServiceHandler.java
(revision 548631)
>         > +++ modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpServiceHandler.java
(working copy)
>         > 
>         > @@ -22,6 +22,7 @@
>         >  
>         >  import org.apache.commons.logging.Log;
>         >  import org.apache.commons.logging.LogFactory;
>         > +import org.apache.http.Header;
>         >  import org.apache.http.HttpException;
>         >  import org.apache.http.HttpRequest
>         > ;
>         >  import org.apache.http.nio.ContentDecoder;
>         > @@ -36,6 +37,7 @@
>         >  public class LoggingNHttpServiceHandler implements NHttpServiceHandler
{
>         >  
>         >      private final Log log;
>         > +    private final Log headerlog;
>         > 
>         >      private final NHttpServiceHandler handler;
>         >      
>         >      public LoggingNHttpServiceHandler(final NHttpServiceHandler handler)
{
>         > @@ -45,6 +47,7 @@
>         >          }
>         >          this.handler = handler;
>         >          this.log
>         >  = LogFactory.getLog(handler.getClass());
>         > +        this.headerlog = LogFactory.getLog("org.apache.axis2.transport.nhttp.headers");
>         >      }
>         >      
>         >      public void connected(final NHttpServerConnection conn) {
>         > 
>         > @@ -62,31 +65,28 @@
>         >      }
>         >  
>         >      public void exception(final NHttpServerConnection conn, final IOException
ex) {
>         > -        if (ex.getMessage().indexOf("Connection reset") != -1 ||
>         > -            
>         > ex.getMessage().indexOf("forcibly closed")  != -1) {
>         > -            this.log.warn("HTTP connection " + conn + ": " + ex.getMessage());
>         > -        } else {
>         > -            this.log.error("HTTP connection " + conn + ": " + 
>         > ex.getMessage(), ex);
>         > -        }
>         > +        this.log.error("HTTP connection " + conn + ": " + ex.getMessage(),
ex);
>         >          this.handler.exception(conn, ex);
>         >      }
>         >  
>         >      public void exception(final NHttpServerConnection conn, final HttpException
ex) {
>         > 
>         > -        if (ex.getMessage().contains("Connection reset") ||
>         > -            ex.getMessage().contains("forcibly closed")) {
>         > -            this.log.warn("HTTP connection " + conn + ": " + 
>         > ex.getMessage());
>         > -        } else {
>         > -            this.log.error("HTTP connection " + conn + ": " + ex.getMessage(),
ex);
>         > -        }
>         > +        this.log.error("HTTP connection " + conn + ": " + 
>         > ex.getMessage(), ex);
>         >          this.handler.exception(conn, ex);
>         >      }
>         >  
>         >      public void requestReceived(final NHttpServerConnection conn) {
>         > +        HttpRequest request = conn.getHttpRequest();
>         >          if (
>         > this.log.isDebugEnabled()) {
>         > -            HttpRequest request = conn.getHttpRequest();
>         >              this.log.debug("HTTP connection " + conn + ": " + request.getRequestLine());
>         >          }
>         >          
>         > this.handler.requestReceived(conn);
>         > +        if (this.headerlog.isDebugEnabled()) {
>         > +            this.headerlog.debug(">> " + request.getRequestLine().toString());
>         > +            Header[] headers = 
>         > request.getAllHeaders();
>         > +            for (int i = 0; i < headers.length; i++) {
>         > +                this.headerlog.debug(">> " + headers[i].toString());
>         > +            }
>         > +        }
>         >      }
>         > 
>         >  
>         >      public void outputReady(final NHttpServerConnection conn, final ContentEncoder
encoder) {
>         > Index: modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpClientConnection.java
>         > ===================================================================
>         > 
>         > --- modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpClientConnection.java
(revision 0)
>         > +++ modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpClientConnection.java
(revision 0)
>         > @@ -0,0 +1,76 @@
>         > 
>         > +/*
>         > + * $HeadURL$
>         > + * $Revision$
>         > + * $Date$
>         > + *
>         > + * ====================================================================
>         > + * 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.axis2.transport.nhttp;
>         > +
>         > +import java.io.IOException;
>         > +
>         > +import org.apache.commons.logging.Log;
>         > +import org.apache.commons.logging.LogFactory;
>         > +import org.apache.http.Header
>         > ;
>         > +import org.apache.http.HttpException;
>         > +import org.apache.http.HttpRequest;
>         > +import org.apache.http.HttpResponseFactory;
>         > +import org.apache.http.impl.nio.DefaultNHttpClientConnection;
>         > +import org.apache.http.nio.reactor.IOSession
>         > ;
>         > +import org.apache.http.nio.util.ByteBufferAllocator;
>         > +import org.apache.http.params.HttpParams;
>         > +
>         > +public class LoggingNHttpClientConnection extends DefaultNHttpClientConnection
{
>         > +
>         > +    private final Log log;
>         > 
>         > +    private final Log headerlog;
>         > +    
>         > +    public LoggingNHttpClientConnection(
>         > +            final IOSession session,
>         > +            final HttpResponseFactory responseFactory,
>         > +            final ByteBufferAllocator allocator,
>         > 
>         > +            final HttpParams params) {
>         > +        super(session, responseFactory, allocator, params);
>         > +        this.log = LogFactory.getLog(DefaultNHttpClientConnection.class);
>         > +        this.headerlog = LogFactory.getLog
>         > ("org.apache.axis2.transport.nhttp.headers");
>         > +    }
>         > +
>         > +    public void submitRequest(final HttpRequest request) throws IOException,
HttpException {
>         > +        if (this.log.isDebugEnabled()) {
>         > +            
>         > this.log.debug("HTTP connection " + this + ": "  + request.getRequestLine().toString());
>         > +        }
>         > +        super.submitRequest(request);
>         > +        if (this.headerlog.isDebugEnabled()) {
>         > +            
>         > this.headerlog.debug(">> " + request.getRequestLine().toString());
>         > +            Header[] headers = request.getAllHeaders();
>         > +            for (int i = 0; i < headers.length; i++) {
>         > +                
>         > this.headerlog.debug(">> " + headers[i].toString());
>         > +            }
>         > +        }
>         > +    }
>         > +    
>         > +}
>         > \ No newline at end of file
>         > 
>         > Property changes on: modules/nhttp/src/org/apache/axis2/transport/nhttp/LoggingNHttpClientConnection.java
>         > 
>         > ___________________________________________________________________
>         > Name: svn:mime-type
>         >    + text/plain
>         > Name: svn:keywords
>         >    + Date Author Id Revision HeadURL
>         > Name: svn:eol-style
>         >    + native
>         > 
>         > 
>         > Index: pom.xml
>         > ===================================================================
>         > --- pom.xml	(revision 548631)
>         > +++ pom.xml	(working copy)
>         > @@ -306,7 +306,7 @@
>         >  
>         >              <dependency>
>         >                  <groupId>
>         > org.apache.httpcomponents</groupId>
>         > -                <artifactId>jakarta-httpcore</artifactId>
>         > +                <artifactId>httpcore</artifactId>
>         >                  <version>${jakarta.httpcore.nio.version
>         > }</version>
>         >              </dependency>
>         >  
>         > @@ -585,17 +585,17 @@
>         >          <!-- dependencies for nhttp transport -->
>         >          <dependency>
>         >              <groupId>org.apache.httpcomponents
>         > </groupId>
>         > -            <artifactId>jakarta-httpcore</artifactId>
>         > +            <artifactId>httpcore</artifactId>
>         >              <version>${jakarta.httpcore.nio.version}</version>
>         > 
>         >          </dependency>
>         >          <dependency>
>         >              <groupId>org.apache.httpcomponents</groupId>
>         > -            <artifactId>jakarta-httpcore-nio</artifactId>
>         > +            <artifactId>httpcore-nio</artifactId>
>         > 
>         >              <version>${jakarta.httpcore.nio.version}</version>
>         >          </dependency>
>         >          <dependency>
>         >              <groupId>org.apache.httpcomponents</groupId>
>         > -            <artifactId>jakarta-httpcore-niossl</artifactId>
>         > 
>         > +            <artifactId>httpcore-niossl</artifactId>
>         >              <version>${jakarta.httpcore.nio.version}</version>
>         >          </dependency>
>         >  
>         > @@ -728,7 +728,7 @@
>         >      <properties>
>         > 
>         >          <!-- Synapse and related components -->
>         >          <synapse.version>1.0-RC2-SNAPSHOT</synapse.version>
>         > -        <jakarta.httpcore.nio.version>4.0-alpha4</jakarta.httpcore.nio.version>
>         > 
>         > +        <jakarta.httpcore.nio.version>4.0-alpha5-SNAPSHOT</jakarta.httpcore.nio.version>
>         >  
>         >          <!-- Axis2 1.2 and its dependencies -->
>         >          <axis2.version>1.2</axis2.version>
>         > 
>         > 
>         >   
>         > 
>         > ____________________________________________________________
>         > 
>         > ---------------------------------------------------------------------
>         > To unsubscribe, e-mail: 
>         > synapse-dev-unsubscribe@ws.apache.org
>         > For additional commands, e-mail: synapse-dev-help@ws.apache.org
>         --------------------------------------------------------------------- To unsubscribe,
e-mail: synapse-dev-unsubscribe@ws.apache.org For additional commands, e-mail: synapse-dev-help@ws.apache.org
> 
> 
> 
> -- 
> Ruwan Linton
> http://www.wso2.org - "Oxygenating the Web Services Platform"


---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org


Mime
View raw message