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 Mon, 25 Jun 2007 08:11:31 GMT
On Mon, 2007-06-25 at 11:44 +0530, Ruwan Linton wrote:
> Hi Oleg,
> 
> I am done with the performance tests. I think now synapse is a little
> bit faster than earlier.
> 
> No issues with the new version and I have applied the patch.
> 
> Thanks,
> Ruwan.
> 

Great! Many thanks, Ruwan. We will go ahead with the release.

Cheers

Oleg

> On 6/21/07, Oleg Kalnichevski <olegk@apache.org> wrote:
>         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
>         
> 
> 
> 
> -- 
> 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