You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/11/19 04:41:35 UTC

svn commit: r596187 [1/3] - in /mina: sandbox/asyncweb/ sandbox/asyncweb/core/ sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/codec/ sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/ sandbox/asyncweb/core/src/main/java/org/sa...

Author: trustin
Date: Sun Nov 18 19:41:14 2007
New Revision: 596187

URL: http://svn.apache.org/viewvc?rev=596187&view=rev
Log:
* Moved AsyncWeb HTTP codec to mina-filter-codec-http
* Rewrote the existing HTTP client codec
* ProtocolCodecFactory.getEncoder/getDecoder() now are provided with an IoSession parameter.


Added:
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/ChunkedBodyDecodingState.java
      - copied, changed from r596084, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/codec/decoder/ChunkedBodyDecodingState.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/CookieComparator.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/CookieComparator.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultCookie.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultCookie.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpMessage.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpMessage.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpRequest.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpRequest.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpResponse.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpResponse.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpCodecFactory.java
      - copied, changed from r596159, mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpProtocolCodecFactory.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpCodecUtils.java
      - copied, changed from r596084, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/codec/HttpCodecUtils.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpDateFormat.java
      - copied, changed from r596084, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/util/HttpDateFormat.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpHeaderConstants.java
      - copied, changed from r596084, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/util/HttpHeaderConstants.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpHeaderDecodingState.java
      - copied, changed from r596084, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/codec/decoder/HttpHeaderDecodingState.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpHeaderNameComparator.java   (with props)
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpMessage.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/HttpMessage.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpMethod.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/HttpMethod.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpRequest.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/HttpRequest.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpRequestDecoder.java   (with props)
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpRequestDecoderException.java   (with props)
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpRequestDecodingState.java
      - copied, changed from r596084, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/codec/decoder/HttpRequestDecodingState.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpRequestLineDecodingState.java
      - copied, changed from r596084, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/codec/decoder/HttpRequestLineDecodingState.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpResponse.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/HttpResponse.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpResponseDecodingState.java   (with props)
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpResponseEncoder.java   (with props)
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpResponseLineDecodingState.java   (with props)
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpResponseStatus.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/HttpResponseStatus.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpVersion.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/HttpVersion.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpVersionDecodingState.java   (with props)
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/MutableCookie.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/MutableCookie.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/MutableHttpMessage.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/MutableHttpMessage.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/MutableHttpRequest.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/MutableHttpRequest.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/MutableHttpResponse.java
      - copied, changed from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/MutableHttpResponse.java
Removed:
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/codec/
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/util/HttpDateFormat.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/util/HttpHeaderConstants.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/AsyncHttpClientException.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DateParseException.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DateUtil.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/EncodingUtil.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpDecoder.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpProtocolCodecFactory.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpRequestMessage.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpResponseMessage.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/LangUtils.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/NameValuePair.java
Modified:
    mina/sandbox/asyncweb/core/pom.xml
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/HttpServiceContext.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/HttpServiceHandler.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/AbstractHttpServiceContext.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/BasicKeepAliveStrategy.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/CounterKeepAliveStrategy.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/KeepAliveStrategy.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/errorReporting/ErrorResponseFormatter.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/errorReporting/StandardResponseFormatter.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/pipeline/StandardRequestPipeline.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/CompositeResolver.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/ExactMatchURIServiceResolver.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/FixedServiceResolver.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/PassThruResolver.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/ServiceResolver.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/SimplePrefixResolver.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/CookieIdentifier.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/DefaultSessionAccessor.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/HttpSessionAccessor.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/HttpSessionIdentifier.java
    mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/transport/mina/SingleHttpSessionIoHandler.java
    mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/common/DefaultHttpRequestTest.java
    mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/DummyResolver.java
    mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/ExactMatchURIServiceResolverTest.java
    mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/SimplePrefixResolverTest.java
    mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/cookie/CookieExample.java
    mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/helloworld/HelloWorldHttpService.java
    mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/lightweight/HttpProtocolHandler.java
    mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/lightweight/Main.java
    mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/session/SessionExample.java
    mina/sandbox/asyncweb/pom.xml
    mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFactory.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationCodecFactory.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java
    mina/trunk/core/src/test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java
    mina/trunk/example/src/main/java/org/apache/mina/example/echoserver/Main.java
    mina/trunk/example/src/main/java/org/apache/mina/example/httpclient/Wget.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/Cookie.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpRequestEncoder.java
    mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpResponseDecoder.java
    mina/trunk/filter-codec-netty/src/main/java/org/apache/mina/filter/codec/netty/NettyCodecFactory.java
    mina/trunk/protocol-http-client/src/main/java/org/apache/mina/protocol/http/client/AsyncHttpClient.java
    mina/trunk/protocol-http-client/src/main/java/org/apache/mina/protocol/http/client/AsyncHttpClientCallback.java
    mina/trunk/protocol-http-client/src/main/java/org/apache/mina/protocol/http/client/HttpIoHandler.java
    mina/trunk/protocol-http-client/src/test/java/org/apache/mina/protocol/http/client/AsyncHttpClientTest.java
    mina/trunk/protocol-http-client/src/test/java/org/apache/mina/protocol/http/client/ChunkedTest.java

Modified: mina/sandbox/asyncweb/core/pom.xml
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/pom.xml?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/pom.xml (original)
+++ mina/sandbox/asyncweb/core/pom.xml Sun Nov 18 19:41:14 2007
@@ -40,5 +40,10 @@
 			<artifactId>mina-core</artifactId>
 			<scope>compile</scope>
 		</dependency>
+		<dependency>
+			<groupId>org.apache.mina</groupId>
+			<artifactId>mina-filter-codec-http</artifactId>
+			<scope>compile</scope>
+		</dependency>
 	</dependencies>
 </project>

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/HttpServiceContext.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/HttpServiceContext.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/HttpServiceContext.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/HttpServiceContext.java Sun Nov 18 19:41:14 2007
@@ -21,9 +21,9 @@
 
 import java.net.InetSocketAddress;
 
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.HttpResponse;
-import org.safehaus.asyncweb.common.HttpResponseStatus;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpResponse;
+import org.apache.mina.filter.codec.http.HttpResponseStatus;
 
 /**
  * Provides conversational context between a HTTP client and a {@link HttpService}.

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/HttpServiceHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/HttpServiceHandler.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/HttpServiceHandler.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/HttpServiceHandler.java Sun Nov 18 19:41:14 2007
@@ -24,10 +24,10 @@
 import java.util.Map.Entry;
 
 import org.apache.mina.common.IoFilter;
-import org.safehaus.asyncweb.common.DefaultHttpResponse;
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.HttpResponseStatus;
-import org.safehaus.asyncweb.common.MutableHttpResponse;
+import org.apache.mina.filter.codec.http.DefaultHttpResponse;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpResponseStatus;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 import org.safehaus.asyncweb.service.resolver.ServiceResolver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/AbstractHttpServiceContext.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/AbstractHttpServiceContext.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/AbstractHttpServiceContext.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/AbstractHttpServiceContext.java Sun Nov 18 19:41:14 2007
@@ -21,15 +21,15 @@
 
 import java.net.InetSocketAddress;
 
-import org.safehaus.asyncweb.common.DefaultHttpResponse;
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.HttpResponse;
-import org.safehaus.asyncweb.common.HttpResponseStatus;
-import org.safehaus.asyncweb.common.MutableHttpResponse;
+import org.apache.mina.filter.codec.http.DefaultHttpResponse;
+import org.apache.mina.filter.codec.http.HttpHeaderConstants;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpResponse;
+import org.apache.mina.filter.codec.http.HttpResponseStatus;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 import org.safehaus.asyncweb.service.HttpServiceContext;
 import org.safehaus.asyncweb.service.HttpSession;
 import org.safehaus.asyncweb.service.ServiceContainer;
-import org.safehaus.asyncweb.util.HttpHeaderConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/BasicKeepAliveStrategy.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/BasicKeepAliveStrategy.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/BasicKeepAliveStrategy.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/BasicKeepAliveStrategy.java Sun Nov 18 19:41:14 2007
@@ -19,7 +19,7 @@
  */
 package org.safehaus.asyncweb.service.context;
 
