diff --git a/client/src/main/java/org/apache/ahc/util/EventDispatcher.java b/client/src/main/java/org/apache/ahc/util/EventDispatcher.java
index a9b5df5..41dd291 100644
--- a/client/src/main/java/org/apache/ahc/util/EventDispatcher.java
+++ b/client/src/main/java/org/apache/ahc/util/EventDispatcher.java
@@ -27,7 +27,6 @@
 /**
  * This is an event dispatcher to dispatch monitoring events on separate threads
  * from the main thread.  
- * @version $Rev$ $Date$
  */
 public class EventDispatcher {
     /** shared thread pool for dispatching events */
diff --git a/client/src/main/java/org/apache/ahc/util/MonitoringListener.java b/client/src/main/java/org/apache/ahc/util/MonitoringListener.java
index 0a8e16e..7804972 100644
--- a/client/src/main/java/org/apache/ahc/util/MonitoringListener.java
+++ b/client/src/main/java/org/apache/ahc/util/MonitoringListener.java
@@ -21,7 +21,6 @@
 
 /**
  * The interface for listening for monitoring events.
- * @version $Rev$ $Date$
  */
 public interface MonitoringListener extends EventListener {
     /**
diff --git a/common/src/main/java/org/apache/asyncweb/common/Cookie.java b/common/src/main/java/org/apache/asyncweb/common/Cookie.java
index f7e31d3..a73ed4b 100644
--- a/common/src/main/java/org/apache/asyncweb/common/Cookie.java
+++ b/common/src/main/java/org/apache/asyncweb/common/Cookie.java
@@ -25,7 +25,6 @@
  * An HTTP cookie.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev: 592337 $, $Date: 2007-11-06 17:59:36 +0900 (화, 06 11월 2007) $
  */
 public interface Cookie extends Serializable, Comparable<Cookie> {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/CookieComparator.java b/common/src/main/java/org/apache/asyncweb/common/CookieComparator.java
index 50ff14e..1d7c4d9 100644
--- a/common/src/main/java/org/apache/asyncweb/common/CookieComparator.java
+++ b/common/src/main/java/org/apache/asyncweb/common/CookieComparator.java
@@ -25,7 +25,6 @@
 /**
  * 
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class CookieComparator implements Serializable, Comparator<Cookie> {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/DefaultCookie.java b/common/src/main/java/org/apache/asyncweb/common/DefaultCookie.java
index 3b4dc8c..49f2c1b 100644
--- a/common/src/main/java/org/apache/asyncweb/common/DefaultCookie.java
+++ b/common/src/main/java/org/apache/asyncweb/common/DefaultCookie.java
@@ -25,7 +25,6 @@
  * Default cookie implementation.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class DefaultCookie implements MutableCookie {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/DefaultHttpMessage.java b/common/src/main/java/org/apache/asyncweb/common/DefaultHttpMessage.java
index c1e7352..f890977 100644
--- a/common/src/main/java/org/apache/asyncweb/common/DefaultHttpMessage.java
+++ b/common/src/main/java/org/apache/asyncweb/common/DefaultHttpMessage.java
@@ -35,7 +35,6 @@
  * A default implementation of {@link MutableHttpMessage}.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class DefaultHttpMessage implements MutableHttpMessage {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/DefaultHttpRequest.java b/common/src/main/java/org/apache/asyncweb/common/DefaultHttpRequest.java
index 8cd685a..211e7df 100644
--- a/common/src/main/java/org/apache/asyncweb/common/DefaultHttpRequest.java
+++ b/common/src/main/java/org/apache/asyncweb/common/DefaultHttpRequest.java
@@ -44,7 +44,6 @@
  * A default implementation of {@link MutableHttpRequest}.
  * 
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class DefaultHttpRequest extends DefaultHttpMessage implements
         MutableHttpRequest {
diff --git a/common/src/main/java/org/apache/asyncweb/common/DefaultHttpResponse.java b/common/src/main/java/org/apache/asyncweb/common/DefaultHttpResponse.java
index 255bb42..868e2bf 100644
--- a/common/src/main/java/org/apache/asyncweb/common/DefaultHttpResponse.java
+++ b/common/src/main/java/org/apache/asyncweb/common/DefaultHttpResponse.java
@@ -26,7 +26,6 @@
  * A default implementation of {@link MutableHttpResponse}.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class DefaultHttpResponse extends DefaultHttpMessage implements
         MutableHttpResponse {
diff --git a/common/src/main/java/org/apache/asyncweb/common/HttpDateFormat.java b/common/src/main/java/org/apache/asyncweb/common/HttpDateFormat.java
index ce27a47..87e961a 100644
--- a/common/src/main/java/org/apache/asyncweb/common/HttpDateFormat.java
+++ b/common/src/main/java/org/apache/asyncweb/common/HttpDateFormat.java
@@ -30,7 +30,6 @@
  * Utility for generating date strings in the format required by HTTP.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 class HttpDateFormat {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/HttpHeaderConstants.java b/common/src/main/java/org/apache/asyncweb/common/HttpHeaderConstants.java
index 77b397a..a768226 100644
--- a/common/src/main/java/org/apache/asyncweb/common/HttpHeaderConstants.java
+++ b/common/src/main/java/org/apache/asyncweb/common/HttpHeaderConstants.java
@@ -23,7 +23,6 @@
  * HTTP Header Constants.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class HttpHeaderConstants {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/HttpHeaderNameComparator.java b/common/src/main/java/org/apache/asyncweb/common/HttpHeaderNameComparator.java
index e526b3f..11f2728 100644
--- a/common/src/main/java/org/apache/asyncweb/common/HttpHeaderNameComparator.java
+++ b/common/src/main/java/org/apache/asyncweb/common/HttpHeaderNameComparator.java
@@ -24,7 +24,6 @@
 
 /**
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 class HttpHeaderNameComparator implements Comparator<String>, Serializable {
     private static final long serialVersionUID = -3781572057321507963L;
diff --git a/common/src/main/java/org/apache/asyncweb/common/HttpMessage.java b/common/src/main/java/org/apache/asyncweb/common/HttpMessage.java
index b395c49..10edf1d 100644
--- a/common/src/main/java/org/apache/asyncweb/common/HttpMessage.java
+++ b/common/src/main/java/org/apache/asyncweb/common/HttpMessage.java
@@ -30,7 +30,6 @@
  * Base message type of {@link HttpRequest} and {@link HttpResponse}.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public interface HttpMessage extends Serializable {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/HttpMethod.java b/common/src/main/java/org/apache/asyncweb/common/HttpMethod.java
index 66ba35f..c56b067 100644
--- a/common/src/main/java/org/apache/asyncweb/common/HttpMethod.java
+++ b/common/src/main/java/org/apache/asyncweb/common/HttpMethod.java
@@ -23,7 +23,6 @@
  * Type-safe enumeration of standard HTTP Methods
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public enum HttpMethod {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/HttpRequest.java b/common/src/main/java/org/apache/asyncweb/common/HttpRequest.java
index ee2ea08..18e4564 100644
--- a/common/src/main/java/org/apache/asyncweb/common/HttpRequest.java
+++ b/common/src/main/java/org/apache/asyncweb/common/HttpRequest.java
@@ -27,7 +27,6 @@
  * A HTTP request.
  * 
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public interface HttpRequest extends HttpMessage {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/HttpResponse.java b/common/src/main/java/org/apache/asyncweb/common/HttpResponse.java
index 0643ef8..3f5b670 100644
--- a/common/src/main/java/org/apache/asyncweb/common/HttpResponse.java
+++ b/common/src/main/java/org/apache/asyncweb/common/HttpResponse.java
@@ -24,7 +24,6 @@
  * Represents a response to an <code>HttpRequest</code>.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public interface HttpResponse extends HttpMessage {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/HttpResponseStatus.java b/common/src/main/java/org/apache/asyncweb/common/HttpResponseStatus.java
index 54867f1..ae8eb3f 100644
--- a/common/src/main/java/org/apache/asyncweb/common/HttpResponseStatus.java
+++ b/common/src/main/java/org/apache/asyncweb/common/HttpResponseStatus.java
@@ -24,7 +24,6 @@
 /**
  * 
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class HttpResponseStatus implements Serializable {
 
@@ -309,7 +308,6 @@
     /**
      * Category of response
      *
-     * @author irvingd
      */
     public static enum Category {
         /**
diff --git a/common/src/main/java/org/apache/asyncweb/common/HttpVersion.java b/common/src/main/java/org/apache/asyncweb/common/HttpVersion.java
index 92abff6..8a630c6 100644
--- a/common/src/main/java/org/apache/asyncweb/common/HttpVersion.java
+++ b/common/src/main/java/org/apache/asyncweb/common/HttpVersion.java
@@ -24,7 +24,6 @@
  * Type safe enumeration representing HTTP protocol version
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public enum HttpVersion {
     /**
diff --git a/common/src/main/java/org/apache/asyncweb/common/MutableCookie.java b/common/src/main/java/org/apache/asyncweb/common/MutableCookie.java
index d58e644..d5e94da 100644
--- a/common/src/main/java/org/apache/asyncweb/common/MutableCookie.java
+++ b/common/src/main/java/org/apache/asyncweb/common/MutableCookie.java
@@ -24,7 +24,6 @@
  * A mutable {@link Cookie}.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public interface MutableCookie extends Cookie {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/MutableHttpMessage.java b/common/src/main/java/org/apache/asyncweb/common/MutableHttpMessage.java
index ed47742..4636e38 100644
--- a/common/src/main/java/org/apache/asyncweb/common/MutableHttpMessage.java
+++ b/common/src/main/java/org/apache/asyncweb/common/MutableHttpMessage.java
@@ -29,7 +29,6 @@
  * A mutable {@link HttpMessage}.
  * 
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public interface MutableHttpMessage extends HttpMessage {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/MutableHttpRequest.java b/common/src/main/java/org/apache/asyncweb/common/MutableHttpRequest.java
index d67eacf..3741e03 100644
--- a/common/src/main/java/org/apache/asyncweb/common/MutableHttpRequest.java
+++ b/common/src/main/java/org/apache/asyncweb/common/MutableHttpRequest.java
@@ -28,7 +28,6 @@
  * A mutable {@link HttpRequest}.
  * 
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public interface MutableHttpRequest extends MutableHttpMessage, HttpRequest {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/MutableHttpResponse.java b/common/src/main/java/org/apache/asyncweb/common/MutableHttpResponse.java
index da9b9e0..8549432 100644
--- a/common/src/main/java/org/apache/asyncweb/common/MutableHttpResponse.java
+++ b/common/src/main/java/org/apache/asyncweb/common/MutableHttpResponse.java
@@ -23,7 +23,6 @@
  * A mutable {@link HttpResponse}
  * 
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public interface MutableHttpResponse extends MutableHttpMessage, HttpResponse {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/ChunkedBodyDecodingState.java b/common/src/main/java/org/apache/asyncweb/common/codec/ChunkedBodyDecodingState.java
index 0951543..cb63749 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/ChunkedBodyDecodingState.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/ChunkedBodyDecodingState.java
@@ -66,7 +66,6 @@
  * copying.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public abstract class ChunkedBodyDecodingState extends DecodingStateMachine {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpCodecFactory.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpCodecFactory.java
index 59233b3..fd25e00 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpCodecFactory.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpCodecFactory.java
@@ -32,7 +32,6 @@
  * 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
 {
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpCodecUtils.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpCodecUtils.java
index 3b32566..faf111b 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpCodecUtils.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpCodecUtils.java
@@ -36,7 +36,6 @@
 
 /**
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class HttpCodecUtils {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpHeaderDecodingState.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpHeaderDecodingState.java
index c49f4a0..3d12dc0 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpHeaderDecodingState.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpHeaderDecodingState.java
@@ -40,7 +40,6 @@
  * the responsibility of decoding a specific part of the header.<br/>
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 abstract class HttpHeaderDecodingState extends DecodingStateMachine {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecoder.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecoder.java
index ccb13a2..0970e24 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecoder.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecoder.java
@@ -31,7 +31,6 @@
  * An HttpRequest decoder.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class HttpRequestDecoder extends DecodingStateProtocolDecoder
 {
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecoderException.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecoderException.java
index 863ea0a..7b9e9b1 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecoderException.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecoderException.java
@@ -29,7 +29,6 @@
  * failure to specify the response which is ultimately returned to the client.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class HttpRequestDecoderException extends ProtocolDecoderException {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecodingStateMachine.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecodingStateMachine.java
index ca2a8dc..553ec3d 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecodingStateMachine.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestDecodingStateMachine.java
@@ -54,7 +54,6 @@
  * each new parse.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 abstract class HttpRequestDecodingStateMachine extends DecodingStateMachine {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestEncoder.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestEncoder.java
index f9e482f..d63b06d 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestEncoder.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestEncoder.java
@@ -33,7 +33,6 @@
  * TODO HttpRequestEncoder.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class HttpRequestEncoder extends ProtocolEncoderAdapter {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestLineDecodingState.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestLineDecodingState.java
index bde8da6..174c1c5 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestLineDecodingState.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpRequestLineDecodingState.java
@@ -41,7 +41,6 @@
  * </pre>
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 abstract class HttpRequestLineDecodingState extends DecodingStateMachine {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseDecoder.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseDecoder.java
index feed00d..f421a66 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseDecoder.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseDecoder.java
@@ -27,7 +27,6 @@
 
 /**
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class HttpResponseDecoder extends DecodingStateProtocolDecoder {
     public HttpResponseDecoder() {
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseDecodingState.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseDecodingState.java
index 3901f4c..6373580 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseDecodingState.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseDecodingState.java
@@ -56,7 +56,6 @@
  * each new parse.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 abstract class HttpResponseDecodingState extends DecodingStateMachine {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseEncoder.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseEncoder.java
index 464da83..cce4fd4 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseEncoder.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseEncoder.java
@@ -32,7 +32,6 @@
 /**
  * 
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class HttpResponseEncoder implements ProtocolEncoder {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseLineDecodingState.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseLineDecodingState.java
index d2a54e7..f7ec4c0 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseLineDecodingState.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseLineDecodingState.java
@@ -34,7 +34,6 @@
  * Decodes a HTTP response line.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 abstract class HttpResponseLineDecodingState extends DecodingStateMachine {
 
diff --git a/common/src/main/java/org/apache/asyncweb/common/codec/HttpVersionDecodingState.java b/common/src/main/java/org/apache/asyncweb/common/codec/HttpVersionDecodingState.java
index 040075d..5972328 100644
--- a/common/src/main/java/org/apache/asyncweb/common/codec/HttpVersionDecodingState.java
+++ b/common/src/main/java/org/apache/asyncweb/common/codec/HttpVersionDecodingState.java
@@ -34,7 +34,6 @@
  * Decodes HTTP version.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 abstract class HttpVersionDecodingState implements DecodingState {
 
diff --git a/common/src/test/java/org/apache/asyncweb/common/integration/AvailablePortFinder.java b/common/src/test/java/org/apache/asyncweb/common/integration/AvailablePortFinder.java
index a7aef3d..5425a48 100755
--- a/common/src/test/java/org/apache/asyncweb/common/integration/AvailablePortFinder.java
+++ b/common/src/test/java/org/apache/asyncweb/common/integration/AvailablePortFinder.java
@@ -30,7 +30,6 @@
  * Finds currently available server ports.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$
  * @see <a href="http://www.iana.org/assignments/port-numbers">IANA.org</a>
  */
 public class AvailablePortFinder {
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/helloworld/HelloWorldHttpService.java b/examples/src/main/java/org/apache/asyncweb/examples/helloworld/HelloWorldHttpService.java
index 3632ea3..c8fdea0 100644
--- a/examples/src/main/java/org/apache/asyncweb/examples/helloworld/HelloWorldHttpService.java
+++ b/examples/src/main/java/org/apache/asyncweb/examples/helloworld/HelloWorldHttpService.java
@@ -42,8 +42,6 @@
  *
  * Note that normally we wouldn't be generating html directly in a service :o)
  *
- * @author irvingd
- *
  */
 public class HelloWorldHttpService implements HttpService {
 
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/listener/ClientListenerExample.java b/examples/src/main/java/org/apache/asyncweb/examples/listener/ClientListenerExample.java
index 288afc1..69a3592 100644
--- a/examples/src/main/java/org/apache/asyncweb/examples/listener/ClientListenerExample.java
+++ b/examples/src/main/java/org/apache/asyncweb/examples/listener/ClientListenerExample.java
@@ -32,7 +32,6 @@
  * for long polling requests.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class ClientListenerExample implements HttpService
 {
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/listener/Main.java b/examples/src/main/java/org/apache/asyncweb/examples/listener/Main.java
index 667140c..c59aba5 100755
--- a/examples/src/main/java/org/apache/asyncweb/examples/listener/Main.java
+++ b/examples/src/main/java/org/apache/asyncweb/examples/listener/Main.java
@@ -30,7 +30,6 @@
  * An application launcher which runs the ClientListenerExample example.
  *
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA Project</a>
- * @version $Rev$, $Date$
  */
 public class Main
 {
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/session/SessionExample.java b/examples/src/main/java/org/apache/asyncweb/examples/session/SessionExample.java
index 7d578ff..666b092 100644
--- a/examples/src/main/java/org/apache/asyncweb/examples/session/SessionExample.java
+++ b/examples/src/main/java/org/apache/asyncweb/examples/session/SessionExample.java
@@ -33,8 +33,6 @@
 /**
  * A very simple example which demonstrates session usage
  *
- * @author irvingd
- *
  */
 public class SessionExample implements HttpService
 {
diff --git a/server/src/main/java/org/apache/asyncweb/server/BasicServiceContainer.java b/server/src/main/java/org/apache/asyncweb/server/BasicServiceContainer.java
index 6cb41a4..6c8ec54 100644
--- a/server/src/main/java/org/apache/asyncweb/server/BasicServiceContainer.java
+++ b/server/src/main/java/org/apache/asyncweb/server/BasicServiceContainer.java
@@ -36,10 +36,7 @@
 /**
  * Basic <code>ServiceContainer</code> implementation.
  *
- * @author irvingd
- * @author trustin
- *
- * @version $Rev$, $Date$
+ * 
  */
 public class BasicServiceContainer implements ServiceContainer {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/ContainerLifecycleException.java b/server/src/main/java/org/apache/asyncweb/server/ContainerLifecycleException.java
index f6c7061..4df3ad3 100644
--- a/server/src/main/java/org/apache/asyncweb/server/ContainerLifecycleException.java
+++ b/server/src/main/java/org/apache/asyncweb/server/ContainerLifecycleException.java
@@ -23,7 +23,6 @@
  * Exception thrown when a problem is encountered whilst transitioning
  * a <code>ServiceContainer</code> through its lifecycle
  *
- * @author irvingd
  *
  */
 public class ContainerLifecycleException extends Exception {
diff --git a/server/src/main/java/org/apache/asyncweb/server/HttpClientListener.java b/server/src/main/java/org/apache/asyncweb/server/HttpClientListener.java
index 701ea58..8337c74 100644
--- a/server/src/main/java/org/apache/asyncweb/server/HttpClientListener.java
+++ b/server/src/main/java/org/apache/asyncweb/server/HttpClientListener.java
@@ -27,7 +27,6 @@
  * for notifications when the connection idles.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public interface HttpClientListener
 {
diff --git a/server/src/main/java/org/apache/asyncweb/server/HttpService.java b/server/src/main/java/org/apache/asyncweb/server/HttpService.java
index 48efb7f..0409bb2 100644
--- a/server/src/main/java/org/apache/asyncweb/server/HttpService.java
+++ b/server/src/main/java/org/apache/asyncweb/server/HttpService.java
@@ -24,7 +24,6 @@
  * An application-level HTTP request processor.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public interface HttpService
 {
diff --git a/server/src/main/java/org/apache/asyncweb/server/HttpServiceContext.java b/server/src/main/java/org/apache/asyncweb/server/HttpServiceContext.java
index f5a24fb..f17b496 100644
--- a/server/src/main/java/org/apache/asyncweb/server/HttpServiceContext.java
+++ b/server/src/main/java/org/apache/asyncweb/server/HttpServiceContext.java
@@ -31,7 +31,6 @@
  * Provides conversational context between a HTTP client and a {@link HttpService}.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public interface HttpServiceContext
 {
diff --git a/server/src/main/java/org/apache/asyncweb/server/HttpServiceFilter.java b/server/src/main/java/org/apache/asyncweb/server/HttpServiceFilter.java
index ade76d3..baa63d7 100644
--- a/server/src/main/java/org/apache/asyncweb/server/HttpServiceFilter.java
+++ b/server/src/main/java/org/apache/asyncweb/server/HttpServiceFilter.java
@@ -54,9 +54,6 @@
     /**
      * Encapsuates a location within a chain of tasks to be performed.
      *
-     * @author irvingd
-     * @author trustin
-     * @version $Rev$, $Date$
      */
     public interface NextFilter {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/HttpServiceHandler.java b/server/src/main/java/org/apache/asyncweb/server/HttpServiceHandler.java
index 67a4c9c..bee7bf7 100644
--- a/server/src/main/java/org/apache/asyncweb/server/HttpServiceHandler.java
+++ b/server/src/main/java/org/apache/asyncweb/server/HttpServiceHandler.java
@@ -39,7 +39,6 @@
  * If an incoming request can not be mapped to an <code>HttpService</code>,
  * a <code>404</code> response status is returned to the client
  *
- * @author irvingd
  *
  */
 public class HttpServiceHandler implements HttpServiceFilter {
diff --git a/server/src/main/java/org/apache/asyncweb/server/HttpSession.java b/server/src/main/java/org/apache/asyncweb/server/HttpSession.java
index 41ca832..2fe26a6 100644
--- a/server/src/main/java/org/apache/asyncweb/server/HttpSession.java
+++ b/server/src/main/java/org/apache/asyncweb/server/HttpSession.java
@@ -22,7 +22,6 @@
 /**
  * Provides a mechanism to store data across multiple requests from the same client.
  *
- * @author irvingd
  *
  */
 public interface HttpSession {
diff --git a/server/src/main/java/org/apache/asyncweb/server/Transport.java b/server/src/main/java/org/apache/asyncweb/server/Transport.java
index dcd1157..a81c8e6 100644
--- a/server/src/main/java/org/apache/asyncweb/server/Transport.java
+++ b/server/src/main/java/org/apache/asyncweb/server/Transport.java
@@ -22,7 +22,6 @@
 /**
  * A mechanism over which <code>Request</code>s are received.
  *
- * @author irvingd
  *
  */
 public interface Transport {
diff --git a/server/src/main/java/org/apache/asyncweb/server/context/AbstractHttpServiceContext.java b/server/src/main/java/org/apache/asyncweb/server/context/AbstractHttpServiceContext.java
index 9526806..6a7b406 100644
--- a/server/src/main/java/org/apache/asyncweb/server/context/AbstractHttpServiceContext.java
+++ b/server/src/main/java/org/apache/asyncweb/server/context/AbstractHttpServiceContext.java
@@ -40,7 +40,6 @@
  * A default implementation of {@link HttpServiceContext}.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public abstract class AbstractHttpServiceContext implements HttpServiceContext
 {
diff --git a/server/src/main/java/org/apache/asyncweb/server/context/BasicKeepAliveStrategy.java b/server/src/main/java/org/apache/asyncweb/server/context/BasicKeepAliveStrategy.java
index 6973b56..91a384b 100644
--- a/server/src/main/java/org/apache/asyncweb/server/context/BasicKeepAliveStrategy.java
+++ b/server/src/main/java/org/apache/asyncweb/server/context/BasicKeepAliveStrategy.java
@@ -37,8 +37,6 @@
  * Implementations should override <code></code> to provide additional
  * constraints
  *
- * @author irvingd
- *
  */
 public class BasicKeepAliveStrategy implements KeepAliveStrategy {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/context/KeepAliveStrategy.java b/server/src/main/java/org/apache/asyncweb/server/context/KeepAliveStrategy.java
index 9ef41eb..e6c99a1 100644
--- a/server/src/main/java/org/apache/asyncweb/server/context/KeepAliveStrategy.java
+++ b/server/src/main/java/org/apache/asyncweb/server/context/KeepAliveStrategy.java
@@ -26,8 +26,6 @@
  * Defines a strategy for deciding whether a connection should
  * remain open after a response has been handled
  *
- * @author irvingd
- *
  */
 public interface KeepAliveStrategy {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/errorReporting/CSS.java b/server/src/main/java/org/apache/asyncweb/server/errorReporting/CSS.java
index 77a4de9..6fa53e6 100644
--- a/server/src/main/java/org/apache/asyncweb/server/errorReporting/CSS.java
+++ b/server/src/main/java/org/apache/asyncweb/server/errorReporting/CSS.java
@@ -29,8 +29,6 @@
  * TODO: Should be moved out to a configuration file when we sort out a
  *       standard resource strategy
  *
- * @author irvingd
- *
  */
 public class CSS {
     //525D76
diff --git a/server/src/main/java/org/apache/asyncweb/server/errorReporting/ErrorResponseFormatter.java b/server/src/main/java/org/apache/asyncweb/server/errorReporting/ErrorResponseFormatter.java
index 2a285be..2a4ff60 100644
--- a/server/src/main/java/org/apache/asyncweb/server/errorReporting/ErrorResponseFormatter.java
+++ b/server/src/main/java/org/apache/asyncweb/server/errorReporting/ErrorResponseFormatter.java
@@ -25,8 +25,6 @@
 /**
  * Formats error responses to include a descriptive body where appropriate
  *
- * @author irvingd
- *
  */
 public interface ErrorResponseFormatter {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/filter/GZipFilter.java b/server/src/main/java/org/apache/asyncweb/server/filter/GZipFilter.java
index 778b717..e45b86d 100644
--- a/server/src/main/java/org/apache/asyncweb/server/filter/GZipFilter.java
+++ b/server/src/main/java/org/apache/asyncweb/server/filter/GZipFilter.java
@@ -34,7 +34,6 @@
  * the client support it. 
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev: 615489 $, $Date: 2008-01-26 21:59:06 +0100 (sam, 26 jan 2008) $
  */
 public class GZipFilter implements HttpServiceFilter {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/filter/SessionKeepAliveFilter.java b/server/src/main/java/org/apache/asyncweb/server/filter/SessionKeepAliveFilter.java
index 174652a..2c72fe5 100644
--- a/server/src/main/java/org/apache/asyncweb/server/filter/SessionKeepAliveFilter.java
+++ b/server/src/main/java/org/apache/asyncweb/server/filter/SessionKeepAliveFilter.java
@@ -34,8 +34,6 @@
  * This handler does not need to be installed for deployments which do not employ
  * sessions
  *
- * @author irvingd
- *
  */
 public class SessionKeepAliveFilter implements HttpServiceFilter
 {
diff --git a/server/src/main/java/org/apache/asyncweb/server/resolver/CompositeResolver.java b/server/src/main/java/org/apache/asyncweb/server/resolver/CompositeResolver.java
index 4dbb936..bdf63d2 100644
--- a/server/src/main/java/org/apache/asyncweb/server/resolver/CompositeResolver.java
+++ b/server/src/main/java/org/apache/asyncweb/server/resolver/CompositeResolver.java
@@ -31,8 +31,6 @@
  * resolvers in turn until a match is made or all children have
  * been tried
  *
- * @author irvingd
- *
  */
 public class CompositeResolver implements ServiceResolver {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/resolver/ExactMatchURIServiceResolver.java b/server/src/main/java/org/apache/asyncweb/server/resolver/ExactMatchURIServiceResolver.java
index b1cf85c..719f3f7 100644
--- a/server/src/main/java/org/apache/asyncweb/server/resolver/ExactMatchURIServiceResolver.java
+++ b/server/src/main/java/org/apache/asyncweb/server/resolver/ExactMatchURIServiceResolver.java
@@ -32,7 +32,6 @@
  * service names. An exact match is required on a request URI to
  * a registered URI must be made for a service name to be resolved
  *
- * @author irvingd
  * FIXME Rename to ExactMatchPathServiceResolver
  */
 public class ExactMatchURIServiceResolver implements ServiceResolver {
diff --git a/server/src/main/java/org/apache/asyncweb/server/resolver/PassThruResolver.java b/server/src/main/java/org/apache/asyncweb/server/resolver/PassThruResolver.java
index 2dee3e3..a910e94 100644
--- a/server/src/main/java/org/apache/asyncweb/server/resolver/PassThruResolver.java
+++ b/server/src/main/java/org/apache/asyncweb/server/resolver/PassThruResolver.java
@@ -26,8 +26,6 @@
  * request URI as the service name, optionally removing any leading
  * "/"
  *
- * @author irvingd
- *
  */
 public class PassThruResolver implements ServiceResolver {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/resolver/PatternMatchResolver.java b/server/src/main/java/org/apache/asyncweb/server/resolver/PatternMatchResolver.java
index 22edc6d..1fbf498 100644
--- a/server/src/main/java/org/apache/asyncweb/server/resolver/PatternMatchResolver.java
+++ b/server/src/main/java/org/apache/asyncweb/server/resolver/PatternMatchResolver.java
@@ -36,7 +36,6 @@
  * "/hello/".
  * 
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev: 601236 $, $Date: 2007-12-05 08:53:03 +0100 (mer, 05 déc 2007) $
  */
 public class PatternMatchResolver implements ServiceResolver {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/resolver/ServiceResolver.java b/server/src/main/java/org/apache/asyncweb/server/resolver/ServiceResolver.java
index 670e9e0..1dfd7ba 100644
--- a/server/src/main/java/org/apache/asyncweb/server/resolver/ServiceResolver.java
+++ b/server/src/main/java/org/apache/asyncweb/server/resolver/ServiceResolver.java
@@ -25,8 +25,6 @@
  * Resolves the name of the <code>HttpService</code> to be used to
  * service a request.
  *
- * @author irvingd
- *
  */
 public interface ServiceResolver {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/resolver/SimplePrefixResolver.java b/server/src/main/java/org/apache/asyncweb/server/resolver/SimplePrefixResolver.java
index 4a0d670..a738050 100644
--- a/server/src/main/java/org/apache/asyncweb/server/resolver/SimplePrefixResolver.java
+++ b/server/src/main/java/org/apache/asyncweb/server/resolver/SimplePrefixResolver.java
@@ -46,8 +46,6 @@
  *  <tr><td>/x/serviceA</td><td>null</td></tr>
  * </table>
  *
- * @author irvingd
- *
  */
 public class SimplePrefixResolver implements ServiceResolver {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/session/BasicSession.java b/server/src/main/java/org/apache/asyncweb/server/session/BasicSession.java
index 68f76a4..66bf2f2 100644
--- a/server/src/main/java/org/apache/asyncweb/server/session/BasicSession.java
+++ b/server/src/main/java/org/apache/asyncweb/server/session/BasicSession.java
@@ -30,8 +30,6 @@
  * A basic <code>Session</code> implementation which holds session values
  * in memory
  *
- * @author irvingd
- *
  */
 class BasicSession implements HttpSession
 {
diff --git a/server/src/main/java/org/apache/asyncweb/server/session/BasicSessionStore.java b/server/src/main/java/org/apache/asyncweb/server/session/BasicSessionStore.java
index 5ebbed4..d4a6ec2 100644
--- a/server/src/main/java/org/apache/asyncweb/server/session/BasicSessionStore.java
+++ b/server/src/main/java/org/apache/asyncweb/server/session/BasicSessionStore.java
@@ -39,8 +39,6 @@
  * data in memory. A <code>TimedPermitIssuer</code> is employed to issue a time-out
  * permit for each issued session.
  *
- * @author irvingd
- *
  */
 public class BasicSessionStore implements HttpSessionStore {
 
@@ -265,8 +263,6 @@
      * Receives notifications of timed out permits issued by this store,
      * and triggers expiry of the associated session
      *
-     * @author irvingd
-     *
      */
     private class TimeoutListener implements PermitExpirationListener
     {
diff --git a/server/src/main/java/org/apache/asyncweb/server/session/CookieIdentifier.java b/server/src/main/java/org/apache/asyncweb/server/session/CookieIdentifier.java
index d4cb268..24a4494 100644
--- a/server/src/main/java/org/apache/asyncweb/server/session/CookieIdentifier.java
+++ b/server/src/main/java/org/apache/asyncweb/server/session/CookieIdentifier.java
@@ -29,7 +29,6 @@
  * A <code>SessionIdentifier</code> which adds and extracts session key
  * cookies
  *
- * @author irvingd
  *
  */
 public class CookieIdentifier implements HttpSessionIdentifier {
diff --git a/server/src/main/java/org/apache/asyncweb/server/session/DefaultSessionAccessor.java b/server/src/main/java/org/apache/asyncweb/server/session/DefaultSessionAccessor.java
index d665c09..90cfc6c 100644
--- a/server/src/main/java/org/apache/asyncweb/server/session/DefaultSessionAccessor.java
+++ b/server/src/main/java/org/apache/asyncweb/server/session/DefaultSessionAccessor.java
@@ -34,7 +34,6 @@
  * implementations used can be switched (if required) using the appropriate
  * setter methods.<br/>
  *
- * @author irvingd
  *
  */
 public class DefaultSessionAccessor implements HttpSessionAccessor {
diff --git a/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionAccessor.java b/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionAccessor.java
index 17ff09f..cb80d81 100644
--- a/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionAccessor.java
+++ b/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionAccessor.java
@@ -28,7 +28,6 @@
  * A <code>SessionAccessor</code> provides a simple interface for accessing
  * the Session associated with a request (and optionally creating it if required)
  *
- * @author irvingd
  *
  */
 public interface HttpSessionAccessor {
diff --git a/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionIdentifier.java b/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionIdentifier.java
index 62f44f1..8ff28ff 100644
--- a/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionIdentifier.java
+++ b/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionIdentifier.java
@@ -26,7 +26,6 @@
  * A strategy for encoding / decoding session keys information to / from
  * requests.
  *
- * @author irvingd
  *
  */
 public interface HttpSessionIdentifier {
diff --git a/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionKeyFactory.java b/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionKeyFactory.java
index 6c3980f..af16514 100644
--- a/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionKeyFactory.java
+++ b/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionKeyFactory.java
@@ -30,7 +30,6 @@
  *       at any time in the future</li>
  * </ul>
  *
- * @author irvingd
  *
  */
 public interface HttpSessionKeyFactory {
diff --git a/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionListener.java b/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionListener.java
index f3d6c93..44e887f 100644
--- a/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionListener.java
+++ b/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionListener.java
@@ -24,7 +24,6 @@
 /**
  * Receives notifications of session lifecycle events
  *
- * @author irvingd
  *
  */
 public interface HttpSessionListener {
diff --git a/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionStore.java b/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionStore.java
index a263901..b60cfcf 100644
--- a/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionStore.java
+++ b/server/src/main/java/org/apache/asyncweb/server/session/HttpSessionStore.java
@@ -24,7 +24,6 @@
 /**
  * Creates and maintains <code>Session</code>s.
  *
- * @author irvingd
  *
  */
 public interface HttpSessionStore {
diff --git a/server/src/main/java/org/apache/asyncweb/server/session/LoggingSessionListener.java b/server/src/main/java/org/apache/asyncweb/server/session/LoggingSessionListener.java
index 263adc0..8113b74 100644
--- a/server/src/main/java/org/apache/asyncweb/server/session/LoggingSessionListener.java
+++ b/server/src/main/java/org/apache/asyncweb/server/session/LoggingSessionListener.java
@@ -26,7 +26,6 @@
 /**
  * A simple <code>SessionListener</code> which logs the various lifecycle events
  *
- * @author irvingd
  *
  */
 public class LoggingSessionListener implements HttpSessionListener {
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 23fe5bd..238f23a 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
@@ -31,7 +31,6 @@
  * 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
 {
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 1779a50..4f250b0 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
@@ -28,7 +28,6 @@
  * IO handler extension for HTTP.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public interface HttpIoHandler extends IoHandler 
 {
diff --git a/server/src/main/java/org/apache/asyncweb/server/transport/mina/LoggingExceptionMonitor.java b/server/src/main/java/org/apache/asyncweb/server/transport/mina/LoggingExceptionMonitor.java
index 635bbc8..8373006 100644
--- a/server/src/main/java/org/apache/asyncweb/server/transport/mina/LoggingExceptionMonitor.java
+++ b/server/src/main/java/org/apache/asyncweb/server/transport/mina/LoggingExceptionMonitor.java
@@ -25,7 +25,6 @@
 /**
  * An <code>ExceptionMonitor</code> which simply logs exceptions.
  *
- * @author irvingd
  *
  */
 class LoggingExceptionMonitor extends org.apache.mina.util.ExceptionMonitor {
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 9f4f982..c3bb4cb 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
@@ -45,7 +45,6 @@
  * responses using non-blocking selector based IO.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class MinaTransport implements Transport
 {
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 7c48252..e5ab613 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
@@ -55,7 +55,6 @@
  * The single session handler implementation.
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
  */
 public class SingleHttpSessionIoHandler implements SingleSessionIoHandler
 {
diff --git a/server/src/main/java/org/apache/asyncweb/server/util/LinkedPermitIssuer.java b/server/src/main/java/org/apache/asyncweb/server/util/LinkedPermitIssuer.java
index e27287d..2e8fe63 100644
--- a/server/src/main/java/org/apache/asyncweb/server/util/LinkedPermitIssuer.java
+++ b/server/src/main/java/org/apache/asyncweb/server/util/LinkedPermitIssuer.java
@@ -38,7 +38,6 @@
  * Each permit issued by this issuer has direct access to its place in the list -
  * allowing constant time renewals.
  *
- * @author irvingd
  *
  */
 public class LinkedPermitIssuer implements TimedPermitIssuer
@@ -197,7 +196,6 @@
     /**
      * An entry in a linked list of permits.
      *
-     * @author irvingd
      *
      */
     private class PermitEntry implements TimedPermit {
@@ -302,7 +300,6 @@
      * Cancelled and expired entries are removed (listeners are notified of all
      * expired entries)
      *
-     * @author irvingd
      */
     private class ExpiryNotifier implements Runnable {
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/util/PermitExpirationListener.java b/server/src/main/java/org/apache/asyncweb/server/util/PermitExpirationListener.java
index 03e0b17..9bdc981 100644
--- a/server/src/main/java/org/apache/asyncweb/server/util/PermitExpirationListener.java
+++ b/server/src/main/java/org/apache/asyncweb/server/util/PermitExpirationListener.java
@@ -23,7 +23,6 @@
  * Something interested in receiving notifications when permits issued by a
  * <code>TimedPermitIssuer</code> exipre
  *
- * @author irvingd
  *
  */
 public interface PermitExpirationListener {
diff --git a/server/src/main/java/org/apache/asyncweb/server/util/StringBundle.java b/server/src/main/java/org/apache/asyncweb/server/util/StringBundle.java
index dd2dd61..6a2f6c9 100644
--- a/server/src/main/java/org/apache/asyncweb/server/util/StringBundle.java
+++ b/server/src/main/java/org/apache/asyncweb/server/util/StringBundle.java
@@ -30,7 +30,6 @@
 /**
  * Simplifies looking up locale specific format strings.
  *
- * @author irvingd
  *
  */
 public class StringBundle {
diff --git a/server/src/main/java/org/apache/asyncweb/server/util/TimedPermit.java b/server/src/main/java/org/apache/asyncweb/server/util/TimedPermit.java
index 87782ff..de5cd5f 100644
--- a/server/src/main/java/org/apache/asyncweb/server/util/TimedPermit.java
+++ b/server/src/main/java/org/apache/asyncweb/server/util/TimedPermit.java
@@ -25,7 +25,6 @@
  * When the time limit (determined by the issuer) is reached, any listeners attached to
  * the issuer are notified.
  *
- * @author irvingd
  *
  */
 public interface TimedPermit {
diff --git a/server/src/main/java/org/apache/asyncweb/server/util/TimedPermitIssuer.java b/server/src/main/java/org/apache/asyncweb/server/util/TimedPermitIssuer.java
index 7ecfe74..b2cc350 100644
--- a/server/src/main/java/org/apache/asyncweb/server/util/TimedPermitIssuer.java
+++ b/server/src/main/java/org/apache/asyncweb/server/util/TimedPermitIssuer.java
@@ -28,7 +28,6 @@
  * <code>PermitExpirationListener</code>s associated with this issuer are notified of
  * the expiry.
  *
- * @author irvingd
  *
  */
 public interface TimedPermitIssuer {
diff --git a/server/src/test/java/org/apache/asyncweb/server/resolver/DummyResolver.java b/server/src/test/java/org/apache/asyncweb/server/resolver/DummyResolver.java
index b18459e..85398a2 100644
--- a/server/src/test/java/org/apache/asyncweb/server/resolver/DummyResolver.java
+++ b/server/src/test/java/org/apache/asyncweb/server/resolver/DummyResolver.java
@@ -29,7 +29,6 @@
  * A simple <code>ServiceResolver</code> which allows mappings
  * from requests to service names to be registered
  *
- * @author irvingd
  *
  */
 public class DummyResolver implements ServiceResolver {
diff --git a/server/src/test/java/org/apache/asyncweb/server/resolver/ExactMatchURIServiceResolverTest.java b/server/src/test/java/org/apache/asyncweb/server/resolver/ExactMatchURIServiceResolverTest.java
index 6d1703d..99dd4a4 100644
--- a/server/src/test/java/org/apache/asyncweb/server/resolver/ExactMatchURIServiceResolverTest.java
+++ b/server/src/test/java/org/apache/asyncweb/server/resolver/ExactMatchURIServiceResolverTest.java
@@ -32,7 +32,6 @@
 /**
  * Tests the <code>ExactMatchURIServiceResolver</code>
  *
- * @author irvingd
  *
  */
 public class ExactMatchURIServiceResolverTest extends TestCase {
diff --git a/server/src/test/java/org/apache/asyncweb/server/resolver/SimplePrefixResolverTest.java b/server/src/test/java/org/apache/asyncweb/server/resolver/SimplePrefixResolverTest.java
index 391f9d5..8e12c49 100644
--- a/server/src/test/java/org/apache/asyncweb/server/resolver/SimplePrefixResolverTest.java
+++ b/server/src/test/java/org/apache/asyncweb/server/resolver/SimplePrefixResolverTest.java
@@ -32,7 +32,6 @@
 /**
  * Tests <code>SimplePrefixResolver</code>
  *
- * @author irvingd
  *
  */
 public class SimplePrefixResolverTest extends TestCase {
diff --git a/server/src/test/java/org/apache/asyncweb/server/util/LinkedPermitIssuerTest.java b/server/src/test/java/org/apache/asyncweb/server/util/LinkedPermitIssuerTest.java
index 3342085..10d2aff 100644
--- a/server/src/test/java/org/apache/asyncweb/server/util/LinkedPermitIssuerTest.java
+++ b/server/src/test/java/org/apache/asyncweb/server/util/LinkedPermitIssuerTest.java
@@ -30,7 +30,6 @@
 /**
  * Tests <code>LinkedPermitIssuer</code>
  *
- * @author irvingd
  *
  */
 public class LinkedPermitIssuerTest extends TestCase {
@@ -149,7 +148,6 @@
     /**
      * A mock <code>PermitExpirationListener</code>
      *
-     * @author irvingd
      */
     private class MockListener implements PermitExpirationListener
     {
diff --git a/server/src/test/java/org/apache/asyncweb/server/util/MockNextFilter.java b/server/src/test/java/org/apache/asyncweb/server/util/MockNextFilter.java
index 97e420e..7ab13b4 100644
--- a/server/src/test/java/org/apache/asyncweb/server/util/MockNextFilter.java
+++ b/server/src/test/java/org/apache/asyncweb/server/util/MockNextFilter.java
@@ -27,7 +27,6 @@
  * A simple <code>InvocationChain</code> which counts the
  * number of invocations made
  *
- * @author irvingd
  *
  */
 public class MockNextFilter implements NextFilter {
diff --git a/spring/src/main/java/org/apache/asyncweb/spring/HttpServiceLoader.java b/spring/src/main/java/org/apache/asyncweb/spring/HttpServiceLoader.java
index 1f60cfa..968700d 100644
--- a/spring/src/main/java/org/apache/asyncweb/spring/HttpServiceLoader.java
+++ b/spring/src/main/java/org/apache/asyncweb/spring/HttpServiceLoader.java
@@ -32,7 +32,6 @@
  * <code>ApplicationContext</code> to an associated
  * <code>HttpServiceHandler</code>
  *
- * @author irvingd
  */
 public class HttpServiceLoader implements ApplicationContextAware {
 
diff --git a/spring/src/main/java/org/apache/asyncweb/spring/Main.java b/spring/src/main/java/org/apache/asyncweb/spring/Main.java
index 6667ca9..f44df16 100644
--- a/spring/src/main/java/org/apache/asyncweb/spring/Main.java
+++ b/spring/src/main/java/org/apache/asyncweb/spring/Main.java
@@ -31,7 +31,6 @@
 /**
  * Simple stand-alone server which loads configuration using Spring
  *
- * @author irvingd
  *
  */
 public class Main {
