You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2007/09/18 23:00:42 UTC

svn commit: r577061 - /geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/

Author: jdillon
Date: Tue Sep 18 14:00:41 2007
New Revision: 577061

URL: http://svn.apache.org/viewvc?rev=577061&view=rev
Log:
Rename these, Io* was bugging me

Added:
    geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionInputStream.java   (contents, props changed)
      - copied, changed from r576955, geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/IoSessionInputStream.java
    geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java   (contents, props changed)
      - copied, changed from r576955, geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/IoSessionOutputStream.java
Removed:
    geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/IoSessionInputStream.java
    geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/IoSessionOutputStream.java
    geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/StreamIoHandler.java

Copied: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionInputStream.java (from r576955, geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/IoSessionInputStream.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionInputStream.java?p2=geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionInputStream.java&p1=geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/IoSessionInputStream.java&r1=576955&r2=577061&rev=577061&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/IoSessionInputStream.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionInputStream.java Tue Sep 18 14:00:41 2007
@@ -26,20 +26,21 @@
 import java.io.IOException;
 import java.io.InputStream;
 
+import org.apache.geronimo.gshell.remote.message.WriteStreamMessage;
 import org.apache.mina.common.ByteBuffer;
-import org.apache.mina.common.IoHandler;
-import org.apache.mina.common.IoSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
- * An {@link InputStream} that buffers data read from
- * {@link IoHandler#messageReceived(IoSession,Object)} events.
+ * An {@link InputStream} that buffers data read from {@link WriteStreamMessage} messages.
  *
- * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
+ * @version $Rev$ $Date$
  */
-public class IoSessionInputStream
+public class SessionInputStream
     extends InputStream
 {
+    private final Logger log = LoggerFactory.getLogger(getClass());
+    
     private final Object mutex = new Object();
 
     private final ByteBuffer buff;
@@ -50,10 +51,10 @@
 
     private IOException exception;
 
-    public IoSessionInputStream() {
-        buff = ByteBuffer.allocate(16);
+    public SessionInputStream() {
+        buff = ByteBuffer.allocate(256);
         buff.setAutoExpand(true);
-        buff.limit(0);
+        // buff.limit(0);
     }
 
     @Override
@@ -161,17 +162,21 @@
                 return;
             }
 
+            log.debug("Filling {} byte(s) into stream from: {}", src.remaining(), src);
+            
             if (buff.hasRemaining()) {
-                this.buff.compact();
-                this.buff.put(src);
-                this.buff.flip();
+                log.debug("Buffer has remaining: {} byte(s)", buff.remaining());
+                
+                buff.compact();
             }
             else {
-                this.buff.clear();
-                this.buff.put(src);
-                this.buff.flip();
-                mutex.notifyAll();
+                buff.clear();
             }
+
+            buff.put(src);
+            buff.flip();
+
+            mutex.notifyAll();
         }
     }
 

Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionInputStream.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionInputStream.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionInputStream.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java (from r576955, geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/IoSessionOutputStream.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java?p2=geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java&p1=geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/IoSessionOutputStream.java&r1=576955&r2=577061&rev=577061&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/IoSessionOutputStream.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java Tue Sep 18 14:00:41 2007
@@ -30,22 +30,26 @@
 import org.apache.mina.common.ByteBuffer;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.WriteFuture;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
- * An {@link OutputStream} that forwards all write operations to
- * the associated {@link IoSession}.
+ * An {@link OutputStream} that forwards all write operations as {@link WriteStreamMessage} messages.
  *
- * @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
+ * @version $Rev$ $Date$
  */
-public class IoSessionOutputStream
+public class SessionOutputStream
     extends OutputStream
 {
+    private final Logger log = LoggerFactory.getLogger(getClass());
+    
     private final IoSession session;
 
     private WriteFuture lastWriteFuture;
 
-    public IoSessionOutputStream(final IoSession session) {
+    public SessionOutputStream(final IoSession session) {
+        assert session != null;
+        
         this.session = session;
     }
 
@@ -55,11 +59,7 @@
             flush();
         }
         finally {
-            //
-            // FIXME: This probably should not close the session...
-            //
-            
-            session.close().awaitUninterruptibly();
+            super.close();
         }
     }
 
@@ -72,6 +72,8 @@
     private synchronized void write(final ByteBuffer buff) throws IOException {
         ensureOpened();
 
+        log.trace("Writing stream from: {}", buff);
+
         WriteStreamMessage msg = new WriteStreamMessage("IN", buff);
         
         lastWriteFuture = session.write(msg);
@@ -84,10 +86,13 @@
 
     @Override
     public void write(final int b) throws IOException {
-        ByteBuffer buf = ByteBuffer.allocate(1);
-        buf.put((byte) b);
-        buf.flip();
-        write(buf);
+        ByteBuffer buff = ByteBuffer.allocate(1);
+
+        buff.put((byte) b);
+
+        buff.flip();
+
+        write(buff);
     }
 
     @Override
@@ -96,14 +101,14 @@
             return;
         }
 
-        //
-        // TODO: Really need to provide an abstraction here to use the Transport interfaces
-        //
+        log.trace("Flushing stream...");
         
         lastWriteFuture.awaitUninterruptibly();
         
         if (!lastWriteFuture.isWritten()) {
             throw new IOException("The bytes could not be written to the session");
         }
+
+        log.trace("Flushed");
     }
 }

Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain