some doco and cleanup

git-svn-id: https://svn.apache.org/repos/asf/mina/asyncweb/trunk@615672 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/common/src/main/java/org/apache/asyncweb/common/HttpCodecFactory.java b/common/src/main/java/org/apache/asyncweb/common/HttpCodecFactory.java
index 6b021ac..211d502 100644
--- a/common/src/main/java/org/apache/asyncweb/common/HttpCodecFactory.java
+++ b/common/src/main/java/org/apache/asyncweb/common/HttpCodecFactory.java
@@ -19,35 +19,58 @@
  */
 package org.apache.asyncweb.common;
 
+
 import org.apache.mina.common.IoAcceptor;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.filter.codec.ProtocolCodecFactory;
 import org.apache.mina.filter.codec.ProtocolDecoder;
 import org.apache.mina.filter.codec.ProtocolEncoder;
 
+
 /**
- * TODO HttpProtocolCodecFactory.
+ * A codec factory which creates new encoders and decoders for HTTP requests
+ * and responses, depending on the type of the IoService.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
  */
-public class HttpCodecFactory implements ProtocolCodecFactory {
-
-    public HttpCodecFactory() {
-    }
-
-    public ProtocolEncoder getEncoder(IoSession session) throws Exception {
-        if (session.getService() instanceof IoAcceptor) {
+public class HttpCodecFactory implements ProtocolCodecFactory
+{
+    /**
+     * Gets an HttpResponseEncoder if the IoService is an acceptor for a
+     * server, or an HttpRequestEncoder if the IoService is a connector for a
+     * client.
+     *
+     * @see ProtocolCodecFactory#getEncoder(IoSession)
+     */
+    public ProtocolEncoder getEncoder( IoSession session ) throws Exception
+    {
+        if ( session.getService() instanceof IoAcceptor )
+        {
             return new HttpResponseEncoder();
-        } else {
+        }
+        else
+        {
             return new HttpRequestEncoder();
         }
     }
 
-    public ProtocolDecoder getDecoder(IoSession session) throws Exception {
-        if (session.getService() instanceof IoAcceptor) {
+
+    /**
+     * Gets an HttpRequestDecoder if the IoService is an acceptor for a
+     * server, or an HttpResponseDecoder if the IoService is a connector for a
+     * client.
+     *
+     * @see ProtocolCodecFactory#getDecoder(IoSession)
+     */
+    public ProtocolDecoder getDecoder( IoSession session ) throws Exception
+    {
+        if ( session.getService() instanceof IoAcceptor )
+        {
             return new HttpRequestDecoder();
-        } else {
+        }
+        else
+        {
             return new HttpResponseDecoder();
         }
     }
diff --git a/common/src/main/java/org/apache/asyncweb/common/HttpRequestDecoder.java b/common/src/main/java/org/apache/asyncweb/common/HttpRequestDecoder.java
index 1207002..c49f212 100644
--- a/common/src/main/java/org/apache/asyncweb/common/HttpRequestDecoder.java
+++ b/common/src/main/java/org/apache/asyncweb/common/HttpRequestDecoder.java
@@ -19,24 +19,33 @@
  */
 package org.apache.asyncweb.common;
 
+
 import java.util.List;
 
 import org.apache.mina.filter.codec.ProtocolDecoderOutput;
 import org.apache.mina.filter.codec.statemachine.DecodingState;
 import org.apache.mina.filter.codec.statemachine.DecodingStateProtocolDecoder;
 
+
 /**
+ * An HttpRequest decoder.
+ *
  * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
  */
-public class HttpRequestDecoder extends DecodingStateProtocolDecoder {
-    public HttpRequestDecoder() {
-        super(new HttpRequestDecodingState() {
+public class HttpRequestDecoder extends DecodingStateProtocolDecoder
+{
+    public HttpRequestDecoder()
+    {
+        super( new HttpRequestDecodingState()
+        {
             @Override
             protected DecodingState finishDecode(List<Object> childProducts,
-                    ProtocolDecoderOutput out) throws Exception {
-                for (Object m: childProducts) {
-                    out.write(m);
+                    ProtocolDecoderOutput out) throws Exception
+            {
+                for ( Object m: childProducts )
+                {
+                    out.write( m );
                 }
                 return null;
             }
diff --git a/server/src/main/java/org/apache/asyncweb/server/transport/mina/DefaultHttpIoHandler.java b/server/src/main/java/org/apache/asyncweb/server/transport/mina/DefaultHttpIoHandler.java
index bd5fee1..9ef40f1 100644
--- a/server/src/main/java/org/apache/asyncweb/server/transport/mina/DefaultHttpIoHandler.java
+++ b/server/src/main/java/org/apache/asyncweb/server/transport/mina/DefaultHttpIoHandler.java
@@ -19,43 +19,57 @@
  */
 package org.apache.asyncweb.server.transport.mina;
 
+
 import org.apache.mina.common.IoSession;
 import org.apache.mina.handler.multiton.SingleSessionIoHandler;
 import org.apache.mina.handler.multiton.SingleSessionIoHandlerDelegate;
 import org.apache.mina.handler.multiton.SingleSessionIoHandlerFactory;
 import org.apache.asyncweb.server.ServiceContainer;
 
+
 /**
- * @author trustin
+ * The default HttpIoHandler used when one is not provided.
+ *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
  */
-public class DefaultHttpIoHandler extends SingleSessionIoHandlerDelegate
-        implements HttpIoHandler {
-
-    public DefaultHttpIoHandler() {
-        super(new Factory());
+public class DefaultHttpIoHandler extends SingleSessionIoHandlerDelegate implements HttpIoHandler
+{
+    public DefaultHttpIoHandler()
+    {
+        super( new Factory() );
     }
 
-    public ServiceContainer getContainer() {
-        return ((Factory) getFactory()).getContainer();
+
+    public ServiceContainer getContainer()
+    {
+        return ( ( Factory ) getFactory() ).getContainer();
     }
 
-    public void setContainer(ServiceContainer container) {
-        ((Factory) getFactory()).setContainer(container);
+
+    public void setContainer( ServiceContainer container )
+    {
+        ( ( Factory ) getFactory() ).setContainer( container );
     }
 
-    private static class Factory implements SingleSessionIoHandlerFactory {
+
+    private static class Factory implements SingleSessionIoHandlerFactory
+    {
         private ServiceContainer container;
 
-        public ServiceContainer getContainer() {
+        public ServiceContainer getContainer()
+        {
             return container;
         }
 
-        public void setContainer(ServiceContainer container) {
+        public void setContainer( ServiceContainer container )
+        {
             this.container = container;
         }
 
-        public SingleSessionIoHandler getHandler(IoSession session) {
-            return new SingleHttpSessionIoHandler(container, session);
+        public SingleSessionIoHandler getHandler( IoSession session )
+        {
+            return new SingleHttpSessionIoHandler( container, session );
         }
     }
 }
diff --git a/server/src/main/java/org/apache/asyncweb/server/transport/mina/HttpIoHandler.java b/server/src/main/java/org/apache/asyncweb/server/transport/mina/HttpIoHandler.java
index d4c65fd..2ac81fe 100644
--- a/server/src/main/java/org/apache/asyncweb/server/transport/mina/HttpIoHandler.java
+++ b/server/src/main/java/org/apache/asyncweb/server/transport/mina/HttpIoHandler.java
@@ -19,16 +19,24 @@
  */
 package org.apache.asyncweb.server.transport.mina;
 
+
 import org.apache.mina.common.IoHandler;
 import org.apache.asyncweb.server.ServiceContainer;
 
-public interface HttpIoHandler extends IoHandler {
 
+/**
+ * IO handler extension for HTTP.
+ *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
+ */
+public interface HttpIoHandler extends IoHandler 
+{
     /**
      * Associates this handler with the container it should dispatch requests
-     * to
+     * to.
      *
-     * @param container  The associated container
+     * @param container the associated container
      */
-    void setContainer( ServiceContainer container);
+    void setContainer( ServiceContainer container );
 }
diff --git a/server/src/main/java/org/apache/asyncweb/server/transport/mina/MinaTransport.java b/server/src/main/java/org/apache/asyncweb/server/transport/mina/MinaTransport.java
index e4e3d02..09c3a29 100644
--- a/server/src/main/java/org/apache/asyncweb/server/transport/mina/MinaTransport.java
+++ b/server/src/main/java/org/apache/asyncweb/server/transport/mina/MinaTransport.java
@@ -19,6 +19,7 @@
  */
 package org.apache.asyncweb.server.transport.mina;
 
+
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.util.concurrent.ExecutorService;
@@ -35,12 +36,13 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+
 /**
  * A <code>Transport</code> implementation which receives requests and sends
  * responses using non-blocking selector based IO.
  *
- * @author irvingd
- *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
  */
 public class MinaTransport implements Transport
 {
@@ -61,7 +63,7 @@
 
     private int port = DEFAULT_PORT;
 
-    private String address = null;
+    private String address;
 
     private int ioThreads = DEFAULT_IO_THREADS;
 
@@ -69,19 +71,22 @@
 
     private HttpIoHandler ioHandler;
 
-    private boolean isLoggingTraffic = false;
+    private boolean isLoggingTraffic;
 
     private ServiceContainer container;
 
+
     /**
      * Sets the port this transport will listen on
      *
      * @param port  The port
      */
-    public void setPort(int port) {
+    public void setPort( int port )
+    {
         this.port = port;
     }
 
+
     /**
      * Sets the address this transport will listen on
      *
@@ -89,17 +94,22 @@
      *                 Specify <tt>null</tt> or <tt>"*"</tt> to listen to all
      *                 NICs (Network Interface Cards).
      */
-    public void setAddress(String address) {
-        if ("*".equals(address)) {
+    public void setAddress( String address )
+    {
+        if ( "*".equals( address ) )
+        {
             address = null;
         }
         this.address = address;
     }
 
-    public int getIoThreads() {
+
+    public int getIoThreads()
+    {
         return ioThreads;
     }
 
+
     /**
      * Sets the number of worker threads employed by this transport.
      * This should typically be a small number (2 is a good choice) -
@@ -108,95 +118,120 @@
      *
      * @param ioThreads  The number of worker threads to employ
      */
-    public void setIoThreads(int ioThreads) {
+    public void setIoThreads( int ioThreads )
+    {
         this.ioThreads = ioThreads;
     }
 
-    public int getEventThreads() {
+
+    public int getEventThreads()
+    {
         return eventThreads;
     }
 
-    public void setEventThreads(int eventThreads) {
+
+    public void setEventThreads (int eventThreads )
+    {
         this.eventThreads = eventThreads;
     }
 
+
     /**
      * Sets whether traffic received through this transport is
      * logged (off by default)
      *
      * @param isLoggingTraffic  <code>true</code> iff traffic should be logged
      */
-    public void setIsLoggingTraffic(boolean isLoggingTraffic) {
+    public void setIsLoggingTraffic( boolean isLoggingTraffic )
+    {
         this.isLoggingTraffic = isLoggingTraffic;
     }
 
+
     /**
      * Sets the <code>ServiceContainer</code> to which we issue requests
      *
      * @param container  Our associated <code>ServiceContainer</code>
      */
-    public void setServiceContainer( ServiceContainer container) {
+    public void setServiceContainer( ServiceContainer container)
+    {
         this.container = container;
     }
 
+
     /**
      * Sets the <code>HttpIOHandler</code> to be employed by this transport
      *
      * @param httpIOHandler  The handler to be employed by this transport
      */
-    public void setIoHandler(HttpIoHandler httpIOHandler) {
+    public void setIoHandler( HttpIoHandler httpIOHandler )
+    {
         this.ioHandler = httpIOHandler;
     }
 
+
     /**
      * Starts this transport
      *
      * @throws TransportException  If the transport can not be started
      */
-    public void start() throws TransportException {
+    public void start() throws TransportException
+    {
         initIOHandler();
-        acceptor = new NioSocketAcceptor(ioThreads);
-        eventExecutor = new OrderedThreadPoolExecutor(this.eventThreads);
+        acceptor = new NioSocketAcceptor( ioThreads );
+        eventExecutor = new OrderedThreadPoolExecutor( this.eventThreads );
         
         boolean success = false;
         try {
-            acceptor.getFilterChain().addLast("threadPool",
-                    new ExecutorFilter(eventExecutor));
-            acceptor.setReuseAddress(true);
-            acceptor.getSessionConfig().setReuseAddress(true);
-            if (isLoggingTraffic) {
-                LOG.info("Configuring traffic logging filter");
+            acceptor.getFilterChain().addLast( "threadPool", new ExecutorFilter( eventExecutor ) );
+            acceptor.setReuseAddress( true );
+            acceptor.getSessionConfig().setReuseAddress( true );
+
+            if ( isLoggingTraffic )
+            {
+                LOG.info( "Configuring traffic logging filter" );
                 IoFilter filter = new LoggingFilter();
-                acceptor.getFilterChain().addFirst("LoggingFilter", filter);
+                acceptor.getFilterChain().addFirst( "LoggingFilter", filter );
             }
-            acceptor.setBacklog(100);
 
-            acceptor.setHandler(ioHandler);
+            // TODO make this configurable instead of hardcoding like this
+            acceptor.setBacklog( 100 );
+            acceptor.setHandler( ioHandler );
 
-            if (address != null) {
-                acceptor.bind(new InetSocketAddress(address, port));
-            } else {
-                acceptor.bind(new InetSocketAddress(port));
+            if ( address != null )
+            {
+                acceptor.bind( new InetSocketAddress( address, port ) );
+            }
+            else
+            {
+                acceptor.bind( new InetSocketAddress( port ) );
             }
             
             success = true;
-            LOG.info("NIO HTTP Transport bound on port " + port);
-        } catch (IOException e) {
-            throw new TransportException("NIOTransport Failed to bind to port "
-                    + port, e);
-        } finally {
-            if (!success) {
+            LOG.info( "NIO HTTP Transport bound on port " + port );
+        }
+        catch ( IOException e )
+        {
+            throw new TransportException( "NIOTransport Failed to bind to port " + port, e );
+        }
+        finally
+        {
+            if ( !success )
+            {
                 acceptor.dispose();
                 acceptor = null;
             }
         }
     }
 
+
     /**
      * Stops this transport
      */
-    public void stop() throws TransportException {
-        if (acceptor == null) {
+    public void stop() throws TransportException
+    {
+        if ( acceptor == null )
+        {
             return;
         }
 
@@ -206,14 +241,17 @@
         eventExecutor = null;
     }
 
+
     /**
      * @return A string representation of this transport
      */
     @Override
-    public String toString() {
+    public String toString()
+    {
         return "NIOTransport [port=" + port + "]";
     }
 
+
     /**
      * Initializes our handler - creating a new (default) handler if none has
      * been specified
@@ -221,15 +259,19 @@
      * @throws IllegalStateException If we have not yet been associated with a
      *                               container
      */
-    private void initIOHandler() {
-        if (ioHandler == null) {
-            LOG.info("No http IO Handler associated - using defaults");
+    private void initIOHandler()
+    {
+        if ( ioHandler == null ) 
+        {
+            LOG.info( "No http IO Handler associated - using defaults" );
             ioHandler = new DefaultHttpIoHandler();
         }
-        if (container == null) {
-            throw new IllegalStateException(
-                    "Transport not associated with a container");
+
+        if ( container == null )
+        {
+            throw new IllegalStateException( "Transport not associated with a container" );
         }
-        ioHandler.setContainer(container);
+
+        ioHandler.setContainer( container );
     }
 }
diff --git a/server/src/main/java/org/apache/asyncweb/server/transport/mina/SingleHttpSessionIoHandler.java b/server/src/main/java/org/apache/asyncweb/server/transport/mina/SingleHttpSessionIoHandler.java
index 9da129d..9227296 100644
--- a/server/src/main/java/org/apache/asyncweb/server/transport/mina/SingleHttpSessionIoHandler.java
+++ b/server/src/main/java/org/apache/asyncweb/server/transport/mina/SingleHttpSessionIoHandler.java
@@ -19,6 +19,7 @@
  */
 package org.apache.asyncweb.server.transport.mina;
 
+
 import java.io.IOException;
 import java.net.InetSocketAddress;
 
@@ -50,86 +51,91 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class SingleHttpSessionIoHandler implements SingleSessionIoHandler {
 
-    private static final Logger LOG = LoggerFactory
-            .getLogger(SingleHttpSessionIoHandler.class);
+public class SingleHttpSessionIoHandler implements SingleSessionIoHandler
+{
+    private static final Logger LOG = LoggerFactory.getLogger( SingleHttpSessionIoHandler.class );
 
-    /**
-     * The number of parsers we pre-allocate
-     */
-    //  private static final int DEFAULT_PARSERS = 5;
-    /**
-     * The default idle time
-     */
+    /** the default idle time */
     private static final int DEFAULT_IDLE_TIME = 30000;
 
-    /**
-     * Out default pipeline
-     */
+    /** out default pipeline */
     private static final int DEFAULT_PIPELINE = 100;
 
+    /** the HttpService container **/
     private final ServiceContainer container;
 
+    /** the session bound to this single session handler */
     protected final IoSession session;
 
+    /** the request pipeline */
     private final RequestPipeline pipeline;
 
+    /** the current context being processed */
     private HttpServiceContext currentContext;
 
+    /** idle time for request reads */
     private int readIdleTime = DEFAULT_IDLE_TIME;
 
-    public SingleHttpSessionIoHandler( ServiceContainer container, IoSession session) {
+
+    public SingleHttpSessionIoHandler( ServiceContainer container, IoSession session )
+    {
         this.container = container;
         this.session = session;
-        this.pipeline = new StandardRequestPipeline(DEFAULT_PIPELINE);
+        this.pipeline = new StandardRequestPipeline( DEFAULT_PIPELINE );
 
-        session.getConfig().setIdleTime(IdleStatus.READER_IDLE, readIdleTime);
-
-        session.getFilterChain().addLast("codec",
-                new ProtocolCodecFilter(new HttpCodecFactory()));
-
-        session.getFilterChain().addLast("converter", new ContextConverter());
-
-        session.getFilterChain().addLast("pipeline",
-                new RequestPipelineAdapter(pipeline));
+        session.getConfig().setIdleTime( IdleStatus.READER_IDLE, readIdleTime );
+        session.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new HttpCodecFactory() ) );
+        session.getFilterChain().addLast( "converter", new ContextConverter() );
+        session.getFilterChain().addLast( "pipeline", new RequestPipelineAdapter( pipeline ) );
 
         int i = 0;
-        for (HttpServiceFilter serviceFilter : container.getServiceFilters()) {
-            session.getFilterChain().addLast("serviceFilter." + i++,
-                    new ServiceFilterAdapter(serviceFilter));
+        for ( HttpServiceFilter serviceFilter : container.getServiceFilters() )
+        {
+            session.getFilterChain().addLast( "serviceFilter." + i++, new ServiceFilterAdapter( serviceFilter ) );
         }
     }
 
-    public void sessionCreated() {
+
+    public void sessionCreated()
+    {
+        LOG.info( "Session created" );
     }
 
-    public void sessionOpened() {
-        LOG.info("Connection opened");
+
+    public void sessionOpened()
+    {
+        LOG.info( "Connection opened" );
     }
 
-    public void sessionClosed() {
-        LOG.info("Connection closed");
+
+    public void sessionClosed()
+    {
+        LOG.info( "Connection closed" );
     }
 
+
     /**
      * Invoked when this connection idles out.
      * If we are in the process of parsing a request, the current request
      * is rejected with a {@link HttpResponseStatus#REQUEST_TIMEOUT} response status.
-     *
      */
-    public void sessionIdle(IdleStatus idleType) {
-        if (session.getIdleCount(idleType) == 1) {
+    public void sessionIdle( IdleStatus idleType )
+    {
+        if ( session.getIdleCount( idleType ) == 1 )
+        {
             //      // FIXME currentRequest is always null now; we need to cooperate with a decoder.
             //      if (currentContext != null) {
             //        LOG.info("Read idled out while parsing request. Scheduling timeout response");
             //        handleReadFailure(currentContext, HttpResponseStatus.REQUEST_TIMEOUT, "Timeout while reading request");
             //      } else {
-            LOG
-                    .info("Idled with no current request. Scheduling closure when pipeline empties");
-            pipeline.runWhenEmpty(new Runnable() {
-                public void run() {
-                    LOG.info("Pipeline empty after idle. Closing session");
+            LOG.info( "Idled with no current request. Scheduling closure when pipeline empties" );
+
+            pipeline.runWhenEmpty( new Runnable()
+            {
+                public void run()
+                {
+                    LOG.info( "Pipeline empty after idle. Closing session" );
                     session.close();
                 }
             });
@@ -137,40 +143,57 @@
         }
     }
 
-    public void exceptionCaught(Throwable cause) {
+
+    public void exceptionCaught( Throwable cause )
+    {
         MutableHttpResponse response = null;
-        if (cause instanceof ProtocolDecoderException) {
+
+        if ( cause instanceof ProtocolDecoderException )
+        {
             HttpResponseStatus status;
-            if (cause instanceof HttpRequestDecoderException) {
-                status = ((HttpRequestDecoderException) cause).getResponseStatus();
-            } else {
+
+            if ( cause instanceof HttpRequestDecoderException )
+            {
+                status = ( ( HttpRequestDecoderException ) cause ).getResponseStatus();
+            }
+            else
+            {
                 status = HttpResponseStatus.BAD_REQUEST;
             }
 
-            LOG.warn("Bad request:", cause);
+            LOG.warn( "Bad request:", cause );
 
             response = new DefaultHttpResponse();
-            response.setProtocolVersion(HttpVersion.HTTP_1_1);
-            response.setStatus(status);
-        } else if (cause instanceof IOException) {
-            LOG.warn("IOException on HTTP connection", cause);
-            session.close();
-        } else {
-            response = new DefaultHttpResponse();
-            response.setProtocolVersion(HttpVersion.HTTP_1_1);
-            response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
-            LOG.warn("Unexpected exception from a service.", cause);
+            response.setProtocolVersion( HttpVersion.HTTP_1_1 );
+            response.setStatus( status );
         }
-        if (response != null) {
+        else if ( cause instanceof IOException )
+        {
+            LOG.warn( "IOException on HTTP connection", cause );
+            session.close();
+        }
+        else
+        {
+            response = new DefaultHttpResponse();
+            response.setProtocolVersion( HttpVersion.HTTP_1_1 );
+            response.setStatus( HttpResponseStatus.INTERNAL_SERVER_ERROR );
+            LOG.error( "Unexpected exception from a service.", cause );
+        }
+
+        if ( response != null )
+        {
             HttpServiceContext context = this.currentContext;
-            if (context == null) {
-                context = createContext(new DefaultHttpRequest());
+            if ( context == null )
+            {
+                context = createContext( new DefaultHttpRequest() );
             }
-            context.commitResponse(response);
+            context.commitResponse( response );
         }
     }
 
-    public void messageReceived(Object message) {
+
+    public void messageReceived( Object message )
+    {
         // FIXME messageReceived invoked only when whole message is built.
 
         // When headers were built
@@ -179,26 +202,31 @@
         // When body has been built
     }
 
+
     /**
      * Invoked when we fail to parse an incoming request.
      * We configure our parser to discard any further data received from the client,
      * and schedule a response with the appropriate failure code for the
      * current request
      *
-     * @param status  The status
-     * @param message Failure message
+     * @param context the service context
+     * @param status  the status
+     * @param message failure message
      */
-    private void handleReadFailure(HttpServiceContext context,
-            HttpResponseStatus status, String message) {
-        if (LOG.isInfoEnabled()) {
-            LOG.info("Failed to handle client request. Reason: " + status);
+    private void handleReadFailure( HttpServiceContext context, HttpResponseStatus status, String message )
+    {
+        if ( LOG.isInfoEnabled() )
+        {
+            LOG.info( "Failed to handle client request. Reason: " + status );
         }
+
         MutableHttpResponse response = new DefaultHttpResponse();
-        response.setStatusReasonPhrase(message);
-        response.setStatus(status);
-        context.commitResponse(response);
+        response.setStatusReasonPhrase( message );
+        response.setStatus( status );
+        context.commitResponse( response );
     }
 
+
     /**
      * Invoked when data wrote has been fully written.
      * If we have scheduled closure after sending a final response, we will
@@ -208,83 +236,96 @@
      * @param message   The marker provided when writing data. If this is
      *                 our closure marker, we schedule closure of the connection
      */
-    public void messageSent(Object message) {
+    public void messageSent( Object message )
+    {
     }
 
+
     /**
      * Sets the read idle time for all connections
      *
      * @param readIdleTime  The read idle time (seconds)
      */
-    public void setReadIdleTime(int readIdleTime) {
+    public void setReadIdleTime( int readIdleTime )
+    {
         this.readIdleTime = readIdleTime;
     }
 
-    protected HttpServiceContext createContext(HttpRequest request) {
-        return new DefaultHttpServiceContext(request);
+
+    protected HttpServiceContext createContext( HttpRequest request )
+    {
+        return new DefaultHttpServiceContext( request );
     }
 
-    private class ContextConverter extends IoFilterAdapter {
 
+    private class ContextConverter extends IoFilterAdapter
+    {
         @Override
-        public void filterWrite(NextFilter nextFilter, IoSession session,
-                WriteRequest writeRequest) throws Exception {
-            nextFilter.filterWrite(session, new DefaultWriteRequest(
-                    ((HttpServiceContext) writeRequest.getMessage())
+        public void filterWrite( NextFilter nextFilter, IoSession session, WriteRequest writeRequest ) throws Exception
+        {
+            nextFilter.filterWrite( session, new DefaultWriteRequest(
+                    ( ( HttpServiceContext ) writeRequest.getMessage() )
                             .getCommittedResponse(), writeRequest.getFuture()));
         }
 
         @Override
-        public void messageReceived(NextFilter nextFilter, IoSession session,
-                Object message) throws Exception {
+        public void messageReceived( NextFilter nextFilter, IoSession session, Object message ) throws Exception
+        {
             HttpRequest request = ( HttpRequest ) message;
-            HttpServiceContext context = createContext(request);
+            HttpServiceContext context = createContext( request );
             currentContext = context;
-            nextFilter.messageReceived(session, context);
+            nextFilter.messageReceived( session, context );
         }
     }
 
-    private class ServiceFilterAdapter extends IoFilterAdapter {
+
+    private class ServiceFilterAdapter extends IoFilterAdapter
+    {
         private final HttpServiceFilter filter;
 
-        public ServiceFilterAdapter(HttpServiceFilter filter) {
+        public ServiceFilterAdapter( HttpServiceFilter filter )
+        {
             this.filter = filter;
         }
 
         @Override
-        public void messageReceived(final NextFilter nextFilter,
-                final IoSession session, final Object message) throws Exception {
-            HttpServiceFilter.NextFilter nextFilterAdapter = new HttpServiceFilter.NextFilter() {
-                public void invoke() {
+        public void messageReceived( final NextFilter nextFilter,
+                                     final IoSession session, final Object message ) throws Exception
+        {
+            HttpServiceFilter.NextFilter nextFilterAdapter = new HttpServiceFilter.NextFilter()
+            {
+                public void invoke()
+                {
                     nextFilter.messageReceived(session, message);
                 }
             };
-            filter.handleRequest(nextFilterAdapter,
-                    (HttpServiceContext) message);
+            filter.handleRequest( nextFilterAdapter, ( HttpServiceContext ) message );
         }
 
         @Override
-        public void filterWrite(final NextFilter nextFilter,
-                final IoSession session, final WriteRequest writeRequest)
-                throws Exception {
-            HttpServiceFilter.NextFilter nextFilterAdapter = new HttpServiceFilter.NextFilter() {
-                public void invoke() {
-                    nextFilter.filterWrite(session, writeRequest);
+        public void filterWrite( final NextFilter nextFilter, final IoSession session, final WriteRequest writeRequest )
+                throws Exception
+        {
+            HttpServiceFilter.NextFilter nextFilterAdapter = new HttpServiceFilter.NextFilter()
+            {
+                public void invoke()
+                {
+                    nextFilter.filterWrite( session, writeRequest );
                 }
             };
 
-            HttpServiceContext context = (HttpServiceContext) writeRequest
-                    .getMessage();
-
-            filter.handleResponse(nextFilterAdapter, context);
+            HttpServiceContext context = ( HttpServiceContext ) writeRequest.getMessage();
+            filter.handleResponse( nextFilterAdapter, context );
         }
     }
 
-    private class RequestPipelineAdapter extends IoFilterAdapter {
 
+    private class RequestPipelineAdapter extends IoFilterAdapter
+    {
         private final RequestPipeline pipeline;
 
-        public RequestPipelineAdapter(final RequestPipeline pipeline) {
+        public RequestPipelineAdapter( final RequestPipeline pipeline )
+        {
             this.pipeline = pipeline;
         }
 
@@ -330,32 +371,39 @@
         }
     }
 
-    private class DefaultHttpServiceContext extends AbstractHttpServiceContext {
+
+    private class DefaultHttpServiceContext extends AbstractHttpServiceContext
+    {
         private WriteFuture writeFuture;
 
-        private DefaultHttpServiceContext(HttpRequest request) {
-            super((InetSocketAddress) session.getRemoteAddress(), request,
-                    container);
+        private DefaultHttpServiceContext( HttpRequest request )
+        {
+            super( ( InetSocketAddress ) session.getRemoteAddress(), request, container );
         }
 
-        private WriteFuture getWriteFuture() {
+        private WriteFuture getWriteFuture()
+        {
             return writeFuture;
         }
 
-        private void setWriteFuture(WriteFuture writeFuture) {
-            if (!isResponseCommitted()) {
+        private void setWriteFuture( WriteFuture writeFuture )
+        {
+            if ( ! isResponseCommitted() )
+            {
                 throw new IllegalStateException();
             }
             this.writeFuture = writeFuture;
         }
 
         @Override
-        protected void doWrite(boolean requiresClosure) {
+        protected void doWrite( boolean requiresClosure )
+        {
             currentContext = null;
-            WriteFuture future = session.write(this);
-            if (requiresClosure) {
-                LOG.debug("Added CLOSE future listener.");
-                future.addListener(IoFutureListener.CLOSE);
+            WriteFuture future = session.write( this );
+            if ( requiresClosure )
+            {
+                LOG.debug( "Added CLOSE future listener." );
+                future.addListener( IoFutureListener.CLOSE );
             }
         }
     }