You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2004/12/28 14:11:06 UTC
svn commit: r123500 - in incubator/directory/network/trunk/mina: . src/examples/org/apache/mina/examples/echoserver src/examples/org/apache/mina/examples/netcat src/examples/org/apache/mina/examples/reverser src/java/org/apache/mina/common src/java/org/apache/mina/io src/java/org/apache/mina/io/datagram src/java/org/apache/mina/io/filter src/java/org/apache/mina/io/socket src/java/org/apache/mina/protocol src/java/org/apache/mina/protocol/filter src/java/org/apache/mina/registry src/java/org/apache/mina/util src/test/org/apache/mina/examples/echoserver
Author: trustin
Date: Tue Dec 28 05:11:05 2004
New Revision: 123500
URL: http://svn.apache.org/viewcvs?view=rev&rev=123500
Log:
* Finished JavaDocs
* Added Examples Xref report
* Moved DefaultExceptionMonitor to io package
* Moved TransportType to common package
* Added Session.getTransportType()
* Added TransportType.isStateless()
* Removed Session.isStateless()
* Added jcoverage.ser to svn:ignore
Added:
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/package.html (contents, props changed)
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/package.html (contents, props changed)
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/package.html (contents, props changed)
incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/TransportType.java
- copied, changed from r123487, incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/TransportType.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/package.html (contents, props changed)
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/DefaultExceptionMonitor.java
- copied, changed from r123487, incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/DefaultExceptionMonitor.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/package.html (contents, props changed)
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/filter/package.html (contents, props changed)
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/package.html (contents, props changed)
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/package.html (contents, props changed)
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/filter/package.html (contents, props changed)
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/package.html (contents, props changed)
incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/package.html (contents, props changed)
incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/package.html (contents, props changed)
Removed:
incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/TransportType.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/DefaultExceptionMonitor.java
Modified:
incubator/directory/network/trunk/mina/ (props changed)
incubator/directory/network/trunk/mina/maven.xml
incubator/directory/network/trunk/mina/project.properties
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/EchoProtocolHandler.java
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/Main.java
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/Main.java
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/NetCatProtocolHandler.java
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/Main.java
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolProvider.java
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java
incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/SessionConfig.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Acceptor.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Connector.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/ExceptionMonitor.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandler.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerAdapter.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilter.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilterAdapter.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoSession.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramConnector.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramProcessor.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramSession.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketAcceptor.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketConnector.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketIoProcessor.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketSession.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/IoAdapter.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolCodecFactory.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoder.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoderOutput.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoder.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoderOutput.java (contents, props changed)
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandler.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerAdapter.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilter.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilterAdapter.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolProvider.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolSession.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolViolationException.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/Service.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/ServiceRegistry.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/SimpleService.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BasicSessionConfig.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BlockingSet.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ByteBuffers.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ProtocolHandlerFilterManager.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Queue.java
incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Stack.java
incubator/directory/network/trunk/mina/src/test/org/apache/mina/examples/echoserver/Test.java (contents, props changed)
Modified: incubator/directory/network/trunk/mina/maven.xml
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/maven.xml?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/maven.xml&r1=123499&p2=incubator/directory/network/trunk/mina/maven.xml&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/maven.xml (original)
+++ incubator/directory/network/trunk/mina/maven.xml Tue Dec 28 05:11:05 2004
@@ -1,9 +1,63 @@
-<project default="test" xmlns:ant="jelly:ant" xmlns:maven="jelly:maven">
+<project
+ default="test"
+ xmlns:define="jelly:define"
+ xmlns:ant="jelly:ant"
+ xmlns:doc="doc"
+ xmlns:j="jelly:core"
+ xmlns:jxr="jxr"
+ xmlns:maven="jelly:maven"
+ xmlns:util="jelly:util">
+
+<!--
+ <define:taglib uri="jxr">
+ <define:jellybean
+ name="jxr"
+ className="org.apache.maven.jxr.JxrBean"
+ method="xref" />
+ </define:taglib>
+-->
<preGoal name="java:compile">
<ant:path id="my.other.src.dir" location="${basedir}/src/examples"/>
<maven:addPath id="maven.compile.src.set" refid="my.other.src.dir"/>
</preGoal>
+
+ <postGoal name="maven-jxr-plugin:register">
+ <doc:registerReport
+ name="Examples Xref"
+ pluginName="maven-jxr-plugin"
+ link="xref-examples/index"
+ target="_blank"
+ description="A set of browsable cross-referenced example sources."/>
+ </postGoal>
+
+ <postGoal name="maven-jxr-plugin:report">
+ <maven:pluginVar var="javadocDestdir" plugin='maven-javadoc-plugin' property='maven.javadoc.destdir'/>
+ <maven:pluginVar var="stylesheetPath" plugin='maven-jxr-plugin' property='maven.jxr.stylesheet'/>
+ <maven:pluginVar var="templatePath" plugin='maven-jxr-plugin' property='maven.jxr.templateDir'/>
+
+ <j:set var="maven.jxr.destdir.examples"
+ value="${maven.docs.dest}/xref-examples" />
+
+ <j:set var="copyright"
+ value="Copyright &copy; ${year} ${pom.organization.name}. All Rights Reserved." />
+
+ <j:set var="title" value="${pom.name} ${pom.currentVersion} Reference" />
+
+ <ant:mkdir dir="${maven.jxr.destdir.examples}" />
+ <ant:copy file="${stylesheetPath}"
+ tofile="${maven.jxr.destdir.examples}/stylesheet.css"/>
+
+ <jxr:jxr
+ sourceDir="${basedir}/src/examples"
+ destDir="${maven.jxr.destdir.examples}"
+ templateDir="${templatePath}"
+ javadocDir="${javadocDestdir}"
+ windowTitle="${title}"
+ docTitle="${title}"
+ bottom="${copyright}">
+ </jxr:jxr>
+ </postGoal>
<preGoal name="dist:build-src">
<ant:copy todir="${maven.dist.src.assembly.dir}">
Modified: incubator/directory/network/trunk/mina/project.properties
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/project.properties?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/project.properties&r1=123499&p2=incubator/directory/network/trunk/mina/project.properties&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/project.properties (original)
+++ incubator/directory/network/trunk/mina/project.properties Tue Dec 28 05:11:05 2004
@@ -18,6 +18,7 @@
maven.junit.fork=no
maven.javadoc.links = http://java.sun.com/j2se/1.4.2/docs/api/, http://www.junit.org/junit/javadoc/3.8.1/, http://gleamynode.net/dev/projects/netty2/apidocs/
+maven.javadoc.package = false
# Eclipse settings.
maven.eclipse.junit=3.8.1
Modified: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/EchoProtocolHandler.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/EchoProtocolHandler.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/EchoProtocolHandler.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/EchoProtocolHandler.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/EchoProtocolHandler.java (original)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/EchoProtocolHandler.java Tue Dec 28 05:11:05 2004
@@ -24,40 +24,42 @@
import org.apache.mina.io.IoSession;
/**
- * TODO Document me.
+ * {@link IoHandler} implementation for echo server.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
*/
public class EchoProtocolHandler implements IoHandler
{
- public void sessionOpened( IoSession IoSession )
+ public void sessionOpened( IoSession session )
{
System.out.println( Thread.currentThread().getName() + ' '
- + IoSession.getRemoteAddress() + ": OPEN" );
+ + session.getRemoteAddress() + ": OPEN" );
}
- public void sessionClosed( IoSession IoSession )
+ public void sessionClosed( IoSession session )
{
System.out.println( Thread.currentThread().getName() + ' '
- + IoSession.getRemoteAddress() + ": CLOSED" );
+ + session.getRemoteAddress() + ": CLOSED" );
}
- public void sessionIdle( IoSession IoSession, IdleStatus status )
+ public void sessionIdle( IoSession session, IdleStatus status )
{
System.out.println( Thread.currentThread().getName() + ' '
- + IoSession.getRemoteAddress() + ": IDLE" );
+ + session.getRemoteAddress() + ": IDLE" );
}
- public void exceptionCaught( IoSession IoSession, Throwable cause )
+ public void exceptionCaught( IoSession session, Throwable cause )
{
System.out.println( Thread.currentThread().getName() + ' '
- + IoSession.getRemoteAddress() + ": EXCEPTION" );
+ + session.getRemoteAddress() + ": EXCEPTION" );
cause.printStackTrace( System.out );
+ session.close();
}
public void dataRead( IoSession session, ByteBuffer rb )
{
+ // Write the received data back to remote peer
ByteBuffer wb = ByteBuffer.allocate( rb.remaining() );
wb.put( rb );
wb.flip();
@@ -67,9 +69,9 @@
session.write( wb, null );
}
- public void dataWritten( IoSession IoSession, Object marker )
+ public void dataWritten( IoSession session, Object marker )
{
System.out.println( Thread.currentThread().getName() + ' '
- + IoSession.getRemoteAddress() + ": WRITTEN" );
+ + session.getRemoteAddress() + ": WRITTEN" );
}
}
Modified: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/Main.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/Main.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/Main.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/Main.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/Main.java (original)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/Main.java Tue Dec 28 05:11:05 2004
@@ -26,7 +26,7 @@
import org.apache.mina.io.socket.SocketAcceptor;
/**
- * TODO Document me.
+ * (<b>Entry point</b>) Echo server
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
@@ -37,17 +37,28 @@
public static void main( String[] args ) throws Exception
{
+ // Create a I/O thread pool filter
+ IoThreadPoolFilter threadPoolFilter = new IoThreadPoolFilter();
+ threadPoolFilter.start(); // and start it
+
+ // Create a TCP/IP acceptor
Acceptor acceptor = new SocketAcceptor();
- IoThreadPoolFilter threadPoolFilter = new IoThreadPoolFilter();
- threadPoolFilter.start();
+ // Add thread pool filter
+ // MINA runs in a single thread if you don't add this filter.
acceptor.addFilter( Integer.MAX_VALUE, threadPoolFilter );
+ // Bind
acceptor.bind( new InetSocketAddress( PORT ),
new EchoProtocolHandler() );
+ // Create a UDP/IP acceptor
Acceptor datagramAcceptor = new DatagramAcceptor();
+
+ // Add thread pool filter
datagramAcceptor.addFilter( Integer.MAX_VALUE, threadPoolFilter );
+
+ // Bind
datagramAcceptor.bind( new InetSocketAddress( PORT ),
new EchoProtocolHandler() );
Added: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/echoserver/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+Echo server.
+</body>
+</html>
Modified: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/Main.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/Main.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/Main.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/Main.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/Main.java (original)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/Main.java Tue Dec 28 05:11:05 2004
@@ -24,7 +24,9 @@
import org.apache.mina.io.socket.SocketConnector;
/**
- * TODO Document me.
+ * (<b>Entry point</b>) NetCat client. NetCat client connects to the specified
+ * endpoint and prints out received data. NetCat client disconnects
+ * automatically when no data is read for 10 seconds.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
@@ -39,8 +41,14 @@
return;
}
+ // Create TCP/IP connector.
SocketConnector connector = new SocketConnector();
+
+ // Add I/O thread pool filter.
+ // MINA runs in a single thread if you don't add this filter.
connector.addFilter( Integer.MAX_VALUE, new IoThreadPoolFilter() );
+
+ // Start communication.
connector.connect( new InetSocketAddress( args[ 0 ], Integer
.parseInt( args[ 1 ] ) ), 60, new NetCatProtocolHandler() );
}
Modified: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/NetCatProtocolHandler.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/NetCatProtocolHandler.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/NetCatProtocolHandler.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/NetCatProtocolHandler.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/NetCatProtocolHandler.java (original)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/NetCatProtocolHandler.java Tue Dec 28 05:11:05 2004
@@ -20,11 +20,13 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IdleStatus;
+import org.apache.mina.io.IoHandler;
import org.apache.mina.io.IoHandlerAdapter;
import org.apache.mina.io.IoSession;
/**
- * TODO Document me.
+ * {@link IoHandler} implementation for NetCat client. This class extended
+ * {@link IoHandlerAdapter} for convenience.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
@@ -33,21 +35,28 @@
{
public void sessionOpened( IoSession session )
{
+ // Set reader idle time to 10 seconds.
+ // sessionIdle(...) method will be invoked when no data is read
+ // for 10 seconds.
session.getConfig().setIdleTime( IdleStatus.READER_IDLE, 10 );
}
public void sessionClosed( IoSession session )
{
+ // Print out total number of bytes read from the remote peer.
System.err.println( "Total " + session.getReadBytes() + " byte(s)" );
}
public void sessionIdle( IoSession session, IdleStatus status )
{
- session.close();
+ // Close the connection if reader is idle.
+ if ( status == IdleStatus.READER_IDLE )
+ session.close();
}
public void dataRead( IoSession session, ByteBuffer buf )
{
+ // Print out read buffer content.
while( buf.hasRemaining() )
{
System.out.print( ( char ) buf.get() );
Added: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/netcat/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+NetCat client (Network + Unix <code>cat</code> command).
+</body>
+</html>
Modified: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/Main.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/Main.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/Main.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/Main.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/Main.java (original)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/Main.java Tue Dec 28 05:11:05 2004
@@ -27,7 +27,8 @@
import org.apache.mina.protocol.filter.ProtocolThreadPoolFilter;
/**
- * TODO Document me.
+ * (<b>Entry point</b>) Reverser server which reverses all text lines from
+ * clients.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
@@ -38,17 +39,27 @@
public static void main( String[] args ) throws Exception
{
+ // Create I/O and Protocol thread pool filter.
+ // I/O thread pool performs encoding and decoding of messages.
+ // Protocol thread pool performs actual protocol flow.
IoThreadPoolFilter ioThreadPoolFilter = new IoThreadPoolFilter();
ProtocolThreadPoolFilter protocolThreadPoolFilter = new ProtocolThreadPoolFilter();
+
+ // and start both.
ioThreadPoolFilter.start();
protocolThreadPoolFilter.start();
+ // Create TCP/IP acceptor.
Acceptor acceptor = new SocketAcceptor();
+
+ // Create an I/O adapter to adapt ProtocolProvider to IoHandler.
IoAdapter ioAdapter = new IoAdapter();
+ // Add both thread pool filters.
acceptor.addFilter( Integer.MAX_VALUE, ioThreadPoolFilter );
ioAdapter.addFilter( Integer.MAX_VALUE, protocolThreadPoolFilter );
+ // Bind
acceptor.bind( new InetSocketAddress( PORT ), ioAdapter
.adapt( new ReverseProtocolProvider() ) );
Modified: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java (original)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java Tue Dec 28 05:11:05 2004
@@ -23,7 +23,7 @@
import org.apache.mina.protocol.ProtocolSession;
/**
- * TODO Document me.
+ * {@link ProtocolHandler} implementation of reverser server protocol.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
@@ -51,6 +51,8 @@
{
System.out.println( session.getRemoteAddress() + " EXCEPTION" );
cause.printStackTrace( System.out );
+
+ // Close connection when unexpected exception is caught.
session.close();
}
@@ -58,6 +60,7 @@
{
System.out.println( session.getRemoteAddress() + " RCVD: " + message );
+ // Reverse reveiced string
String str = message.toString();
StringBuffer buf = new StringBuffer( str.length() );
for( int i = str.length() - 1; i >= 0; i-- )
@@ -65,11 +68,13 @@
buf.append( str.charAt( i ) );
}
+ // and write it back.
session.write( buf.toString() );
}
public void messageSent( ProtocolSession session, Object message )
{
+ // Invoked the reversed string is actually written to socket channel.
System.out.println( session.getRemoteAddress() + " SENT: " + message );
}
}
Modified: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolProvider.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolProvider.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolProvider.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolProvider.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolProvider.java (original)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/ReverseProtocolProvider.java Tue Dec 28 05:11:05 2004
@@ -25,7 +25,7 @@
import org.apache.mina.protocol.ProtocolProvider;
/**
- * TODO Document me.
+ * {@link ProtocolProvider} implementation for reverser server protocol.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
@@ -33,17 +33,21 @@
public class ReverseProtocolProvider implements ProtocolProvider
{
+ // Protocol handler is usually a singleton.
private static ProtocolHandler HANDLER = new ReverseProtocolHandler();
+ // Codec factory is also usually a singleton.
private static ProtocolCodecFactory CODEC_FACTORY = new ProtocolCodecFactory()
{
public ProtocolEncoder newEncoder()
{
+ // Create a new encoder.
return new TextLineEncoder();
}
public ProtocolDecoder newDecoder()
{
+ // Create a new decoder.
return new TextLineDecoder();
}
};
Modified: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java (original)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java Tue Dec 28 05:11:05 2004
@@ -25,7 +25,7 @@
import org.apache.mina.protocol.ProtocolViolationException;
/**
- * TODO Document me.
+ * Decodes a text line into a string.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
@@ -55,6 +55,7 @@
decodeBuf.append( ( char ) b );
}
+ // Don't accept too long line
if( decodeBuf.length() > 256 )
{
decodeBuf.delete( 0, decodeBuf.length() );
Modified: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java (original)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java Tue Dec 28 05:11:05 2004
@@ -25,7 +25,7 @@
import org.apache.mina.protocol.ProtocolViolationException;
/**
- * TODO Document me.
+ * Encodes a string into a text line which ends with <code>"\r\n"</code>.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
@@ -39,6 +39,7 @@
{
String val = message.toString();
+ // Don't accept too long strings.
if( val.length() > 256 )
{
throw new ProtocolViolationException(
Added: incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/examples/org/apache/mina/examples/reverser/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+Reverser server which reverses all text lines.
+</body>
+</html>
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/SessionConfig.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/SessionConfig.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/SessionConfig.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/SessionConfig.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/SessionConfig.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/SessionConfig.java Tue Dec 28 05:11:05 2004
@@ -18,9 +18,11 @@
*/
package org.apache.mina.common;
+import org.apache.mina.io.IoSession;
import org.apache.mina.io.WriteTimeoutException;
import org.apache.mina.io.datagram.DatagramSessionConfig;
import org.apache.mina.io.socket.SocketSessionConfig;
+import org.apache.mina.protocol.ProtocolSession;
/**
* Provides general or transport-specific configuration.
@@ -35,6 +37,9 @@
* <p>
* Please refer to {@link SocketSessionConfig} and {@link DatagramSessionConfig}
* for transport-specific configurations.
+ * <p>
+ * {@link SessionConfig} can be obtained by {@link IoSession#getConfig()} and
+ * by {@link ProtocolSession#getConfig()}.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Copied: incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/TransportType.java (from r123487, incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/TransportType.java)
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/TransportType.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/TransportType.java&r1=123487&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/TransportType.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/TransportType.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/TransportType.java Tue Dec 28 05:11:05 2004
@@ -16,35 +16,50 @@
* limitations under the License.
*
*/
-package org.apache.mina.registry;
+package org.apache.mina.common;
/**
- * TODO Insert type comment.
+ * Represents network transport types.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
*/
public class TransportType
{
- public static final TransportType SOCKET = new TransportType( "SOCKET" );
-
- public static final TransportType DATAGRAM = new TransportType( "DATAGRAM" );
-
- public static final TransportType MULTICAST = new TransportType(
- "MULTICAST" );
-
- public static final TransportType VM = new TransportType( "VM" );
+ /**
+ * Transport type: TCP/IP (<code>SocketChannel</code>)
+ */
+ public static final TransportType SOCKET = new TransportType( "SOCKET",
+ false );
+
+ /**
+ * Transport type: UDP/IP (<code>DatagramChannel</code>)
+ */
+ public static final TransportType DATAGRAM = new TransportType( "DATAGRAM",
+ true );
private final String strVal;
+
+ private final boolean stateless;
/**
* Creates a new instance.
*/
- private TransportType( String strVal )
+ private TransportType( String strVal, boolean stateless )
{
this.strVal = strVal;
+ this.stateless = stateless;
}
+ /**
+ * Returns <code>true</code> if the session of this transport type is
+ * stateless.
+ */
+ public boolean isStateless()
+ {
+ return stateless;
+ }
+
public String toString()
{
return strVal;
Added: incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/common/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+Common types required for users to use MINA.
+</body>
+</html>
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Acceptor.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Acceptor.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Acceptor.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Acceptor.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Acceptor.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Acceptor.java Tue Dec 28 05:11:05 2004
@@ -21,11 +21,14 @@
import java.io.IOException;
import java.net.SocketAddress;
-import org.apache.mina.util.DefaultExceptionMonitor;
/**
* Accepts incoming connection, communicates with clients, and fires events to
* {@link IoHandler}s.
+ * <p>
+ * Please refer to
+ * <a href="../../../../../xref-examples/org/apache/mina/examples/echoserver/Main.html">EchoServer</a>
+ * example.
* <p>
* You should bind to the desired socket address to accept incoming
* connections, and then events for incoming connections will be sent to
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Connector.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Connector.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Connector.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Connector.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Connector.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/Connector.java Tue Dec 28 05:11:05 2004
@@ -21,11 +21,14 @@
import java.io.IOException;
import java.net.SocketAddress;
-import org.apache.mina.util.DefaultExceptionMonitor;
/**
* Connects to endpoint, communicates with the server, and fires events to
* {@link IoHandler}s.
+ * <p>
+ * Please refer to
+ * <a href="../../../../../xref-examples/org/apache/mina/examples/netcat/Main.html">NetCat</a>
+ * example.
* <p>
* You should connect to the desired socket address to start communication,
* and then events for incoming connections will be sent to the specified
Copied: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/DefaultExceptionMonitor.java (from r123487, incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/DefaultExceptionMonitor.java)
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/DefaultExceptionMonitor.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/DefaultExceptionMonitor.java&r1=123487&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/DefaultExceptionMonitor.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/DefaultExceptionMonitor.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/DefaultExceptionMonitor.java Tue Dec 28 05:11:05 2004
@@ -16,19 +16,18 @@
* limitations under the License.
*
*/
-package org.apache.mina.util;
+package org.apache.mina.io;
import java.lang.reflect.Method;
import java.text.DateFormat;
import java.util.Date;
-import org.apache.mina.io.ExceptionMonitor;
/**
- * A default {@link ExceptionMonitor}. It logs uncaught exceptions using
- * <a href="http://jakarta.apache.org/commons/logging/">Apache Jakarta Commons
- * Logging</a> if available. If not available, it prints it out to
- * {@link System#err}.
+ * A default {@link ExceptionMonitor} implementation. It logs uncaught
+ * exceptions using <a href="http://jakarta.apache.org/commons/logging/">Apache
+ * Jakarta Commons Logging</a> if available. If not available, it prints it
+ * out to {@link System#err}.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/ExceptionMonitor.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/ExceptionMonitor.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/ExceptionMonitor.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/ExceptionMonitor.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/ExceptionMonitor.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/ExceptionMonitor.java Tue Dec 28 05:11:05 2004
@@ -18,12 +18,15 @@
*/
package org.apache.mina.io;
+
/**
* Monitors uncaught exceptions. {@link #exceptionCaught(Object, Throwable)} is
* invoked when there are any uncaught exceptions.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
+ *
+ * @see DefaultExceptionMonitor
*/
public interface ExceptionMonitor
{
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandler.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandler.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandler.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandler.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandler.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandler.java Tue Dec 28 05:11:05 2004
@@ -28,9 +28,15 @@
* There are 6 event handler methods, and they are all invoked by MINA
* automatically. Most users of MINA I/O package will be OK with this single
* interface to implement their protocols.
+ * <p>
+ * Please refer to
+ * <a href="../../../../../xref-examples/org/apache/mina/examples/echoserver/EchoProtocolHandler.html"><code>EchoProtocolHandler</code></a>
+ * example.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
+ *
+ * @see IoHandlerAdapter
*/
public interface IoHandler
{
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerAdapter.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerAdapter.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerAdapter.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerAdapter.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerAdapter.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerAdapter.java Tue Dec 28 05:11:05 2004
@@ -20,12 +20,14 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IdleStatus;
-import org.apache.mina.examples.netcat.NetCatProtocolHandler;
/**
* An abstract adapter class for {@link IoHandler}. You can extend this class
* and selectively override required event handler methods only. All methods
- * do nothing by default. Please refer to {@link NetCatProtocolHandler} for
+ * do nothing by default.
+ * <p>
+ * Please refer to
+ * <a href="../../../../../xref-examples/org/apache/mina/examples/netcat/NetCatProtocolHandler.html"><code>NetCatProtocolHandler</code></a>
* example.
*
* @author Trustin Lee (trustin@apache.org)
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilter.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilter.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilter.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilter.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilter.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilter.java Tue Dec 28 05:11:05 2004
@@ -20,14 +20,25 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IdleStatus;
-import org.apache.mina.io.filter.BlacklistFilter;
/**
* A filter which intercepts {@link IoHandler} events like Servlet filters.
- * Please refer to {@link BlacklistFilter} for example.
+ * Filters can be used for these purposes:
+ * <ul>
+ * <li>Event logging,</li>
+ * <li>Performance measurement,</li>
+ * <li>Data transformation (e.g. SSL support),</li>
+ * <li>Firewalling,</li>
+ * <li>and many more.</li>
+ * </ul>
+ * <p>
+ * Please refer to <a href="../../../../../xref/org/apache/mina/io/filter/BlacklistFilter.html"><code>BlacklistFilter</code></a>
+ * example.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
+ *
+ * @see IoHandlerFilterAdapter
*/
public interface IoHandlerFilter
{
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilterAdapter.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilterAdapter.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilterAdapter.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilterAdapter.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilterAdapter.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoHandlerFilterAdapter.java Tue Dec 28 05:11:05 2004
@@ -20,13 +20,15 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IdleStatus;
-import org.apache.mina.io.filter.BlacklistFilter;
/**
* An abstract adapter class for {@link IoHandlerFilter}. You can extend this
* class and selectively override required event filter methods only. All
- * methods forwards events to the next filter by default. Please refer to
- * {@link BlacklistFilter} for example.
+ * methods forwards events to the next filter by default.
+ * <p>
+ * Please refer to
+ * <a href="../../../../../xref/org/apache/mina/io/filter/BlacklistFilter.html"><code>BlacklistFilter</code></a>
+ * example.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoSession.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoSession.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoSession.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoSession.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoSession.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/IoSession.java Tue Dec 28 05:11:05 2004
@@ -23,6 +23,7 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IdleStatus;
import org.apache.mina.common.SessionConfig;
+import org.apache.mina.common.TransportType;
/**
* A handle which represents connection between two endpoints regardless of
@@ -67,13 +68,12 @@
void setAttachment( Object attachment );
/**
- * Returns <code>true</code> if this session is stateless. This method
- * returns the transport type is UDP/IP currently.
+ * Returns transport type of this session.
*/
- boolean isStateless();
+ TransportType getTransportType();
/**
- * Returns <code>true</code> if this session is connected.
+ * Returns <code>true</code> if this session is connected with remote peer.
*/
boolean isConnected();
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java Tue Dec 28 05:11:05 2004
@@ -32,10 +32,10 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.io.Acceptor;
+import org.apache.mina.io.DefaultExceptionMonitor;
import org.apache.mina.io.ExceptionMonitor;
import org.apache.mina.io.IoHandler;
import org.apache.mina.io.IoHandlerFilter;
-import org.apache.mina.util.DefaultExceptionMonitor;
import org.apache.mina.util.IoHandlerFilterManager;
import org.apache.mina.util.Queue;
@@ -45,7 +45,7 @@
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
*/
-public class DatagramAcceptor implements Acceptor, DatagramProcessor
+public class DatagramAcceptor extends DatagramProcessor implements Acceptor
{
private static volatile int nextId = 0;
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramConnector.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramConnector.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramConnector.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramConnector.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramConnector.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramConnector.java Tue Dec 28 05:11:05 2004
@@ -30,11 +30,11 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.io.Connector;
+import org.apache.mina.io.DefaultExceptionMonitor;
import org.apache.mina.io.ExceptionMonitor;
import org.apache.mina.io.IoHandler;
import org.apache.mina.io.IoHandlerFilter;
import org.apache.mina.io.IoSession;
-import org.apache.mina.util.DefaultExceptionMonitor;
import org.apache.mina.util.IoHandlerFilterManager;
import org.apache.mina.util.Queue;
@@ -44,7 +44,7 @@
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
*/
-public class DatagramConnector implements Connector, DatagramProcessor
+public class DatagramConnector extends DatagramProcessor implements Connector
{
private static volatile int nextId = 0;
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramProcessor.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramProcessor.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramProcessor.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramProcessor.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramProcessor.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramProcessor.java Tue Dec 28 05:11:05 2004
@@ -19,21 +19,22 @@
package org.apache.mina.io.datagram;
/**
- * A base interface for {@link DatagramAcceptor and DatagramConnector}.
- * Session interacts with this interface instead of those two concrete classes.
+ * A base class for {@link DatagramAcceptor} and {@link DatagramConnector}.
+ * Session interacts with this abstract class instead of those two concrete
+ * classes.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
*/
-interface DatagramProcessor
+abstract class DatagramProcessor
{
/**
- * This method is invoked by MINA internally, so please don't call this.
+ * This method is invoked by MINA internally.
*/
- void flushSession( DatagramSession session );
+ abstract void flushSession( DatagramSession session );
/**
- * This method is invoked by MINA internally, so please don't call this.
+ * This method is invoked by MINA internally.
*/
- void closeSession( DatagramSession session );
+ abstract void closeSession( DatagramSession session );
}
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramSession.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramSession.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramSession.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramSession.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramSession.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/DatagramSession.java Tue Dec 28 05:11:05 2004
@@ -25,6 +25,7 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IdleStatus;
import org.apache.mina.common.SessionConfig;
+import org.apache.mina.common.TransportType;
import org.apache.mina.io.IoHandler;
import org.apache.mina.io.IoSession;
import org.apache.mina.util.IoHandlerFilterManager;
@@ -152,9 +153,9 @@
parent.flushSession( this );
}
- public boolean isStateless()
+ public TransportType getTransportType()
{
- return true;
+ return TransportType.DATAGRAM;
}
public boolean isConnected()
Added: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/datagram/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+Datagram (UDP/IP) support.
+</body>
+</html>
Added: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/filter/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/filter/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/filter/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+Basic <code>IoHandlerFilter</code> implementations.
+</body>
+</html>
Added: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+Low-level protocol implementation layer (I/O layer).
+</body>
+</html>
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketAcceptor.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketAcceptor.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketAcceptor.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketAcceptor.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketAcceptor.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketAcceptor.java Tue Dec 28 05:11:05 2004
@@ -31,10 +31,10 @@
import java.util.Map;
import org.apache.mina.io.Acceptor;
+import org.apache.mina.io.DefaultExceptionMonitor;
import org.apache.mina.io.ExceptionMonitor;
import org.apache.mina.io.IoHandler;
import org.apache.mina.io.IoHandlerFilter;
-import org.apache.mina.util.DefaultExceptionMonitor;
import org.apache.mina.util.IoHandlerFilterManager;
import org.apache.mina.util.Queue;
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketConnector.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketConnector.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketConnector.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketConnector.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketConnector.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketConnector.java Tue Dec 28 05:11:05 2004
@@ -29,11 +29,11 @@
import java.util.Set;
import org.apache.mina.io.Connector;
+import org.apache.mina.io.DefaultExceptionMonitor;
import org.apache.mina.io.ExceptionMonitor;
import org.apache.mina.io.IoHandler;
import org.apache.mina.io.IoHandlerFilter;
import org.apache.mina.io.IoSession;
-import org.apache.mina.util.DefaultExceptionMonitor;
import org.apache.mina.util.IoHandlerFilterManager;
/**
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketIoProcessor.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketIoProcessor.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketIoProcessor.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketIoProcessor.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketIoProcessor.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketIoProcessor.java Tue Dec 28 05:11:05 2004
@@ -32,7 +32,8 @@
import org.apache.mina.util.Queue;
/**
- * TODO Document me.
+ * Performs core I/O operations for sockets. This class is used by MINA
+ * internally.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
@@ -79,12 +80,12 @@
selector = Selector.open();
}
- public static SocketIoProcessor getInstance()
+ static SocketIoProcessor getInstance()
{
return instance;
}
- public void addSession( SocketSession session )
+ void addSession( SocketSession session )
{
synchronized( this )
{
@@ -103,19 +104,19 @@
selector.wakeup();
}
- public void removeSession( SocketSession session )
+ void removeSession( SocketSession session )
{
scheduleRemove( session );
selector.wakeup();
}
- public void flushSession( SocketSession session )
+ void flushSession( SocketSession session )
{
scheduleFlush( session );
selector.wakeup();
}
- public void addReadableSession( SocketSession session )
+ void addReadableSession( SocketSession session )
{
synchronized( readableSessions )
{
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketSession.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketSession.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketSession.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketSession.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketSession.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/SocketSession.java Tue Dec 28 05:11:05 2004
@@ -25,6 +25,7 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IdleStatus;
import org.apache.mina.common.SessionConfig;
+import org.apache.mina.common.TransportType;
import org.apache.mina.io.IoHandler;
import org.apache.mina.io.IoSession;
import org.apache.mina.util.IoHandlerFilterManager;
@@ -163,9 +164,9 @@
SocketIoProcessor.getInstance().flushSession( this );
}
- public boolean isStateless()
+ public TransportType getTransportType()
{
- return false;
+ return TransportType.SOCKET;
}
public boolean isConnected()
Added: incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/io/socket/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+Socket (TCP/IP) support.
+</body>
+</html>
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/IoAdapter.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/IoAdapter.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/IoAdapter.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/IoAdapter.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/IoAdapter.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/IoAdapter.java Tue Dec 28 05:11:05 2004
@@ -23,6 +23,7 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IdleStatus;
import org.apache.mina.common.SessionConfig;
+import org.apache.mina.common.TransportType;
import org.apache.mina.io.Acceptor;
import org.apache.mina.io.Connector;
import org.apache.mina.io.IoHandler;
@@ -45,6 +46,10 @@
* acceptor.bind(new InetSocketAddress(...), handler);
* </pre>
* <p>
+ * Please refer to more realistic
+ * <a href="../../../../../xref-examples/org/apache/mina/examples/reverser/Main.html">Reverser</a>
+ * example.
+ * <p>
* {@link IoAdapter} supports protocol-level filters like {@link Acceptor}s and
* {@link Connector}s. It is the same with {@link IoHandlerFilter} and Servlet
* filters and effective immediately.
@@ -161,6 +166,11 @@
}
}
}
+ catch( ProtocolViolationException pve )
+ {
+ pve.setBuffer(in);
+ filterManager.fireExceptionCaught( psession, pve );
+ }
catch( Throwable t )
{
filterManager.fireExceptionCaught( psession, t );
@@ -294,7 +304,7 @@
this.attachment = attachment;
}
- public boolean write( Object message )
+ public void write( Object message )
{
synchronized( writeQueue )
{
@@ -302,12 +312,11 @@
}
adapter.write( session );
- return true;
}
- public boolean isStateless()
+ public TransportType getTransportType()
{
- return session.isStateless();
+ return session.getTransportType();
}
public boolean isConnected()
@@ -328,6 +337,16 @@
public SocketAddress getLocalAddress()
{
return session.getLocalAddress();
+ }
+
+ public long getReadBytes()
+ {
+ return session.getReadBytes();
+ }
+
+ public long getWrittenBytes()
+ {
+ return session.getWrittenBytes();
}
public long getLastIoTime()
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolCodecFactory.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolCodecFactory.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolCodecFactory.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolCodecFactory.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolCodecFactory.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolCodecFactory.java Tue Dec 28 05:11:05 2004
@@ -19,9 +19,13 @@
package org.apache.mina.protocol;
/**
- * provides {@link ProtocolEncoder} and {@link ProtocolDecoder} which translates
+ * Provides {@link ProtocolEncoder} and {@link ProtocolDecoder} which translates
* binary or protocol specific data into message object and vice versa.
- *
+ * <p>
+ * Please refer to
+ * <a href="../../../../../xref-examples/org/apache/mina/examples/reverser/ReverseProtocolProvider.html"><code>ReverserProtocolProvider</code></a>
+ * example.
+ *
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
*/
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoder.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoder.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoder.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoder.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoder.java Tue Dec 28 05:11:05 2004
@@ -24,7 +24,12 @@
* Decodes binary or protocol-specific data into higher-level message objects.
* MINA invokes {@link #decode(ProtocolSession, ByteBuffer, ProtocolDecoderOutput)}
* method with read data, and then the decoder implementation puts decoded
- * messages into {@link ProtocolDecoderOutput}.
+ * messages into {@link ProtocolDecoderOutput} by calling
+ * {@link ProtocolDecoderOutput#write(Object)}.
+ * <p>
+ * Please refer to
+ * <a href="../../../../../xref-examples/org/apache/mina/examples/reverser/TextLineDecoder.html"><code>TextLineDecoder</code></a>
+ * example.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoderOutput.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoderOutput.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoderOutput.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoderOutput.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoderOutput.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolDecoderOutput.java Tue Dec 28 05:11:05 2004
@@ -19,12 +19,21 @@
package org.apache.mina.protocol;
/**
- * TODO Document me.
+ * Callback for {@link ProtocolDecoder} to generate decoded messages.
+ * {@link ProtocolDecoder} must call {@link #write(Object)} for each decoded
+ * messages.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
*/
public interface ProtocolDecoderOutput
{
+ /**
+ * Callback for {@link ProtocolDecoder} to generate decoded messages.
+ * {@link ProtocolDecoder} must call {@link #write(Object)} for each
+ * decoded messages.
+ *
+ * @param message the decoded message
+ */
void write( Object message );
}
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoder.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoder.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoder.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoder.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoder.java Tue Dec 28 05:11:05 2004
@@ -25,7 +25,12 @@
* MINA invokes {@link #encode(ProtocolSession, Object, ProtocolEncoderOutput)}
* method with message which is popped from the session write queue, and then
* the encoder implementation puts encoded {@link ByteBuffer}s into
- * {@link ProtocolEncoderOutput}.
+ * {@link ProtocolEncoderOutput} by calling
+ * {@link ProtocolEncoderOutput#write(ByteBuffer)}.
+ * <p>
+ * Please refer to
+ * <a href="../../../../../xref-examples/org/apache/mina/examples/reverser/TextLineEncoder.html"><code>TextLineEncoder</code></a>
+ * example.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoderOutput.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoderOutput.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoderOutput.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoderOutput.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoderOutput.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolEncoderOutput.java Tue Dec 28 05:11:05 2004
@@ -1,5 +1,5 @@
/*
- * @(#) $Id: ProtocolEncoder.java 122629 2004-12-17 08:14:08Z trustin $
+ * @(#) $Id$
*
* Copyright 2004 The Apache Software Foundation
*
@@ -21,12 +21,21 @@
import org.apache.mina.common.ByteBuffer;
/**
- * TODO Document me.
+ * Callback for {@link ProtocolEncoder} to generate encoded {@link ByteBuffer}s.
+ * {@link ProtocolEncoder} must call {@link #write(ByteBuffer)} for each decoded
+ * messages.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
*/
public interface ProtocolEncoderOutput
{
+ /**
+ * Callback for {@link ProtocolEncoder} to generate encoded
+ * {@link ByteBuffer}s. {@link ProtocolEncoder} must call
+ * {@link #write(ByteBuffer)} for each decoded messages.
+ *
+ * @param buf the buffer which contains encoded data
+ */
void write( ByteBuffer buf );
}
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandler.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandler.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandler.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandler.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandler.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandler.java Tue Dec 28 05:11:05 2004
@@ -18,25 +18,61 @@
*/
package org.apache.mina.protocol;
+import java.io.IOException;
+
import org.apache.mina.common.IdleStatus;
/**
- * TODO Insert type comment.
+ * Handles all protocol events fired by MINA.
+ * There are 6 event handler methods, and they are all invoked by MINA
+ * automatically.
+ * <p>
+ * Please refer to
+ * <a href="../../../../../xref-examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.html"><code>ReverseProtocolHandler</code></a>
+ * example.
+ *
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
+ *
+ * @see ProtocolHandlerAdapter
*/
public interface ProtocolHandler
{
+ /**
+ * Invoked when the connection is opened. This method is not invoked if the
+ * transport type is UDP.
+ */
void sessionOpened( ProtocolSession session );
+ /**
+ * Invoked when the connection is closed. This method is not invoked if the
+ * transport type is UDP.
+ */
void sessionClosed( ProtocolSession session );
+ /**
+ * Invoked when the connection is idle. Refer to {@link IdleStatus}. This
+ * method is not invoked if the transport type is UDP.
+ */
void sessionIdle( ProtocolSession session, IdleStatus status );
+ /**
+ * Invoked when any exception is thrown by user {@link ProtocolHandler}
+ * implementation or by MINA. If <code>cause</code> is instanceof
+ * {@link IOException}, MINA will close the connection automatically.
+ */
void exceptionCaught( ProtocolSession session, Throwable cause );
+ /**
+ * Invoked when protocol message is received. Implement your protocol flow
+ * here.
+ */
void messageReceived( ProtocolSession session, Object message );
+ /**
+ * Invoked when protocol message that user requested by
+ * {@link ProtocolSession#write(Object)} is sent out actually.
+ */
void messageSent( ProtocolSession session, Object message );
}
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerAdapter.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerAdapter.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerAdapter.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerAdapter.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerAdapter.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerAdapter.java Tue Dec 28 05:11:05 2004
@@ -21,7 +21,9 @@
import org.apache.mina.common.IdleStatus;
/**
- * TODO Document me.
+ * An abstract adapter class for {@link ProtocolHandler}. You can extend this
+ * class and selectively override required event handler methods only. All
+ * methods do nothing by default.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilter.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilter.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilter.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilter.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilter.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilter.java Tue Dec 28 05:11:05 2004
@@ -21,26 +21,59 @@
import org.apache.mina.common.IdleStatus;
/**
- * TODO Insert type comment.
+ * A filter which intercepts {@link ProtocolHandler} events like Servlet
+ * filters. Filters can be used for these purposes:
+ * <ul>
+ * <li>Event logging,</li>
+ * <li>Performance measurement,</li>
+ * <li>Authorization,</li>
+ * <li>Overload control,</li>
+ * <li>Message transformation (e.g. encryption and decryption, ...),</li>
+ * <li>and many more.</li>
+ * </ul>
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
+ *
+ * @see ProtocolHandlerFilterAdapter
*/
public interface ProtocolHandlerFilter
{
+ /**
+ * Filters {@link ProtocolHandler#sessionOpened(ProtocolSession)} event.
+ */
void sessionOpened( ProtocolHandler nextHandler, ProtocolSession session );
+ /**
+ * Filters {@link ProtocolHandler#sessionClosed(ProtocolSession)} event.
+ */
void sessionClosed( ProtocolHandler nextHandler, ProtocolSession session );
+ /**
+ * Filters {@link ProtocolHandler#sessionIdle(ProtocolSession,IdleStatus)}
+ * event.
+ */
void sessionIdle( ProtocolHandler nextHandler, ProtocolSession session,
IdleStatus status );
+ /**
+ * Filters {@link ProtocolHandler#exceptionCaught(ProtocolSession,Throwable)}
+ * event.
+ */
void exceptionCaught( ProtocolHandler nextHandler,
ProtocolSession session, Throwable cause );
+ /**
+ * Filters {@link ProtocolHandler#messageReceived(ProtocolSession,Object)}
+ * event.
+ */
void messageReceived( ProtocolHandler nextHandler,
ProtocolSession session, Object message );
+ /**
+ * Filters {@link ProtocolHandler#messageSent(ProtocolSession,Object)}
+ * event.
+ */
void messageSent( ProtocolHandler nextHandler, ProtocolSession session,
Object message );
}
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilterAdapter.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilterAdapter.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilterAdapter.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilterAdapter.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilterAdapter.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolHandlerFilterAdapter.java Tue Dec 28 05:11:05 2004
@@ -21,7 +21,9 @@
import org.apache.mina.common.IdleStatus;
/**
- * TODO Document me.
+ * An abstract adapter class for {@link ProtocolHandlerFilter}. You can extend
+ * this class and selectively override required event filter methods only. All
+ * methods forwards events to the next filter by default.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolProvider.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolProvider.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolProvider.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolProvider.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolProvider.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolProvider.java Tue Dec 28 05:11:05 2004
@@ -33,6 +33,10 @@
* If once you implement {@link ProtocolProvider} for your protocol, you can
* adapt it into {@link IoHandler} using {@link IoAdapter} to work with I/O
* layer which does actual I/O operations.
+ * <p>
+ * Please refer to
+ * <a href="../../../../../xref-examples/org/apache/mina/examples/reverser/ReverseProtocolProvider.html"><code>ReverserProtocolProvider</code></a>
+ * example.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolSession.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolSession.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolSession.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolSession.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolSession.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolSession.java Tue Dec 28 05:11:05 2004
@@ -22,44 +22,113 @@
import org.apache.mina.common.IdleStatus;
import org.apache.mina.common.SessionConfig;
+import org.apache.mina.common.TransportType;
/**
- * TODO Insert type comment.
+ * A handle which represents high-level protocol connection between two
+ * endpoints regardless of underlying transport types.
+ * <p>
+ * Session provides an attachment per session ({@link #getAttachment()} and
+ * {@link #setAttachment(Object)}). Attachment is an application-specific data
+ * which is associated with a session. It is often an object that represents
+ * the state of a higher-level protocol.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
*/
public interface ProtocolSession
{
+ /**
+ * Returns the {@link ProtocolHandler} which handles this session.
+ */
ProtocolHandler getHandler();
+ /**
+ * Returns the {@link ProtocolEncoder} for this session.
+ */
ProtocolEncoder getEncoder();
+ /**
+ * Returns the {@link ProtocolDecoder} for this session.
+ */
ProtocolDecoder getDecoder();
+ /**
+ * Closes the connection immediately.
+ */
void close();
+ /**
+ * Returns an attachment of this session.
+ */
Object getAttachment();
+ /**
+ * Sets an attachment of this session.
+ */
void setAttachment( Object attachment );
- boolean write( Object message );
-
- boolean isStateless();
-
+ /**
+ * Writes the specified <code>message</code> to remote peer. This operation
+ * is asynchronous; {@link ProtocolHandler#messageSent(ProtocolSession, Object)}
+ * will be invoked when the message is actually sent to remote peer.
+ */
+ void write( Object message );
+
+ /**
+ * Returns transport type of this session.
+ */
+ TransportType getTransportType();
+
+ /**
+ * Returns <code>true</code> if this session is connected with remote peer.
+ */
boolean isConnected();
+ /**
+ * Returns the configuration of this session.
+ */
SessionConfig getConfig();
+ /**
+ * Returns the socket address of remote peer.
+ */
SocketAddress getRemoteAddress();
+ /**
+ * Returns the socket address of local machine which is associated with this
+ * session.
+ */
SocketAddress getLocalAddress();
+ /**
+ * Returns the total number of bytes which were read from this session.
+ */
+ long getReadBytes();
+
+ /**
+ * Returns the total number of bytes which were written to this session.
+ */
+ long getWrittenBytes();
+
+ /**
+ * Returns the time in millis when I/O occurred lastly.
+ */
long getLastIoTime();
+ /**
+ * Returns the time in millis when read operation occurred lastly.
+ */
long getLastReadTime();
+ /**
+ * Returns the time in millis when write operation occurred lastly.
+ */
long getLastWriteTime();
+ /**
+ * Returns <code>true</code> if this session is idle for the specified
+ * {@link IdleStatus}.
+ */
boolean isIdle( IdleStatus status );
}
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolViolationException.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolViolationException.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolViolationException.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolViolationException.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolViolationException.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/ProtocolViolationException.java Tue Dec 28 05:11:05 2004
@@ -22,8 +22,10 @@
import org.apache.mina.util.ByteBuffers;
/**
- * An exception that is thrown when {@link ProtocolEncoder} and {@link ProtocolDecoder}
- * cannot understand or validate incoming data.
+ * An exception that is thrown when {@link ProtocolEncoder} cannot understand or
+ * failed to validate the specified message, or when {@link ProtocolDecoder}
+ * cannot understand or failed to validate the specified {@link ByteBuffer}
+ * content.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
@@ -98,7 +100,7 @@
/**
* Sets unknown message part.
*/
- public void setBuffer( ByteBuffer buffer )
+ void setBuffer( ByteBuffer buffer )
{
this.buffer = buffer;
}
Added: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/filter/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/filter/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/filter/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+Basic <code>ProtocolHandlerFilter</code> implementations.
+</body>
+</html>
Added: incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/protocol/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+High-level protocol implementation layer (Protocol layer).
+</body>
+</html>
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/Service.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/Service.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/Service.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/Service.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/Service.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/Service.java Tue Dec 28 05:11:05 2004
@@ -18,8 +18,10 @@
*/
package org.apache.mina.registry;
+import org.apache.mina.common.TransportType;
+
/**
- * TODO Insert type comment.
+ * Represents a service that is registered to {@link ServiceRegistry}.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/ServiceRegistry.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/ServiceRegistry.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/ServiceRegistry.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/ServiceRegistry.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/ServiceRegistry.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/ServiceRegistry.java Tue Dec 28 05:11:05 2004
@@ -21,10 +21,14 @@
import java.io.IOException;
import java.util.Iterator;
+import org.apache.mina.common.TransportType;
import org.apache.mina.io.IoHandler;
+import org.apache.mina.io.IoHandlerFilter;
+import org.apache.mina.protocol.ProtocolHandler;
+import org.apache.mina.protocol.ProtocolHandlerFilter;
/**
- * Interface for the internet service registry. The registry is used by Netty
+ * Interface for the internet service registry. The registry is used by MINA
* to associate services with ports and transport protocols.
*
* @author akarasulu@apache.org
@@ -35,7 +39,23 @@
{
void bind( Service service, IoHandler sessionHandler ) throws IOException;
+ void bind( Service service, ProtocolHandler sessionHandler )
+ throws IOException;
+
void unbind( Service service );
+
+ void addFilter( int priority, IoHandlerFilter filter );
+
+ void addFilter( int priority, ProtocolHandlerFilter filter );
+
+ void addFilter( Service service, int priority, IoHandlerFilter filter );
+
+ void addFilter( Service service, int priority,
+ ProtocolHandlerFilter filter );
+
+ void removeFilter( IoHandlerFilter filter );
+
+ void removeFilter( ProtocolHandlerFilter filter );
Service getByName( String name, TransportType transportType );
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/SimpleService.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/SimpleService.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/SimpleService.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/SimpleService.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/SimpleService.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/SimpleService.java Tue Dec 28 05:11:05 2004
@@ -18,8 +18,10 @@
*/
package org.apache.mina.registry;
+import org.apache.mina.common.TransportType;
+
/**
- * TODO Document me.
+ * Default implementation of {@link Service}.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
@@ -33,6 +35,10 @@
private final int port;
+ /**
+ * Creates a new instance with the specified protocol name, transport type,
+ * and port number.
+ */
public SimpleService( String name, TransportType transportType, int port )
{
if( name == null )
Deleted: /incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/TransportType.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/TransportType.java?view=auto&rev=123499
==============================================================================
Added: incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/registry/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+This package is not yet implemented.
+</body>
+</html>
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BasicSessionConfig.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BasicSessionConfig.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BasicSessionConfig.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BasicSessionConfig.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BasicSessionConfig.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BasicSessionConfig.java Tue Dec 28 05:11:05 2004
@@ -22,7 +22,7 @@
import org.apache.mina.common.SessionConfig;
/**
- * TODO Document me.
+ * Base class of all {@link SessionConfig}s.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BlockingSet.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BlockingSet.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BlockingSet.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BlockingSet.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BlockingSet.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/BlockingSet.java Tue Dec 28 05:11:05 2004
@@ -22,7 +22,7 @@
import java.util.Iterator;
/**
- * TODO Document me.
+ * A {@link HashSet} that can wait until it is not empty.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ByteBuffers.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ByteBuffers.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ByteBuffers.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ByteBuffers.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ByteBuffers.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ByteBuffers.java Tue Dec 28 05:11:05 2004
@@ -21,6 +21,8 @@
import org.apache.mina.common.ByteBuffer;
/**
+ * Provides utility methods for ByteBuffers.
+ *
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
*/
Deleted: /incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/DefaultExceptionMonitor.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/DefaultExceptionMonitor.java?view=auto&rev=123499
==============================================================================
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java Tue Dec 28 05:11:05 2004
@@ -26,7 +26,7 @@
import org.apache.mina.protocol.IoAdapter;
/**
- * TODO Document me.
+ * Manages the list of {@link IoHandlerFilter}s.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ProtocolHandlerFilterManager.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ProtocolHandlerFilterManager.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ProtocolHandlerFilterManager.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ProtocolHandlerFilterManager.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ProtocolHandlerFilterManager.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/ProtocolHandlerFilterManager.java Tue Dec 28 05:11:05 2004
@@ -24,7 +24,7 @@
import org.apache.mina.protocol.ProtocolSession;
/**
- * TODO Document me.
+ * Manages the list of {@link ProtocolHandlerFilter}s.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Queue.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Queue.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Queue.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Queue.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Queue.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Queue.java Tue Dec 28 05:11:05 2004
@@ -22,9 +22,7 @@
import java.util.Arrays;
/**
- * <p>
- * A simple queue class. This class is <b>NOT </b> thread-safe.
- * </p>
+ * A unbounded circular queue.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
@@ -46,8 +44,7 @@
private int size = 0;
/**
- * Construct a new, empty <code>Queue</code> with the specified initial
- * capacity.
+ * Construct a new, empty queue.
*/
public Queue()
{
Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Stack.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Stack.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Stack.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Stack.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Stack.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/Stack.java Tue Dec 28 05:11:05 2004
@@ -22,9 +22,7 @@
import java.util.Arrays;
/**
- * <p>
- * A simple queue class. This class is <b>NOT </b> thread-safe.
- * </p>
+ * A unbounded stack.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
@@ -38,8 +36,7 @@
private int size = 0;
/**
- * Construct a new, empty <code>Queue</code> with the specified initial
- * capacity.
+ * Construct a new, empty stack.
*/
public Stack()
{
@@ -47,7 +44,7 @@
}
/**
- * Clears this queue.
+ * Clears this stack.
*/
public void clear()
{
@@ -56,9 +53,9 @@
}
/**
- * Dequeues from this queue.
+ * Pops from this stack.
*
- * @return <code>null</code>, if this queue is empty or the element is
+ * @return <code>null</code>, if this stack is empty or the element is
* really <code>null</code>.
*/
public Object pop()
@@ -77,7 +74,7 @@
}
/**
- * Enqueue into this queue.
+ * Push into this stack.
*/
public void push( Object obj )
{
@@ -109,9 +106,9 @@
}
/**
- * Returns the first element of the queue.
+ * Returns the first element of the stack.
*
- * @return <code>null</code>, if the queue is empty, or the element is
+ * @return <code>null</code>, if the stack is empty, or the element is
* really <code>null</code>.
*/
public Object first()
@@ -135,7 +132,7 @@
}
/**
- * Returns <code>true</code> if the queue is empty.
+ * Returns <code>true</code> if the stack is empty.
*/
public boolean isEmpty()
{
@@ -143,7 +140,7 @@
}
/**
- * Returns the number of elements in the queue.
+ * Returns the number of elements in the stack.
*/
public int size()
{
Added: incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/package.html
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/package.html?view=auto&rev=123500
==============================================================================
--- (empty file)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/package.html Tue Dec 28 05:11:05 2004
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+</head>
+<body>
+This package is used by MINA internally.
+</body>
+</html>
Modified: incubator/directory/network/trunk/mina/src/test/org/apache/mina/examples/echoserver/Test.java
Url: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/test/org/apache/mina/examples/echoserver/Test.java?view=diff&rev=123500&p1=incubator/directory/network/trunk/mina/src/test/org/apache/mina/examples/echoserver/Test.java&r1=123499&p2=incubator/directory/network/trunk/mina/src/test/org/apache/mina/examples/echoserver/Test.java&r2=123500
==============================================================================
--- incubator/directory/network/trunk/mina/src/test/org/apache/mina/examples/echoserver/Test.java (original)
+++ incubator/directory/network/trunk/mina/src/test/org/apache/mina/examples/echoserver/Test.java Tue Dec 28 05:11:05 2004
@@ -17,7 +17,7 @@
import org.apache.mina.io.socket.SocketAcceptor;
/**
- * TODO Document me.
+ * Tests echo server example.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$