You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by Oleg Kalnichevski <ol...@apache.org> on 2007/06/19 11:33:25 UTC
[PATCH] Upgrades Synapse NHttp to HttpCore 4.0-ALPHA5-SNAPSHOT,
improves logging
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
Re: [PATCH] Upgrades Synapse NHttp to HttpCore 4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Paul Fremantle <pz...@gmail.com>.
Thanks!!!!
Paul
On 6/19/07, Oleg Kalnichevski <ol...@apache.org> 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
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: synapse-dev-help@ws.apache.org
>
>
--
Paul Fremantle
Co-Founder and VP of Technical Sales, WSO2
OASIS WS-RX TC Co-chair
blog: http://pzf.fremantle.org
paul@wso2.com
"Oxygenating the Web Service Platform", www.wso2.com
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org
Re: [PATCH] Upgrades Synapse NHttp to HttpCore 4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Davanum Srinivas <da...@gmail.com>.
Perfect! thanks.
-- dims
On 6/25/07, Oleg Kalnichevski <ol...@apache.org> wrote:
> On Mon, 2007-06-25 at 09:39 -0400, Davanum Srinivas wrote:
> > Sounds good. Any ETA on HttpCore 4.0a5?
> >
>
> It is essentially just a matter of calling a release vote. But given all
> the mess currently going on in Jakarta getting releases out the door in
> a timely manner was somewhat painful lately. Provided everything goes
> well, an official release sometime toward mid next week is quite likely.
>
> Cheers
>
> Oleg
>
> > thanks,
> > dims
> >
> > On 6/25/07, Oleg Kalnichevski <ol...@apache.org> wrote:
> > > On Mon, 2007-06-25 at 09:19 -0400, Davanum Srinivas wrote:
> > > > Ruwan,
> > > >
> > > > Can you please make appropriate changes in axis2 as well?
> > > >
> > > > thanks,
> > > > dims
> > > >
> > >
> > > Davanum,
> > >
> > > The process of upgrading Axis2 is going to be a little more complex
> > > because this would also require some tweaks changes in SimpleHttpServer,
> > > which is also dependent on HttpCore.
> > >
> > > I'll submit a patch for Axis2 upgrading both the 'simple' and the NIO
> > > transports at the same time as soon as HttpCore 4.0a5 is officially out.
> > >
> > > Does this work for you?
> > >
> > > Oleg
> > >
> > >
> > > > On 6/25/07, Ruwan Linton <ru...@gmail.com> wrote:
> > > > >
> > > > >
> > > > > On 6/25/07, Oleg Kalnichevski <ol...@apache.org> wrote:
> > > > > > 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.
> > > > > >
> > > > >
> > > > > You are more than welcome. Congratulations for the coming release.
> > > > >
> > > > > Ruwan.
> > > > >
> > > > > > 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 <as...@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 = hand
> > > > > ...
> > > > >
> > > > > [Message clipped]
> > > >
> > > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > 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
>
>
--
Davanum Srinivas :: http://davanum.wordpress.com
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org
Re: [PATCH] Upgrades Synapse NHttp to HttpCore
4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Mon, 2007-06-25 at 09:39 -0400, Davanum Srinivas wrote:
> Sounds good. Any ETA on HttpCore 4.0a5?
>
It is essentially just a matter of calling a release vote. But given all
the mess currently going on in Jakarta getting releases out the door in
a timely manner was somewhat painful lately. Provided everything goes
well, an official release sometime toward mid next week is quite likely.
Cheers
Oleg
> thanks,
> dims
>
> On 6/25/07, Oleg Kalnichevski <ol...@apache.org> wrote:
> > On Mon, 2007-06-25 at 09:19 -0400, Davanum Srinivas wrote:
> > > Ruwan,
> > >
> > > Can you please make appropriate changes in axis2 as well?
> > >
> > > thanks,
> > > dims
> > >
> >
> > Davanum,
> >
> > The process of upgrading Axis2 is going to be a little more complex
> > because this would also require some tweaks changes in SimpleHttpServer,
> > which is also dependent on HttpCore.
> >
> > I'll submit a patch for Axis2 upgrading both the 'simple' and the NIO
> > transports at the same time as soon as HttpCore 4.0a5 is officially out.
> >
> > Does this work for you?
> >
> > Oleg
> >
> >
> > > On 6/25/07, Ruwan Linton <ru...@gmail.com> wrote:
> > > >
> > > >
> > > > On 6/25/07, Oleg Kalnichevski <ol...@apache.org> wrote:
> > > > > 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.
> > > > >
> > > >
> > > > You are more than welcome. Congratulations for the coming release.
> > > >
> > > > Ruwan.
> > > >
> > > > > 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 <as...@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 = hand
> > > > ...
> > > >
> > > > [Message clipped]
> > >
> > >
> >
> >
> > ---------------------------------------------------------------------
> > 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
Re: [PATCH] Upgrades Synapse NHttp to HttpCore 4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Davanum Srinivas <da...@gmail.com>.
Sounds good. Any ETA on HttpCore 4.0a5?
thanks,
dims
On 6/25/07, Oleg Kalnichevski <ol...@apache.org> wrote:
> On Mon, 2007-06-25 at 09:19 -0400, Davanum Srinivas wrote:
> > Ruwan,
> >
> > Can you please make appropriate changes in axis2 as well?
> >
> > thanks,
> > dims
> >
>
> Davanum,
>
> The process of upgrading Axis2 is going to be a little more complex
> because this would also require some tweaks changes in SimpleHttpServer,
> which is also dependent on HttpCore.
>
> I'll submit a patch for Axis2 upgrading both the 'simple' and the NIO
> transports at the same time as soon as HttpCore 4.0a5 is officially out.
>
> Does this work for you?
>
> Oleg
>
>
> > On 6/25/07, Ruwan Linton <ru...@gmail.com> wrote:
> > >
> > >
> > > On 6/25/07, Oleg Kalnichevski <ol...@apache.org> wrote:
> > > > 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.
> > > >
> > >
> > > You are more than welcome. Congratulations for the coming release.
> > >
> > > Ruwan.
> > >
> > > > 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 <as...@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 = hand
> > > ...
> > >
> > > [Message clipped]
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: synapse-dev-help@ws.apache.org
>
>
--
Davanum Srinivas :: http://davanum.wordpress.com
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org
Re: [PATCH] Upgrades Synapse NHttp to HttpCore
4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Mon, 2007-06-25 at 09:19 -0400, Davanum Srinivas wrote:
> Ruwan,
>
> Can you please make appropriate changes in axis2 as well?
>
> thanks,
> dims
>
Davanum,
The process of upgrading Axis2 is going to be a little more complex
because this would also require some tweaks changes in SimpleHttpServer,
which is also dependent on HttpCore.
I'll submit a patch for Axis2 upgrading both the 'simple' and the NIO
transports at the same time as soon as HttpCore 4.0a5 is officially out.
Does this work for you?
Oleg
> On 6/25/07, Ruwan Linton <ru...@gmail.com> wrote:
> >
> >
> > On 6/25/07, Oleg Kalnichevski <ol...@apache.org> wrote:
> > > 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.
> > >
> >
> > You are more than welcome. Congratulations for the coming release.
> >
> > Ruwan.
> >
> > > 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 <as...@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 = hand
> > ...
> >
> > [Message clipped]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org
Re: [PATCH] Upgrades Synapse NHttp to HttpCore 4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Davanum Srinivas <da...@gmail.com>.
Ruwan,
Can you please make appropriate changes in axis2 as well?
thanks,
dims
On 6/25/07, Ruwan Linton <ru...@gmail.com> wrote:
>
>
> On 6/25/07, Oleg Kalnichevski <ol...@apache.org> wrote:
> > 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.
> >
>
> You are more than welcome. Congratulations for the coming release.
>
> Ruwan.
>
> > 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 <as...@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 = hand
> ...
>
> [Message clipped]
--
Davanum Srinivas :: http://davanum.wordpress.com
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org
Re: [PATCH] Upgrades Synapse NHttp to HttpCore 4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Davanum Srinivas <da...@gmail.com>.
Ruwan,
Can you please make appropriate changes in axis2 as well?
thanks,
dims
On 6/25/07, Ruwan Linton <ru...@gmail.com> wrote:
>
>
> On 6/25/07, Oleg Kalnichevski <ol...@apache.org> wrote:
> > 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.
> >
>
> You are more than welcome. Congratulations for the coming release.
>
> Ruwan.
>
> > 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 <as...@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 = hand
> ...
>
> [Message clipped]
--
Davanum Srinivas :: http://davanum.wordpress.com
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org
Re: [PATCH] Upgrades Synapse NHttp to HttpCore 4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Ruwan Linton <ru...@gmail.com>.
On 6/25/07, Oleg Kalnichevski <ol...@apache.org> wrote:
>
> 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.
>
You are more than welcome. Congratulations for the coming release.
Ruwan.
Cheers
>
> Oleg
>
> > On 6/21/07, Oleg Kalnichevski <ol...@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 <as...@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
>
>
--
Ruwan Linton
http://www.wso2.org - "Oxygenating the Web Services Platform"
Re: [PATCH] Upgrades Synapse NHttp to HttpCore
4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Oleg Kalnichevski <ol...@apache.org>.
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 <ol...@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 <as...@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
Re: [PATCH] Upgrades Synapse NHttp to HttpCore 4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Ruwan Linton <ru...@gmail.com>.
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.
On 6/21/07, Oleg Kalnichevski <ol...@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 <as...@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"
Re: [PATCH] Upgrades Synapse NHttp to HttpCore
4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Oleg Kalnichevski <ol...@apache.org>.
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 <as...@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
Re: [PATCH] Upgrades Synapse NHttp to HttpCore 4.0-ALPHA5-SNAPSHOT, improves logging
Posted by Ruwan Linton <ru...@gmail.com>.
Yes asankha,
I will be able to run some load tests and check this.
Oleg, I will get back to you ASAP,
Thanks,
Ruwan.
On 6/20/07, Asankha C. Perera <as...@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/> <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/> <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"