-import org.safehaus.asyncweb.common.HttpResponse;
+import org.apache.mina.filter.codec.http.HttpResponse;
 import org.safehaus.asyncweb.service.HttpServiceContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/CounterKeepAliveStrategy.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/CounterKeepAliveStrategy.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/CounterKeepAliveStrategy.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/CounterKeepAliveStrategy.java Sun Nov 18 19:41:14 2007
@@ -19,7 +19,7 @@
  */
 package org.safehaus.asyncweb.service.context;
 
-import org.safehaus.asyncweb.common.HttpResponse;
+import org.apache.mina.filter.codec.http.HttpResponse;
 import org.safehaus.asyncweb.service.HttpServiceContext;
 
 public class CounterKeepAliveStrategy extends BasicKeepAliveStrategy {

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/KeepAliveStrategy.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/KeepAliveStrategy.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/KeepAliveStrategy.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/context/KeepAliveStrategy.java Sun Nov 18 19:41:14 2007
@@ -19,7 +19,7 @@
  */
 package org.safehaus.asyncweb.service.context;
 
-import org.safehaus.asyncweb.common.HttpResponse;
+import org.apache.mina.filter.codec.http.HttpResponse;
 import org.safehaus.asyncweb.service.HttpServiceContext;
 
 /**

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/errorReporting/ErrorResponseFormatter.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/errorReporting/ErrorResponseFormatter.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/errorReporting/ErrorResponseFormatter.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/errorReporting/ErrorResponseFormatter.java Sun Nov 18 19:41:14 2007
@@ -19,8 +19,8 @@
  */
 package org.safehaus.asyncweb.service.errorReporting;
 
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.MutableHttpResponse;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 
 /**
  * Formats error responses to include a descriptive body where appropriate

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/errorReporting/StandardResponseFormatter.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/errorReporting/StandardResponseFormatter.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/errorReporting/StandardResponseFormatter.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/errorReporting/StandardResponseFormatter.java Sun Nov 18 19:41:14 2007
@@ -22,11 +22,10 @@
 import java.io.UnsupportedEncodingException;
 
 import org.apache.mina.common.IoBuffer;
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.HttpResponseStatus;
-import org.safehaus.asyncweb.common.MutableHttpResponse;
-import org.safehaus.asyncweb.common.HttpResponseStatus.Category;
-import org.safehaus.asyncweb.common.content.ByteBufferContent;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpResponseStatus;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
+import org.apache.mina.filter.codec.http.HttpResponseStatus.Category;
 import org.safehaus.asyncweb.util.StringBundle;
 
 public class StandardResponseFormatter implements ErrorResponseFormatter {
@@ -43,8 +42,7 @@
 
     private boolean shouldFormat(MutableHttpResponse response) {
         boolean shouldFormat = false;
-        // FIXME Should be able to handler other content types.
-        if (!(response.getContent() instanceof ByteBufferContent)) {
+        if (!response.getContent().hasRemaining()) {
             HttpResponseStatus status = response.getStatus();
             HttpResponseStatus.Category category = response.getStatus()
                     .getCategory();
@@ -93,7 +91,7 @@
         }
 
         out.flip();
-        response.setContent(new ByteBufferContent(out));
+        response.setContent(out);
     }
 
     private void appendInfo(String title, String info, StringBuilder html) {

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/pipeline/StandardRequestPipeline.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/pipeline/StandardRequestPipeline.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/pipeline/StandardRequestPipeline.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/pipeline/StandardRequestPipeline.java Sun Nov 18 19:41:14 2007
@@ -23,7 +23,7 @@
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import org.safehaus.asyncweb.common.HttpResponse;
+import org.apache.mina.filter.codec.http.HttpResponse;
 import org.safehaus.asyncweb.service.HttpServiceContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/CompositeResolver.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/CompositeResolver.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/CompositeResolver.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/CompositeResolver.java Sun Nov 18 19:41:14 2007
@@ -22,7 +22,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.safehaus.asyncweb.common.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpRequest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/ExactMatchURIServiceResolver.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/ExactMatchURIServiceResolver.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/ExactMatchURIServiceResolver.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/ExactMatchURIServiceResolver.java Sun Nov 18 19:41:14 2007
@@ -23,7 +23,7 @@
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.safehaus.asyncweb.common.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpRequest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/FixedServiceResolver.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/FixedServiceResolver.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/FixedServiceResolver.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/FixedServiceResolver.java Sun Nov 18 19:41:14 2007
@@ -19,7 +19,7 @@
  */
 package org.safehaus.asyncweb.service.resolver;
 
-import org.safehaus.asyncweb.common.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpRequest;
 
 /**
  * @author Dan Diephouse

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/PassThruResolver.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/PassThruResolver.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/PassThruResolver.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/PassThruResolver.java Sun Nov 18 19:41:14 2007
@@ -19,7 +19,7 @@
  */
 package org.safehaus.asyncweb.service.resolver;
 
-import org.safehaus.asyncweb.common.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpRequest;
 
 /**
  * A simple <code>ServiceResolver</code> which passes the full

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/ServiceResolver.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/ServiceResolver.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/ServiceResolver.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/ServiceResolver.java Sun Nov 18 19:41:14 2007
@@ -19,7 +19,7 @@
  */
 package org.safehaus.asyncweb.service.resolver;
 
-import org.safehaus.asyncweb.common.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpRequest;
 
 /**
  * Resolves the name of the <code>HttpService</code> to be used to

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/SimplePrefixResolver.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/SimplePrefixResolver.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/SimplePrefixResolver.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/resolver/SimplePrefixResolver.java Sun Nov 18 19:41:14 2007
@@ -19,7 +19,7 @@
  */
 package org.safehaus.asyncweb.service.resolver;
 
-import org.safehaus.asyncweb.common.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpRequest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/CookieIdentifier.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/CookieIdentifier.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/CookieIdentifier.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/CookieIdentifier.java Sun Nov 18 19:41:14 2007
@@ -19,11 +19,11 @@
  */
 package org.safehaus.asyncweb.service.session;
 
-import org.safehaus.asyncweb.common.Cookie;
-import org.safehaus.asyncweb.common.DefaultCookie;
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.MutableCookie;
-import org.safehaus.asyncweb.common.MutableHttpResponse;
+import org.apache.mina.filter.codec.http.Cookie;
+import org.apache.mina.filter.codec.http.DefaultCookie;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.MutableCookie;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 
 /**
  * A <code>SessionIdentifier</code> which adds and extracts session key

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/DefaultSessionAccessor.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/DefaultSessionAccessor.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/DefaultSessionAccessor.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/DefaultSessionAccessor.java Sun Nov 18 19:41:14 2007
@@ -19,7 +19,7 @@
  */
 package org.safehaus.asyncweb.service.session;
 
-import org.safehaus.asyncweb.common.MutableHttpResponse;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 import org.safehaus.asyncweb.service.HttpServiceContext;
 import org.safehaus.asyncweb.service.HttpSession;
 import org.slf4j.Logger;

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/HttpSessionAccessor.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/HttpSessionAccessor.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/HttpSessionAccessor.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/HttpSessionAccessor.java Sun Nov 18 19:41:14 2007
@@ -19,7 +19,7 @@
  */
 package org.safehaus.asyncweb.service.session;
 
-import org.safehaus.asyncweb.common.MutableHttpResponse;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 import org.safehaus.asyncweb.service.HttpServiceContext;
 import org.safehaus.asyncweb.service.HttpSession;
 

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/HttpSessionIdentifier.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/HttpSessionIdentifier.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/HttpSessionIdentifier.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/session/HttpSessionIdentifier.java Sun Nov 18 19:41:14 2007
@@ -19,8 +19,8 @@
  */
 package org.safehaus.asyncweb.service.session;
 
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.MutableHttpResponse;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 
 /**
  * A strategy for encoding / decoding session keys information to / from

Modified: mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/transport/mina/SingleHttpSessionIoHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/transport/mina/SingleHttpSessionIoHandler.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/transport/mina/SingleHttpSessionIoHandler.java (original)
+++ mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/service/transport/mina/SingleHttpSessionIoHandler.java Sun Nov 18 19:41:14 2007
@@ -31,15 +31,15 @@
 import org.apache.mina.common.WriteRequest;
 import org.apache.mina.filter.codec.ProtocolCodecFilter;
 import org.apache.mina.filter.codec.ProtocolDecoderException;
+import org.apache.mina.filter.codec.http.DefaultHttpRequest;
+import org.apache.mina.filter.codec.http.DefaultHttpResponse;
+import org.apache.mina.filter.codec.http.HttpCodecFactory;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpRequestDecoderException;
+import org.apache.mina.filter.codec.http.HttpResponseStatus;
+import org.apache.mina.filter.codec.http.HttpVersion;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 import org.apache.mina.handler.multiton.SingleSessionIoHandler;
-import org.safehaus.asyncweb.codec.HttpServerCodecFactory;
-import org.safehaus.asyncweb.codec.decoder.HttpDecoderException;
-import org.safehaus.asyncweb.common.DefaultHttpRequest;
-import org.safehaus.asyncweb.common.DefaultHttpResponse;
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.HttpResponseStatus;
-import org.safehaus.asyncweb.common.HttpVersion;
-import org.safehaus.asyncweb.common.MutableHttpResponse;
 import org.safehaus.asyncweb.service.HttpServiceContext;
 import org.safehaus.asyncweb.service.HttpServiceFilter;
 import org.safehaus.asyncweb.service.ServiceContainer;
@@ -87,7 +87,7 @@
         session.getConfig().setIdleTime(IdleStatus.READER_IDLE, readIdleTime);
 
         session.getFilterChain().addLast("codec",
-                new ProtocolCodecFilter(new HttpServerCodecFactory()));
+                new ProtocolCodecFilter(new HttpCodecFactory()));
 
         session.getFilterChain().addLast("converter", new ContextConverter());
 
@@ -141,8 +141,8 @@
         MutableHttpResponse response = null;
         if (cause instanceof ProtocolDecoderException) {
             HttpResponseStatus status;
-            if (cause instanceof HttpDecoderException) {
-                status = ((HttpDecoderException) cause).getResponseStatus();
+            if (cause instanceof HttpRequestDecoderException) {
+                status = ((HttpRequestDecoderException) cause).getResponseStatus();
             } else {
                 status = HttpResponseStatus.BAD_REQUEST;
             }

Modified: mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/common/DefaultHttpRequestTest.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/common/DefaultHttpRequestTest.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/common/DefaultHttpRequestTest.java (original)
+++ mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/common/DefaultHttpRequestTest.java Sun Nov 18 19:41:14 2007
@@ -22,6 +22,8 @@
 import junit.framework.Assert;
 import junit.framework.TestCase;
 
+import org.apache.mina.filter.codec.http.DefaultHttpRequest;
+
 public class DefaultHttpRequestTest extends TestCase {
     public void testSetParametersFromQueryString() throws Exception {
         DefaultHttpRequest req = new DefaultHttpRequest();

Modified: mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/DummyResolver.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/DummyResolver.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/DummyResolver.java (original)
+++ mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/DummyResolver.java Sun Nov 18 19:41:14 2007
@@ -22,7 +22,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.safehaus.asyncweb.common.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpRequest;
 import org.safehaus.asyncweb.service.resolver.ServiceResolver;
 
 /**

Modified: mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/ExactMatchURIServiceResolverTest.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/ExactMatchURIServiceResolverTest.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/ExactMatchURIServiceResolverTest.java (original)
+++ mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/ExactMatchURIServiceResolverTest.java Sun Nov 18 19:41:14 2007
@@ -24,9 +24,9 @@
 
 import junit.framework.TestCase;
 
-import org.safehaus.asyncweb.common.DefaultHttpRequest;
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.MutableHttpRequest;
+import org.apache.mina.filter.codec.http.DefaultHttpRequest;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.MutableHttpRequest;
 import org.safehaus.asyncweb.service.resolver.ExactMatchURIServiceResolver;
 
 /**

Modified: mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/SimplePrefixResolverTest.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/SimplePrefixResolverTest.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/SimplePrefixResolverTest.java (original)
+++ mina/sandbox/asyncweb/core/src/test/java/org/safehaus/asyncweb/service/filter/resolver/SimplePrefixResolverTest.java Sun Nov 18 19:41:14 2007
@@ -24,9 +24,9 @@
 
 import junit.framework.TestCase;
 
-import org.safehaus.asyncweb.common.DefaultHttpRequest;
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.MutableHttpRequest;
+import org.apache.mina.filter.codec.http.DefaultHttpRequest;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.MutableHttpRequest;
 import org.safehaus.asyncweb.service.resolver.SimplePrefixResolver;
 
 /**

Modified: mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/cookie/CookieExample.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/cookie/CookieExample.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/cookie/CookieExample.java (original)
+++ mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/cookie/CookieExample.java Sun Nov 18 19:41:14 2007
@@ -24,12 +24,11 @@
 import java.nio.charset.Charset;
 
 import org.apache.mina.common.IoBuffer;
-import org.safehaus.asyncweb.common.DefaultCookie;
-import org.safehaus.asyncweb.common.DefaultHttpResponse;
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.MutableCookie;
-import org.safehaus.asyncweb.common.MutableHttpResponse;
-import org.safehaus.asyncweb.common.content.ByteBufferContent;
+import org.apache.mina.filter.codec.http.DefaultCookie;
+import org.apache.mina.filter.codec.http.DefaultHttpResponse;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.MutableCookie;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 import org.safehaus.asyncweb.service.HttpService;
 import org.safehaus.asyncweb.service.HttpServiceContext;
 
@@ -63,7 +62,7 @@
         bb.setAutoExpand(true);
         bb.putString(buf.toString(), Charset.forName("UTF-8").newEncoder());
         bb.flip();
-        response.setContent(new ByteBufferContent(bb));
+        response.setContent(bb);
 
         context.commitResponse(response);
     }

Modified: mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/helloworld/HelloWorldHttpService.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/helloworld/HelloWorldHttpService.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/helloworld/HelloWorldHttpService.java (original)
+++ mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/helloworld/HelloWorldHttpService.java Sun Nov 18 19:41:14 2007
@@ -28,12 +28,11 @@
 import java.util.Map;
 
 import org.apache.mina.common.IoBuffer;
-import org.safehaus.asyncweb.common.Cookie;
-import org.safehaus.asyncweb.common.DefaultHttpResponse;
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.HttpResponseStatus;
-import org.safehaus.asyncweb.common.MutableHttpResponse;
-import org.safehaus.asyncweb.common.content.ByteBufferContent;
+import org.apache.mina.filter.codec.http.Cookie;
+import org.apache.mina.filter.codec.http.DefaultHttpResponse;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpResponseStatus;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 import org.safehaus.asyncweb.service.HttpService;
 import org.safehaus.asyncweb.service.HttpServiceContext;
 
@@ -71,7 +70,7 @@
         bb.setAutoExpand(true);
         bb.putString(buf.toString(), Charset.forName("UTF-8").newEncoder());
         bb.flip();
-        response.setContent(new ByteBufferContent(bb));
+        response.setContent(bb);
 
         response.setHeader("Pragma", "no-cache");
         response.setHeader("Cache-Control", "no-cache");

Modified: mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/lightweight/HttpProtocolHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/lightweight/HttpProtocolHandler.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/lightweight/HttpProtocolHandler.java (original)
+++ mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/lightweight/HttpProtocolHandler.java Sun Nov 18 19:41:14 2007
@@ -32,12 +32,11 @@
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.IoSessionLogger;
 import org.apache.mina.common.WriteFuture;
-import org.safehaus.asyncweb.common.DefaultHttpResponse;
-import org.safehaus.asyncweb.common.HttpRequest;
-import org.safehaus.asyncweb.common.HttpResponseStatus;
-import org.safehaus.asyncweb.common.MutableHttpResponse;
-import org.safehaus.asyncweb.common.content.ByteBufferContent;
-import org.safehaus.asyncweb.util.HttpHeaderConstants;
+import org.apache.mina.filter.codec.http.DefaultHttpResponse;
+import org.apache.mina.filter.codec.http.HttpHeaderConstants;
+import org.apache.mina.filter.codec.http.HttpRequest;
+import org.apache.mina.filter.codec.http.HttpResponseStatus;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 
 public class HttpProtocolHandler implements IoHandler {
     private static final int CONTENT_PADDING = 0; // 101
@@ -103,7 +102,7 @@
             buffers.put(size, buf);
         }
 
-        res.setContent(new ByteBufferContent(buf.duplicate()));
+        res.setContent(buf.duplicate());
         writeResponse(session, req, res);
     }
 

Modified: mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/lightweight/Main.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/lightweight/Main.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/lightweight/Main.java (original)
+++ mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/lightweight/Main.java Sun Nov 18 19:41:14 2007
@@ -22,16 +22,16 @@
 import java.net.InetSocketAddress;
 
 import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.filter.codec.http.HttpCodecFactory;
 import org.apache.mina.transport.socket.SocketAcceptor;
 import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
-import org.safehaus.asyncweb.codec.HttpServerCodecFactory;
 
 public class Main {
     public static void main(String[] args) throws Exception {
         SocketAcceptor acceptor = new NioSocketAcceptor();
 
         acceptor.getFilterChain().addLast("codec",
-                new ProtocolCodecFilter(new HttpServerCodecFactory()));
+                new ProtocolCodecFilter(new HttpCodecFactory()));
 
         acceptor.setReuseAddress(true);
         acceptor.getSessionConfig().setReuseAddress(true);

Modified: mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/session/SessionExample.java
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/session/SessionExample.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/session/SessionExample.java (original)
+++ mina/sandbox/asyncweb/example/src/main/java/org/safehaus/asyncweb/example/session/SessionExample.java Sun Nov 18 19:41:14 2007
@@ -24,9 +24,8 @@
 import java.nio.charset.Charset;
 
 import org.apache.mina.common.IoBuffer;
-import org.safehaus.asyncweb.common.DefaultHttpResponse;
-import org.safehaus.asyncweb.common.MutableHttpResponse;
-import org.safehaus.asyncweb.common.content.ByteBufferContent;
+import org.apache.mina.filter.codec.http.DefaultHttpResponse;
+import org.apache.mina.filter.codec.http.MutableHttpResponse;
 import org.safehaus.asyncweb.service.HttpService;
 import org.safehaus.asyncweb.service.HttpServiceContext;
 import org.safehaus.asyncweb.service.HttpSession;
@@ -66,7 +65,7 @@
         bb.setAutoExpand(true);
         bb.putString(buf.toString(), Charset.forName("UTF-8").newEncoder());
         bb.flip();
-        response.setContent(new ByteBufferContent(bb));
+        response.setContent(bb);
 
         context.commitResponse(response);
     }

Modified: mina/sandbox/asyncweb/pom.xml
URL: http://svn.apache.org/viewvc/mina/sandbox/asyncweb/pom.xml?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/pom.xml (original)
+++ mina/sandbox/asyncweb/pom.xml Sun Nov 18 19:41:14 2007
@@ -143,6 +143,11 @@
         <artifactId>mina-core</artifactId>
         <version>2.0.0-M1-SNAPSHOT</version>
       </dependency>
+       <dependency>
+        <groupId>org.apache.mina</groupId>
+        <artifactId>mina-filter-codec-http</artifactId>
+        <version>2.0.0-M1-SNAPSHOT</version>
+      </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-log4j12</artifactId>

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFactory.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFactory.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFactory.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFactory.java Sun Nov 18 19:41:14 2007
@@ -19,6 +19,8 @@
  */
 package org.apache.mina.filter.codec;
 
+import org.apache.mina.common.IoSession;
+
 /**
  * Provides {@link ProtocolEncoder} and {@link ProtocolDecoder} which translates
  * binary or protocol specific data into message object and vice versa.
@@ -34,12 +36,14 @@
     /**
      * Returns a new (or reusable) instance of {@link ProtocolEncoder} which
      * encodes message objects into binary or protocol-specific data.
+     * @param session TODO
      */
-    ProtocolEncoder getEncoder() throws Exception;
+    ProtocolEncoder getEncoder(IoSession session) throws Exception;
 
     /**
      * Returns a new (or reusable) instance of {@link ProtocolDecoder} which
      * decodes binary or protocol-specific data into message objects.
+     * @param session TODO
      */
-    ProtocolDecoder getDecoder() throws Exception;
+    ProtocolDecoder getDecoder(IoSession session) throws Exception;
 }

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java Sun Nov 18 19:41:14 2007
@@ -71,11 +71,11 @@
         }
 
         this.factory = new ProtocolCodecFactory() {
-            public ProtocolEncoder getEncoder() {
+            public ProtocolEncoder getEncoder(IoSession session) {
                 return encoder;
             }
 
-            public ProtocolDecoder getDecoder() {
+            public ProtocolDecoder getDecoder(IoSession session) {
                 return decoder;
             }
         };
@@ -112,11 +112,11 @@
         }
 
         this.factory = new ProtocolCodecFactory() {
-            public ProtocolEncoder getEncoder() throws Exception {
+            public ProtocolEncoder getEncoder(IoSession session) throws Exception {
                 return encoderClass.newInstance();
             }
 
-            public ProtocolDecoder getDecoder() throws Exception {
+            public ProtocolDecoder getDecoder(IoSession session) throws Exception {
                 return decoderClass.newInstance();
             }
         };
@@ -269,7 +269,7 @@
         ProtocolEncoder encoder = (ProtocolEncoder) session
                 .getAttribute(ENCODER);
         if (encoder == null) {
-            encoder = factory.getEncoder();
+            encoder = factory.getEncoder(session);
             session.setAttribute(ENCODER, encoder);
         }
         return encoder;
@@ -284,7 +284,7 @@
         ProtocolDecoder decoder = (ProtocolDecoder) session
                 .getAttribute(DECODER);
         if (decoder == null) {
-            decoder = factory.getDecoder();
+            decoder = factory.getDecoder(session);
             session.setAttribute(DECODER, decoder);
         }
         return decoder;

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java Sun Nov 18 19:41:14 2007
@@ -19,6 +19,7 @@
  */
 package org.apache.mina.filter.codec.demux;
 
+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;
@@ -42,11 +43,11 @@
     public DemuxingProtocolCodecFactory() {
     }
 
-    public ProtocolEncoder getEncoder() throws Exception {
+    public ProtocolEncoder getEncoder(IoSession session) throws Exception {
         return encoder;
     }
 
-    public ProtocolDecoder getDecoder() throws Exception {
+    public ProtocolDecoder getDecoder(IoSession session) throws Exception {
         return decoder;
     }
     

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationCodecFactory.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationCodecFactory.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationCodecFactory.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationCodecFactory.java Sun Nov 18 19:41:14 2007
@@ -20,6 +20,7 @@
 package org.apache.mina.filter.codec.serialization;
 
 import org.apache.mina.common.BufferDataException;
+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;
@@ -53,11 +54,11 @@
         decoder = new ObjectSerializationDecoder(classLoader);
     }
 
-    public ProtocolEncoder getEncoder() {
+    public ProtocolEncoder getEncoder(IoSession session) {
         return encoder;
     }
 
-    public ProtocolDecoder getDecoder() {
+    public ProtocolDecoder getDecoder(IoSession session) {
         return decoder;
     }
 

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java Sun Nov 18 19:41:14 2007
@@ -22,6 +22,7 @@
 import java.nio.charset.Charset;
 
 import org.apache.mina.common.BufferDataException;
+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;
@@ -93,11 +94,11 @@
         decoder = new TextLineDecoder(charset, decodingDelimiter);
     }
 
-    public ProtocolEncoder getEncoder() {
+    public ProtocolEncoder getEncoder(IoSession session) {
         return encoder;
     }
 
-    public ProtocolDecoder getDecoder() {
+    public ProtocolDecoder getDecoder(IoSession session) {
         return decoder;
     }
 

Modified: mina/trunk/core/src/test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/trunk/core/src/test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java (original)
+++ mina/trunk/core/src/test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java Sun Nov 18 19:41:14 2007
@@ -332,7 +332,7 @@
 
     private static class DummyProtocolCodecFactory implements ProtocolCodecFactory {
 
-        public ProtocolEncoder getEncoder() throws Exception {
+        public ProtocolEncoder getEncoder(IoSession session) throws Exception {
             return new ProtocolEncoderAdapter() {
                 public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception {
                     logger.info("encode");
@@ -342,7 +342,7 @@
             };
         }
 
-        public ProtocolDecoder getDecoder() throws Exception {
+        public ProtocolDecoder getDecoder(IoSession session) throws Exception {
             return new ProtocolDecoderAdapter() {
                 public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {
                     if (in.remaining() >= 4) {

Modified: mina/trunk/example/src/main/java/org/apache/mina/example/echoserver/Main.java
URL: http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/echoserver/Main.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/trunk/example/src/main/java/org/apache/mina/example/echoserver/Main.java (original)
+++ mina/trunk/example/src/main/java/org/apache/mina/example/echoserver/Main.java Sun Nov 18 19:41:14 2007
@@ -50,14 +50,17 @@
             addSSLSupport(chain);
         }
 
-        addLogger(chain);
-        
         // Bind
         acceptor.setLocalAddress(new InetSocketAddress(PORT));
         acceptor.setHandler(new EchoProtocolHandler());
         acceptor.bind();
 
         System.out.println("Listening on port " + PORT);
+        
+        for (;;) {
+            System.out.println("R: " + acceptor.getReadBytesThroughput() + ", W: " + acceptor.getWrittenBytesThroughput());
+            Thread.sleep(3000);
+        }
     }
 
     private static void addSSLSupport(DefaultIoFilterChainBuilder chain)

Modified: mina/trunk/example/src/main/java/org/apache/mina/example/httpclient/Wget.java
URL: http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/httpclient/Wget.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/trunk/example/src/main/java/org/apache/mina/example/httpclient/Wget.java (original)
+++ mina/trunk/example/src/main/java/org/apache/mina/example/httpclient/Wget.java Sun Nov 18 19:41:14 2007
@@ -20,10 +20,12 @@
 
 package org.apache.mina.example.httpclient;
 
+import java.net.URI;
 import java.net.URL;
 
-import org.apache.mina.filter.codec.http.HttpRequestMessage;
-import org.apache.mina.filter.codec.http.HttpResponseMessage;
+import org.apache.mina.filter.codec.http.DefaultHttpRequest;
+import org.apache.mina.filter.codec.http.HttpResponse;
+import org.apache.mina.filter.codec.http.MutableHttpRequest;
 import org.apache.mina.protocol.http.client.AsyncHttpClient;
 import org.apache.mina.protocol.http.client.AsyncHttpClientCallback;
 
@@ -59,7 +61,8 @@
             path = url.getPath();
         }
 
-        HttpRequestMessage request = new HttpRequestMessage(path);
+        MutableHttpRequest request = new DefaultHttpRequest();
+        request.setRequestUri(new URI(path));
         AsyncHttpClient ahc = new AsyncHttpClient(url, callback);
         ahc.connect();
         ahc.sendRequest(request);
@@ -72,8 +75,8 @@
             throw new Exception(callback.getThrowable());
         }
 
-        HttpResponseMessage msg = callback.getMessage();
-        System.out.println(msg.getStringContent());
+        HttpResponse msg = callback.getMessage();
+        System.out.println(msg.getContent());
     }
 
     class WgetCallback implements AsyncHttpClientCallback {
@@ -84,7 +87,7 @@
 
         private Throwable throwable = null;
 
-        private HttpResponseMessage message = null;
+        private HttpResponse message = null;
 
         public WgetCallback() {
             clear();
@@ -93,9 +96,9 @@
         /**
          * What to do when a response has come from the server
          *
-         * @see org.apache.mina.protocol.http.client.AsyncHttpClientCallback#onResponse(org.apache.mina.filter.codec.http.HttpResponseMessage)
+         * @see org.apache.mina.protocol.http.client.AsyncHttpClientCallback#onResponse(HttpResponse)
          */
-        public void onResponse(HttpResponseMessage message) {
+        public void onResponse(HttpResponse message) {
             this.message = message;
             synchronized (semaphore) {
                 semaphore.notify();
@@ -105,7 +108,7 @@
         /**
          * What to do when an exception has been thrown
          *
-         * @see org.apache.mina.protocol.http.client.AsyncHttpClientCallback#onException(java.lang.Throwable)
+         * @see org.apache.mina.protocol.http.client.AsyncHttpClientCallback#onException(Throwable)
          */
         public void onException(Throwable cause) {
             throwable = cause;
@@ -164,11 +167,11 @@
             this.exception = exception;
         }
 
-        public HttpResponseMessage getMessage() {
+        public HttpResponse getMessage() {
             return message;
         }
 
-        public void setMessage(HttpResponseMessage message) {
+        public void setMessage(HttpResponse message) {
             this.message = message;
         }
     }

Copied: mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/ChunkedBodyDecodingState.java (from r596084, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/codec/decoder/ChunkedBodyDecodingState.java)
URL: http://svn.apache.org/viewvc/mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/ChunkedBodyDecodingState.java?p2=mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/ChunkedBodyDecodingState.java&p1=mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/codec/decoder/ChunkedBodyDecodingState.java&r1=596084&r2=596187&rev=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/codec/decoder/ChunkedBodyDecodingState.java (original)
+++ mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/ChunkedBodyDecodingState.java Sun Nov 18 19:41:14 2007
@@ -17,7 +17,7 @@
  *  under the License.
  *
  */
-package org.safehaus.asyncweb.codec.decoder;
+package org.apache.mina.filter.codec.http;
 
 import java.nio.charset.Charset;
 import java.nio.charset.CharsetDecoder;
@@ -30,8 +30,6 @@
 import org.apache.mina.filter.codec.statemachine.DecodingStateMachine;
 import org.apache.mina.filter.codec.statemachine.FixedLengthDecodingState;
 import org.apache.mina.filter.codec.statemachine.SkippingState;
-import org.safehaus.asyncweb.codec.HttpCodecUtils;
-import org.safehaus.asyncweb.common.HttpResponseStatus;
 
 /**
  * A decoder which decodes the body of HTTP Requests having

Modified: mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/Cookie.java
URL: http://svn.apache.org/viewvc/mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/Cookie.java?rev=596187&r1=596186&r2=596187&view=diff
==============================================================================
--- mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/Cookie.java (original)
+++ mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/Cookie.java Sun Nov 18 19:41:14 2007
@@ -1,116 +1,84 @@
 /*
- * 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
+ *  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
+ *    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.
+ *  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.
  *
  */
 package org.apache.mina.filter.codec.http;
 
-import java.util.Date;
+import java.io.Serializable;
 
 /**
- * TODO Cookie.
+ * An HTTP cookie.
  *
- * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
- * @version $Rev$, $Date$
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev: 592337 $, $Date: 2007-11-06 17:59:36 +0900 (화, 06 11월 2007) $
  */
-public class Cookie {
+public interface Cookie extends Serializable, Comparable<Cookie> {
 
-    private String comment;
-
-    private String domain;
-
-    private String name;
-
-    private String value;
-
-    private String path;
-
-    private boolean secure;
-
-    private int version = 0;
-
-    private Date expires;
-
-    public Cookie(String name, String value) {
-        this.name = name;
-        this.value = value;
-    }
-
-    public String getComment() {
-        return comment;
-    }
-
-    public void setComment(String comment) {
-        this.comment = comment;
-    }
-
-    public String getDomain() {
-        return domain;
-    }
-
-    public void setDomain(String domain) {
-        this.domain = domain;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getValue() {
-        return value;
-    }
-
-    public void setValue(String value) {
-        this.value = value;
-    }
-
-    public String getPath() {
-        return path;
-    }
-
-    public void setPath(String path) {
-        this.path = path;
-    }
-
-    public boolean isSecure() {
-        return secure;
-    }
-
-    public void setSecure(boolean secure) {
-        this.secure = secure;
-    }
-
-    public int getVersion() {
-        return version;
-    }
-
-    public void setVersion(int version) {
-        this.version = version;
-    }
-
-    public Date getExpires() {
-        return expires;
-    }
-
-    public void setExpires(Date expires) {
-        this.expires = expires;
-    }
+    /**
+     * Returns the cookie version number. The default (if not specified) is 0
+     *
+     * @return  The version number
+     */
+    int getVersion();
+
+    /**
+     * Returns the name of this cookie
+     *
+     * @return  The cookie name
+     */
+    String getName();
+
+    /**
+     * Returns the value of this cookie
+     *
+     * @return  The cookie value - or <code>null</code> if this cookie does not have
+     *          a value
+     */
+    String getValue();
+
+    /**
+     * Returns the domain of this cookie.
+     */
+    String getDomain();
+
+    /**
+     * Returns the path on the server to which the client returns this cookie.
+     *
+     * @return  The path
+     */
+    String getPath();
+
+    /**
+     * Returns if this cookie is marked as "secure".
+     * Secure cookies should be sent back by a client over a transport as least as
+     * secure as that upon which they were received
+     */
+    boolean isSecure();
+
+    /**
+     * Returns the maximum age of this cookie in seconds.
+     */
+    int getMaxAge();
+
+    /**
+     * Returns the comment of this cookie.  Comments are not supported by version 0 cookies.
+     *
+     * @return <tt>null</tt> if no comment is specified
+     */
+    String getComment();
 }

Copied: mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/CookieComparator.java (from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/CookieComparator.java)
URL: http://svn.apache.org/viewvc/mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/CookieComparator.java?p2=mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/CookieComparator.java&p1=mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/CookieComparator.java&r1=596083&r2=596187&rev=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/CookieComparator.java (original)
+++ mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/CookieComparator.java Sun Nov 18 19:41:14 2007
@@ -17,7 +17,7 @@
  *  under the License.
  *
  */
-package org.safehaus.asyncweb.common;
+package org.apache.mina.filter.codec.http;
 
 import java.io.Serializable;
 import java.util.Comparator;

Copied: mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultCookie.java (from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultCookie.java)
URL: http://svn.apache.org/viewvc/mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultCookie.java?p2=mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultCookie.java&p1=mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultCookie.java&r1=596083&r2=596187&rev=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultCookie.java (original)
+++ mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultCookie.java Sun Nov 18 19:41:14 2007
@@ -17,7 +17,7 @@
  *  under the License.
  *
  */
-package org.safehaus.asyncweb.common;
+package org.apache.mina.filter.codec.http;
 
 /**
  * Default cookie implementation.

Copied: mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpMessage.java (from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpMessage.java)
URL: http://svn.apache.org/viewvc/mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpMessage.java?p2=mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpMessage.java&p1=mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpMessage.java&r1=596083&r2=596187&rev=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpMessage.java (original)
+++ mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpMessage.java Sun Nov 18 19:41:14 2007
@@ -17,7 +17,7 @@
  *  under the License.
  *
  */
-package org.safehaus.asyncweb.common;
+package org.apache.mina.filter.codec.http;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -28,9 +28,7 @@
 import java.util.TreeMap;
 import java.util.TreeSet;
 
-import org.safehaus.asyncweb.codec.HttpCodecUtils;
-import org.safehaus.asyncweb.common.content.EmptyContent;
-import org.safehaus.asyncweb.util.HttpHeaderConstants;
+import org.apache.mina.common.IoBuffer;
 
 /**
  * A default implementation of {@link MutableHttpMessage}.
@@ -45,12 +43,12 @@
     private HttpVersion protocolVersion = HttpVersion.HTTP_1_1;
 
     private final Map<String, List<String>> headers = new TreeMap<String, List<String>>(
-            HeaderNameComparator.INSTANCE);
+            HttpHeaderNameComparator.INSTANCE);
 
     private final Set<Cookie> cookies = new TreeSet<Cookie>(
             CookieComparator.INSTANCE);
 
-    private Content content = EmptyContent.INSTANCE;
+    private IoBuffer content = IoBuffer.allocate(0);
 
     public HttpVersion getProtocolVersion() {
         return protocolVersion;
@@ -155,16 +153,16 @@
                         : HttpHeaderConstants.VALUE_CLOSE);
     }
 
-    public Content getContent() {
+    public IoBuffer getContent() {
         return content;
     }
 
-    public void setContent(Content content) {
+    public void setContent(IoBuffer content) {
         if (content == null) {
-            this.content = EmptyContent.INSTANCE;
-        } else {
-            this.content = content;
+            throw new NullPointerException("content");
         }
+        
+        this.content = content;
     }
 
     public void removeCookie(String name) {

Copied: mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpRequest.java (from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpRequest.java)
URL: http://svn.apache.org/viewvc/mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpRequest.java?p2=mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpRequest.java&p1=mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpRequest.java&r1=596083&r2=596187&rev=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpRequest.java (original)
+++ mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpRequest.java Sun Nov 18 19:41:14 2007
@@ -17,25 +17,31 @@
  *  under the License.
  *
  */
-package org.safehaus.asyncweb.common;
+package org.apache.mina.filter.codec.http;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URI;
 import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
+import java.util.Set;
 import java.util.StringTokenizer;
+import java.util.TimeZone;
 
-import org.safehaus.asyncweb.util.HttpHeaderConstants;
+import org.apache.mina.common.IoBuffer;
 
 /**
  * A default implementation of {@link MutableHttpRequest}.
-// *
- * @author trustin
- * @author irvingd
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
  */
 public class DefaultHttpRequest extends DefaultHttpMessage implements
@@ -43,10 +49,8 @@
 
     private static final long serialVersionUID = 3044997961372568928L;
 
-    private HttpMethod method;
-
+    private HttpMethod method = HttpMethod.GET;
     private URI requestUri;
-
     private Map<String, List<String>> parameters = new HashMap<String, List<String>>();
 
     /**
@@ -264,5 +268,157 @@
 
     public Map<String, List<String>> getParameters() {
         return Collections.unmodifiableMap(parameters);
+    }
+
+    /**
+     * Thread-local DateFormat for old-style cookies
+     */
+    private static final ThreadLocal<DateFormat> EXPIRY_FORMAT_LOACAL = new ThreadLocal<DateFormat>() {
+        @Override
+        protected DateFormat initialValue() {
+            SimpleDateFormat format = new SimpleDateFormat(
+                    "EEE, dd-MMM-yyyy HH:mm:ss z", Locale.US);
+            format.setTimeZone(TimeZone.getTimeZone("GMT"));
+            return format;
+        }
+
+    };
+
+    /**
+     * A date long long ago, formatted in the old style cookie expire format
+     */
+    private static final String EXPIRED_DATE = getFormattedExpiry(0);
+
+    private static String getFormattedExpiry(long time) {
+        DateFormat format = EXPIRY_FORMAT_LOACAL.get();
+        return format.format(new Date(time));
+    }
+
+    public void normalize() {
+        // Encode parameters.
+        Map<String, List<String>> params = getParameters();
+        if (!params.isEmpty()) {
+            try {
+                boolean first = true;
+                StringBuilder buf = new StringBuilder();
+                for (Map.Entry<String, List<String>> e: params.entrySet()) {
+                    if (e.getValue().isEmpty()) {
+                        continue;
+                    }
+                    
+                    for (String v: e.getValue()) {
+                        if (!first) {
+                            buf.append('&');
+                        }
+                        
+                        buf.append(URLEncoder.encode(e.getKey(), "UTF-8"));
+                        buf.append('=');
+                        buf.append(URLEncoder.encode(v, "UTF-8"));
+                        first = false;
+                    }
+                }
+                
+                if (buf.length() > 0) {
+                    String uri = getRequestUri().toString();
+                    int queryIndex = uri.indexOf('?');
+                    switch (getMethod()) {
+                    case POST:
+                        if (queryIndex >= 0) {
+                            setRequestUri(new URI(uri.substring(0, queryIndex)));
+                        }
+                        IoBuffer content = IoBuffer.allocate(buf.length());
+                        content.put(buf.toString().getBytes(HttpCodecUtils.US_ASCII_CHARSET_NAME));
+                        content.flip();
+                        setContent(content);
+                        setHeader(
+                                HttpHeaderConstants.KEY_CONTENT_TYPE,
+                                HttpHeaderConstants.VALUE_URLENCODED_FORM);
+                        break;
+                    default:
+                        if (queryIndex >= 0) {
+                            setRequestUri(new URI(
+                                    uri.substring(0, queryIndex + 1) + buf));
+                        } else {
+                            setRequestUri(new URI(
+                                    uri + '?' + buf));
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                throw (InternalError) new InternalError(
+                        "Unexpected exception.").initCause(e);
+            }
+        }
+        
+        // Encode Cookies
+        Set<Cookie> cookies = getCookies();
+        if (!cookies.isEmpty()) {
+            // Clear previous values.
+            removeHeader("Set-Cookie");
+            
+            // And encode.
+            for (Cookie c: cookies) {
+                StringBuilder buf = new StringBuilder();
+                buf.append(c.getName());
+                buf.append('=');
+                buf.append(c.getValue());
+                if (c.getVersion() > 0) {
+                    buf.append("; version=");
+                    buf.append(c.getVersion());
+                }
+                if (c.getPath() != null) {
+                    buf.append("; path=");
+                    buf.append(c.getPath());
+                }
+                
+                long expiry = c.getMaxAge();
+                int version = c.getVersion();
+                if (expiry >= 0) {
+                    if (version == 0) {
+                        String expires = expiry == 0 ? EXPIRED_DATE
+                                : getFormattedExpiry(System.currentTimeMillis()
+                                        + 1000 * expiry);
+                        buf.append("; Expires=");
+                        buf.append(expires);
+                    } else {
+                        buf.append("; max-age=");
+                        buf.append(c.getMaxAge());
+                    }
+                }
+                
+                if (c.isSecure()) {
+                    buf.append("; secure");
+                }
+                
+                buf.append(';');
+                
+                addHeader("Set-Cookie", buf.toString());
+            }
+        }
+        
+        // Add the Host header.
+        if (!containsHeader("Host")) {
+            URI uri = getRequestUri();
+            String host = uri.getHost();
+            if (host != null) {
+                if ((uri.getScheme().equalsIgnoreCase("http") &&
+                     uri.getPort() != 80 && uri.getPort() > 0) ||
+                    (uri.getScheme().equalsIgnoreCase("https") &&
+                     uri.getPort() != 443 && uri.getPort() > 0)) {
+                    setHeader("Host", host + ':' + uri.getPort());
+                } else {
+                    setHeader("Host", host);
+                }
+            }
+        }
+        
+        // Set Content-Length.
+        if (!containsHeader(HttpHeaderConstants.KEY_TRANSFER_CODING)) {
+            IoBuffer content = getContent();
+            int contentLength = content == null? 0 : content.remaining();
+            setHeader(
+                    HttpHeaderConstants.KEY_CONTENT_LENGTH,
+                    String.valueOf(contentLength));
+        }
     }
 }

Copied: mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpResponse.java (from r596083, mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpResponse.java)
URL: http://svn.apache.org/viewvc/mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpResponse.java?p2=mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpResponse.java&p1=mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpResponse.java&r1=596083&r2=596187&rev=596187&view=diff
==============================================================================
--- mina/sandbox/asyncweb/core/src/main/java/org/safehaus/asyncweb/common/DefaultHttpResponse.java (original)
+++ mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/DefaultHttpResponse.java Sun Nov 18 19:41:14 2007
@@ -17,17 +17,15 @@
  *  under the License.
  *
  */
-package org.safehaus.asyncweb.common;
+package org.apache.mina.filter.codec.http;
+
+import org.apache.mina.common.IoBuffer;
 
-import org.safehaus.asyncweb.common.content.ByteBufferContent;
-import org.safehaus.asyncweb.common.content.EmptyContent;
-import org.safehaus.asyncweb.util.HttpDateFormat;
-import org.safehaus.asyncweb.util.HttpHeaderConstants;
 
 /**
  * A default implementation of {@link MutableHttpResponse}.
  *
- * @author trustin
+ * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
  */
 public class DefaultHttpResponse extends DefaultHttpMessage implements
@@ -36,7 +34,6 @@
     private static final long serialVersionUID = -3733889080525034446L;
 
     private HttpResponseStatus status = HttpResponseStatus.OK;
-
     private String statusReasonPhrase = HttpResponseStatus.OK.getDescription();
 
     /**
@@ -85,12 +82,11 @@
         setHeader(HttpHeaderConstants.KEY_DATE, HttpDateFormat
                 .getCurrentHttpDate());
 
-        // FIXME Support other content types.
         int contentLength;
-        if (isBodyAllowed(request) && getContent() instanceof ByteBufferContent) {
-            contentLength = ((ByteBufferContent) getContent()).size();
+        if (isBodyAllowed(request)) {
+            contentLength = getContent().remaining();
         } else {
-            setContent(EmptyContent.INSTANCE);
+            setContent(IoBuffer.allocate(0));
             contentLength = 0;
         }
 

Copied: mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpCodecFactory.java (from r596159, mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpProtocolCodecFactory.java)
URL: http://svn.apache.org/viewvc/mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpCodecFactory.java?p2=mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpCodecFactory.java&p1=mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpProtocolCodecFactory.java&r1=596159&r2=596187&rev=596187&view=diff
==============================================================================
--- mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpProtocolCodecFactory.java (original)
+++ mina/trunk/filter-codec-http/src/main/java/org/apache/mina/filter/codec/http/HttpCodecFactory.java Sun Nov 18 19:41:14 2007
@@ -19,11 +19,11 @@
  */
 package org.apache.mina.filter.codec.http;
 
+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.ProtocolEncoder;
 import org.apache.mina.filter.codec.ProtocolDecoder;
-
-import java.net.URL;
+import org.apache.mina.filter.codec.ProtocolEncoder;
 
 /**
  * TODO HttpProtocolCodecFactory.
@@ -31,22 +31,27 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class HttpProtocolCodecFactory implements ProtocolCodecFactory {
-
-    private final ProtocolEncoder encoder;
+public class HttpCodecFactory implements ProtocolCodecFactory {
 
-    private final ProtocolDecoder decoder;
+    private final ProtocolEncoder requestEncoder = new HttpRequestEncoder();
+    private final ProtocolEncoder responseEncoder = new HttpResponseEncoder();
 
-    public HttpProtocolCodecFactory(URL url) {
-        encoder = new HttpRequestEncoder(url);
-        decoder = new HttpResponseDecoder();
+    public HttpCodecFactory() {
     }
 
-    public ProtocolEncoder getEncoder() throws Exception {
-        return encoder;
+    public ProtocolEncoder getEncoder(IoSession session) throws Exception {
+        if (session.getService() instanceof IoAcceptor) {
+            return responseEncoder;
+        } else {
+            return requestEncoder;
+        }
     }
 
-    public ProtocolDecoder getDecoder() throws Exception {
-        return decoder;
+    public ProtocolDecoder getDecoder(IoSession session) throws Exception {
+        if (session.getService() instanceof IoAcceptor) {
+            return new HttpRequestDecoder();
+        } else {
+            return new HttpResponseDecoder();
+        }
     }
 }