You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2008/06/17 17:11:15 UTC

svn commit: r668702 - in /mina/trunk/core/src/main/java/org/apache/mina: common/ transport/socket/nio/ transport/vmpipe/

Author: elecharny
Date: Tue Jun 17 08:11:14 2008
New Revision: 668702

URL: http://svn.apache.org/viewvc?rev=668702&view=rev
Log:
o Added some javadoc
o Reorganized the inheritence scheme (where the SocketSession and DatagramSession interfaces have been removed)
o Renamed the VmPipeSessionImpl to VmPipeSession (and removed the VmPipeSession interface)
o Fixed the tests accordingly

Added:
    mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java
      - copied, changed from r668019, mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java
Modified:
    mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
    mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramSession.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSession.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java Tue Jun 17 08:11:14 2008
@@ -40,9 +40,10 @@
  */
 public abstract class AbstractIoSession implements IoSession {
 
-    private static final AttributeKey READY_READ_FUTURES =
+    private static final AttributeKey READY_READ_FUTURES_KEY =
         new AttributeKey(AbstractIoSession.class, "readyReadFutures");
-    private static final AttributeKey WAITING_READ_FUTURES =
+    
+    private static final AttributeKey WAITING_READ_FUTURES_KEY =
         new AttributeKey(AbstractIoSession.class, "waitingReadFutures");
 
     private static final IoFutureListener<CloseFuture> SCHEDULED_COUNTER_RESETTER =
@@ -70,6 +71,8 @@
     private IoSessionAttributeMap attributes;
     private WriteRequestQueue writeRequestQueue;
     private WriteRequest currentWriteRequest;
+    
+    // The Session creation's time */
     private final long creationTime;
 
     /**
@@ -112,22 +115,37 @@
 
     private boolean deferDecreaseReadBuffer = true;
 
+    /**
+     * TODO Add method documentation
+     */
     protected AbstractIoSession() {
-        creationTime = lastThroughputCalculationTime =
-            lastReadTime = lastWriteTime =
-            lastIdleTimeForBoth = lastIdleTimeForRead =
-            lastIdleTimeForWrite = System.currentTimeMillis();
+        // Initialize all the Session counters to the current time 
+        long currentTime = System.currentTimeMillis();
+        creationTime = currentTime;
+        lastThroughputCalculationTime = currentTime;
+        lastReadTime = currentTime;
+        lastWriteTime = currentTime;
+        lastIdleTimeForBoth = currentTime;
+        lastIdleTimeForRead = currentTime;
+        lastIdleTimeForWrite = currentTime;
+        
+        // TODO add documentation
         closeFuture.addListener(SCHEDULED_COUNTER_RESETTER);
     }
 
     /**
      * {@inheritDoc}
+     * 
+     * TODO this method implementation is totally wrong. It has to
+     * be rewritten.
      */
     public final long getId() {
         return hashCode() & 0xFFFFFFFFL;
     }
 
-    @SuppressWarnings("unchecked")
+    /**
+     * TODO Add method documentation
+     */
     protected abstract IoProcessor getProcessor();
 
     /**
@@ -151,10 +169,16 @@
         return closeFuture;
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final boolean isScheduledForFlush() {
         return scheduledForFlush.get();
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final boolean setScheduledForFlush(boolean flag) {
         if (flag) {
             return scheduledForFlush.compareAndSet(false, true);
@@ -226,14 +250,23 @@
         return future;
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void offerReadFuture(Object message) {
         newReadFuture().setRead(message);
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void offerFailedReadFuture(Throwable exception) {
         newReadFuture().setException(exception);
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void offerClosedReadFuture() {
         Queue<ReadFuture> readyReadFutures = getReadyReadFutures();
         synchronized (readyReadFutures) {
@@ -241,6 +274,9 @@
         }
     }
 
+    /**
+     * TODO Add method documentation
+     */
     private ReadFuture newReadFuture() {
         Queue<ReadFuture> readyReadFutures = getReadyReadFutures();
         Queue<ReadFuture> waitingReadFutures = getWaitingReadFutures();
@@ -255,15 +291,18 @@
         return future;
     }
 
+    /**
+     * TODO Add method documentation
+     */
     private Queue<ReadFuture> getReadyReadFutures() {
         Queue<ReadFuture> readyReadFutures =
-            (Queue<ReadFuture>) getAttribute(READY_READ_FUTURES);
+            (Queue<ReadFuture>) getAttribute(READY_READ_FUTURES_KEY);
         if (readyReadFutures == null) {
             readyReadFutures = new CircularQueue<ReadFuture>();
 
             Queue<ReadFuture> oldReadyReadFutures =
                 (Queue<ReadFuture>) setAttributeIfAbsent(
-                        READY_READ_FUTURES, readyReadFutures);
+                        READY_READ_FUTURES_KEY, readyReadFutures);
             if (oldReadyReadFutures != null) {
                 readyReadFutures = oldReadyReadFutures;
             }
@@ -271,15 +310,18 @@
         return readyReadFutures;
     }
 
+    /**
+     * TODO Add method documentation
+     */
     private Queue<ReadFuture> getWaitingReadFutures() {
         Queue<ReadFuture> waitingReadyReadFutures =
-            (Queue<ReadFuture>) getAttribute(WAITING_READ_FUTURES);
+            (Queue<ReadFuture>) getAttribute(WAITING_READ_FUTURES_KEY);
         if (waitingReadyReadFutures == null) {
             waitingReadyReadFutures = new CircularQueue<ReadFuture>();
 
             Queue<ReadFuture> oldWaitingReadyReadFutures =
                 (Queue<ReadFuture>) setAttributeIfAbsent(
-                        WAITING_READ_FUTURES, waitingReadyReadFutures);
+                        WAITING_READ_FUTURES_KEY, waitingReadyReadFutures);
             if (oldWaitingReadyReadFutures != null) {
                 waitingReadyReadFutures = oldWaitingReadyReadFutures;
             }
@@ -445,14 +487,23 @@
         return attributes.getAttributeKeys(this);
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final IoSessionAttributeMap getAttributeMap() {
         return attributes;
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void setAttributeMap(IoSessionAttributeMap attributes) {
         this.attributes = attributes;
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void setWriteRequestQueue(WriteRequestQueue writeRequestQueue) {
         this.writeRequestQueue =
             new CloseRequestAwareWriteRequestQueue(writeRequestQueue);
@@ -480,6 +531,9 @@
         getFilterChain().fireFilterSetTrafficMask(trafficMask);
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void setTrafficMaskNow(TrafficMask trafficMask) {
         this.trafficMask = trafficMask;
     }
@@ -616,14 +670,23 @@
         return scheduledWriteMessages.get();
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected void setScheduledWriteBytes(int byteCount){
         scheduledWriteBytes.set(byteCount);
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected void setScheduledWriteMessages(int messages) {
         scheduledWriteMessages.set(messages);
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void increaseReadBytes(long increment, long currentTime) {
         if (increment <= 0) {
             return;
@@ -639,6 +702,9 @@
         }
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void increaseReadMessages(long currentTime) {
         readMessages++;
         lastReadTime = currentTime;
@@ -650,6 +716,9 @@
         }
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void increaseWrittenBytes(int increment, long currentTime) {
         if (increment <= 0) {
             return;
@@ -667,6 +736,9 @@
         increaseScheduledWriteBytes(-increment);
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void increaseWrittenMessages(
             WriteRequest request, long currentTime) {
         Object message = request.getMessage();
@@ -686,6 +758,9 @@
         decreaseScheduledWriteMessages();
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void increaseScheduledWriteBytes(int increment) {
         scheduledWriteBytes.addAndGet(increment);
         if (getService() instanceof AbstractIoService) {
@@ -693,6 +768,9 @@
         }
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void increaseScheduledWriteMessages() {
         scheduledWriteMessages.incrementAndGet();
         if (getService() instanceof AbstractIoService) {
@@ -700,6 +778,9 @@
         }
     }
 
+    /**
+     * TODO Add method documentation
+     */
     private void decreaseScheduledWriteMessages() {
         scheduledWriteMessages.decrementAndGet();
         if (getService() instanceof AbstractIoService) {
@@ -707,6 +788,9 @@
         }
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void decreaseScheduledBytesAndMessages(WriteRequest request) {
         Object message = request.getMessage();
         if (message instanceof IoBuffer) {
@@ -721,6 +805,9 @@
         }
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final WriteRequestQueue getWriteRequestQueue() {
         if (writeRequestQueue == null) {
             throw new IllegalStateException();
@@ -746,10 +833,16 @@
         return req.getMessage();
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void setCurrentWriteRequest(WriteRequest currentWriteRequest) {
         this.currentWriteRequest = currentWriteRequest;
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void increaseReadBufferSize() {
         int newReadBufferSize = getConfig().getReadBufferSize() << 1;
         if (newReadBufferSize <= getConfig().getMaxReadBufferSize()) {
@@ -761,6 +854,9 @@
         deferDecreaseReadBuffer = true;
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void decreaseReadBufferSize() {
         if (deferDecreaseReadBuffer) {
             deferDecreaseReadBuffer = false;
@@ -894,6 +990,9 @@
         throw new IllegalArgumentException("Unknown idle status: " + status);
     }
 
+    /**
+     * TODO Add method documentation
+     */
     protected final void increaseIdleCount(IdleStatus status, long currentTime) {
         if (status == IdleStatus.BOTH_IDLE) {
             idleCountForBoth++;
@@ -973,6 +1072,7 @@
 
     /**
      * {@inheritDoc}
+     * TODO This is a ridiculous implementation. Need to be replaced.
      */
     @Override
     public final boolean equals(Object o) {
@@ -993,6 +1093,9 @@
         }
     }
 
+    /**
+     * TODO Add method documentation
+     */
     private String getIdAsString() {
         String id = Long.toHexString(getId()).toUpperCase();
 
@@ -1006,6 +1109,9 @@
         return id;
     }
 
+    /**
+     * TODO Add method documentation
+     */
     private String getServiceName() {
         TransportMetadata tm = getTransportMetadata();
         if (tm == null) {
@@ -1015,6 +1121,9 @@
         }
     }
 
+    /**
+     * TODO Add method documentation. Name is ridiculously too long.
+     */
     private class CloseRequestAwareWriteRequestQueue implements WriteRequestQueue {
 
         private final WriteRequestQueue q;

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java Tue Jun 17 08:11:14 2008
@@ -27,7 +27,7 @@
  * transport types.
  * <p/>
  * {@link IoSession} provides user-defined attributes.  User-defined attributes
- * are application-specific data which is associated with a session.
+ * are application-specific data which are associated with a session.
  * It often contains objects that represents the state of a higher-level protocol
  * and becomes a way to exchange data between filters and handlers.
  * <p/>
@@ -38,14 +38,17 @@
  * <p/>
  * <h3>Thread Safety</h3>
  * <p/>
+ * TODO : The following paragraph does not make any sense.
  * {@link IoSession} is thread-safe.  But please note that performing
  * more than one {@link #write(Object)} calls at the same time will
  * cause the {@link IoFilter#filterWrite(IoFilter.NextFilter,IoSession,WriteRequest)}
- * is executed simultaneously, and therefore you have to make sure the
+ * to be executed simultaneously, and therefore you have to make sure the
  * {@link IoFilter} implementations you're using are thread-safe, too.
  * </p>
  * <p/>
  * <h3>Equality of Sessions</h3>
+ * TODO : this is BS. The getId() method is totally worng. We can't base
+ * a method which is designed to create a unique ID on the hashCode method.
  * {@link #equals(Object)} and {@link #hashCode()} shall not be overriden
  * to the default behavior that is defined in {@link Object}.
  *
@@ -53,42 +56,47 @@
  * @version $Rev$, $Date$
  */
 public interface IoSession {
-
     /**
-     * Returns a unique identifier of this session.  Every session has its own
+     * @return a unique identifier for this session.  Every session has its own
      * ID which is different from each other.
+     * 
+     * TODO : The way it's implemented does not guarantee that the contract is
+     * respected. It uses the HashCode() method which don't guarantee the key
+     * unicity.
      */
     long getId();
 
     /**
-     * Returns the {@link IoService} which provides I/O service to this session.
+     * @return the {@link IoService} which provides I/O service to this session.
      */
     IoService getService();
 
     /**
-     * Returns the {@link IoHandler} which handles this session.
+     * @return the {@link IoHandler} which handles this session.
      */
     IoHandler getHandler();
 
     /**
-     * Returns the configuration of this session.
+     * @return the configuration of this session.
      */
     IoSessionConfig getConfig();
 
     /**
-     * Returns the filter chain that only affects this session.
+     * @return the filter chain that only affects this session.
      */
     IoFilterChain getFilterChain();
 
     /**
-     * Returns the {@link TransportMetadata} that this session runs on.
+     * @return the {@link TransportMetadata} that this session runs on.
      */
     TransportMetadata getTransportMetadata();
 
     /**
-     * Returns a {@link ReadFuture} which is notified when a new message is
+     * TODO This javadoc is wrong. The return tag should be short.
+     * @return a {@link ReadFuture} which is notified when a new message is
      * received, the connection is closed or an exception is caught.  This
      * operation is especially useful when you implement a client application.
+     * TODO : Describe here how we enable this feature.
      * However, please note that this operation is disabled by default and
      * throw {@link IllegalStateException} because all received events must be
      * queued somewhere to support this operation, possibly leading to memory
@@ -440,7 +448,7 @@
     WriteRequest getCurrentWriteRequest();
 
     /**
-     * Returns the time in millis when this session is created.
+     * @return the session's creation time in nanoseconds
      */
     long getCreationTime();
 

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramSession.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramSession.java Tue Jun 17 08:11:14 2008
@@ -33,7 +33,6 @@
 import org.apache.mina.common.IoService;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.TransportMetadata;
-import org.apache.mina.transport.socket.DatagramSession;
 import org.apache.mina.transport.socket.DatagramSessionConfig;
 
 /**
@@ -42,7 +41,7 @@
  * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
  */
-class NioDatagramSession extends NioSession implements DatagramSession {
+class NioDatagramSession extends NioSession {
 
     static final TransportMetadata METADATA =
             new DefaultTransportMetadata(

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSession.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSession.java Tue Jun 17 08:11:14 2008
@@ -31,12 +31,6 @@
  * @version $Rev$, $Date$
  */
 public abstract class NioSession extends AbstractIoSession {
-    /**
-     * Creates a new instance.  This constructor does nothing particular
-     * but calls the default super constructor.
-     */
-    protected NioSession() {}
-    
     abstract ByteChannel getChannel();
     abstract SelectionKey getSelectionKey();
     abstract void setSelectionKey(SelectionKey key);

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java Tue Jun 17 08:11:14 2008
@@ -37,7 +37,6 @@
 import org.apache.mina.common.TransportMetadata;
 import org.apache.mina.transport.socket.AbstractSocketSessionConfig;
 import org.apache.mina.transport.socket.DefaultSocketSessionConfig;
-import org.apache.mina.transport.socket.SocketSession;
 import org.apache.mina.transport.socket.SocketSessionConfig;
 
 /**
@@ -46,7 +45,7 @@
  * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
  */
-class NioSocketSession extends NioSession implements SocketSession {
+class NioSocketSession extends NioSession {
 
     static final TransportMetadata METADATA =
             new DefaultTransportMetadata(
@@ -69,7 +68,16 @@
 
     private SelectionKey key;
 
-    NioSocketSession(IoService service, IoProcessor<NioSession> processor, SocketChannel ch) {
+    
+    /**
+     * 
+     * Creates a new instance of NioSocketSession.
+     *
+     * @param service the associated IoService 
+     * @param processor the associated IoProcessor
+     * @param ch the used channel
+     */
+    public NioSocketSession(IoService service, IoProcessor<NioSession> processor, SocketChannel ch) {
         this.service = service;
         this.processor = processor;
         this.ch = ch;

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java Tue Jun 17 08:11:14 2008
@@ -59,7 +59,7 @@
     }
 
     public TransportMetadata getTransportMetadata() {
-        return VmPipeSessionImpl.METADATA;
+        return VmPipeSession.METADATA;
     }
 
     @Override

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java Tue Jun 17 08:11:14 2008
@@ -60,7 +60,7 @@
     }
 
     public TransportMetadata getTransportMetadata() {
-        return VmPipeSessionImpl.METADATA;
+        return VmPipeSession.METADATA;
     }
 
     @Override
@@ -88,7 +88,7 @@
             return DefaultConnectFuture.newFailedFuture(e);
         }
 
-        VmPipeSessionImpl localSession = new VmPipeSessionImpl(this,
+        VmPipeSession localSession = new VmPipeSession(this,
                 getListeners(), actualLocalAddress, getHandler(), entry);
 
         finishSessionInitialization(localSession, future, sessionInitializer);
@@ -110,7 +110,7 @@
         }
 
         // initialize acceptor session
-        VmPipeSessionImpl remoteSession = localSession.getRemoteSession();
+        VmPipeSession remoteSession = localSession.getRemoteSession();
         ((VmPipeAcceptor) remoteSession.getService()).doFinishSessionInitialization(remoteSession, null);
         try {
             IoFilterChain filterChain = remoteSession.getFilterChain();

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java Tue Jun 17 08:11:14 2008
@@ -44,7 +44,7 @@
 class VmPipeFilterChain extends DefaultIoFilterChain {
 
     private final Queue<IoEvent> eventQueue = new ConcurrentLinkedQueue<IoEvent>();
-    private final IoProcessor<VmPipeSessionImpl> processor = new VmPipeIoProcessor();
+    private final IoProcessor<VmPipeSession> processor = new VmPipeIoProcessor();
 
     private volatile boolean flushEnabled;
     private volatile boolean sessionOpened;
@@ -53,14 +53,14 @@
         super(session);
     }
 
-    IoProcessor<VmPipeSessionImpl> getProcessor() {
+    IoProcessor<VmPipeSession> getProcessor() {
         return processor;
     }
 
     public void start() {
         flushEnabled = true;
         flushEvents();
-        flushPendingDataQueues((VmPipeSessionImpl) getSession());
+        flushPendingDataQueues((VmPipeSession) getSession());
     }
 
     private void pushEvent(IoEvent e) {
@@ -82,7 +82,7 @@
     }
 
     private void fireEvent(IoEvent e) {
-        VmPipeSessionImpl session = (VmPipeSessionImpl) getSession();
+        VmPipeSession session = (VmPipeSession) getSession();
         IoEventType type = e.getType();
         Object data = e.getParameter();
 
@@ -126,7 +126,7 @@
         }
     }
 
-    private static void flushPendingDataQueues(VmPipeSessionImpl s) {
+    private static void flushPendingDataQueues(VmPipeSession s) {
         s.getProcessor().updateTrafficMask(s);
         s.getRemoteSession().getProcessor().updateTrafficMask(s);
     }
@@ -176,8 +176,8 @@
         pushEvent(new IoEvent(IoEventType.MESSAGE_RECEIVED, getSession(), message));
     }
 
-    private class VmPipeIoProcessor implements IoProcessor<VmPipeSessionImpl> {
-        public void flush(VmPipeSessionImpl session) {
+    private class VmPipeIoProcessor implements IoProcessor<VmPipeSession> {
+        public void flush(VmPipeSession session) {
             WriteRequestQueue queue = session.getWriteRequestQueue0();
             if (!session.isClosing()) {
                 session.getLock().lock();
@@ -236,7 +236,7 @@
             return messageCopy;
         }
 
-        public void remove(VmPipeSessionImpl session) {
+        public void remove(VmPipeSession session) {
             try {
                 session.getLock().lock();
                 if (!session.getCloseFuture().isClosed()) {
@@ -248,11 +248,11 @@
             }
         }
 
-        public void add(VmPipeSessionImpl session) {
+        public void add(VmPipeSession session) {
             // Unused
         }
 
-        public void updateTrafficMask(VmPipeSessionImpl session) {
+        public void updateTrafficMask(VmPipeSession session) {
             if (session.getTrafficMask().isReadable()) {
                 List<Object> data = new ArrayList<Object>();
                 session.receivedMessageQueue.drainTo(data);

Copied: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java (from r668019, mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java)
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java?p2=mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java&p1=mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java&r1=668019&r2=668702&rev=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java Tue Jun 17 08:11:14 2008
@@ -41,7 +41,7 @@
  * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
  */
-class VmPipeSessionImpl extends AbstractIoSession implements VmPipeSession {
+class VmPipeSession extends AbstractIoSession {
 
     static final TransportMetadata METADATA =
             new DefaultTransportMetadata(
@@ -66,7 +66,7 @@
 
     private final VmPipeFilterChain filterChain;
 
-    private final VmPipeSessionImpl remoteSession;
+    private final VmPipeSession remoteSession;
 
     private final Lock lock;
 
@@ -75,7 +75,7 @@
     /*
      * Constructor for client-side session.
      */
-    VmPipeSessionImpl(IoService service,
+    VmPipeSession(IoService service,
                       IoServiceListenerSupport serviceListeners,
                       VmPipeAddress localAddress, IoHandler handler, VmPipe remoteEntry) {
         this.service = service;
@@ -87,13 +87,13 @@
         filterChain = new VmPipeFilterChain(this);
         receivedMessageQueue = new LinkedBlockingQueue<Object>();
 
-        remoteSession = new VmPipeSessionImpl(this, remoteEntry);
+        remoteSession = new VmPipeSession(this, remoteEntry);
     }
 
     /*
      * Constructor for server-side session.
      */
-    private VmPipeSessionImpl(VmPipeSessionImpl remoteSession, VmPipe entry) {
+    private VmPipeSession(VmPipeSession remoteSession, VmPipe entry) {
         service = entry.getAcceptor();
         serviceListeners = entry.getListeners();
         lock = remoteSession.lock;
@@ -110,7 +110,7 @@
     }
 
     @Override
-    protected IoProcessor<VmPipeSessionImpl> getProcessor() {
+    protected IoProcessor<VmPipeSession> getProcessor() {
         return filterChain.getProcessor();
     }
 
@@ -126,7 +126,7 @@
         return filterChain;
     }
 
-    public VmPipeSessionImpl getRemoteSession() {
+    public VmPipeSession getRemoteSession() {
         return remoteSession;
     }