You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2009/03/28 19:04:58 UTC
svn commit: r759532 - in
/mina/trunk/example/src/main/java/org/apache/mina/example/gettingstarted/timeserver:
MinaTimeServer.java TimeServerHandler.java
Author: elecharny
Date: Sat Mar 28 18:04:57 2009
New Revision: 759532
URL: http://svn.apache.org/viewvc?rev=759532&view=rev
Log:
Added some comments and Javadoc
Modified:
mina/trunk/example/src/main/java/org/apache/mina/example/gettingstarted/timeserver/MinaTimeServer.java
mina/trunk/example/src/main/java/org/apache/mina/example/gettingstarted/timeserver/TimeServerHandler.java
Modified: mina/trunk/example/src/main/java/org/apache/mina/example/gettingstarted/timeserver/MinaTimeServer.java
URL: http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/gettingstarted/timeserver/MinaTimeServer.java?rev=759532&r1=759531&r2=759532&view=diff
==============================================================================
--- mina/trunk/example/src/main/java/org/apache/mina/example/gettingstarted/timeserver/MinaTimeServer.java (original)
+++ mina/trunk/example/src/main/java/org/apache/mina/example/gettingstarted/timeserver/MinaTimeServer.java Sat Mar 28 18:04:57 2009
@@ -31,27 +31,39 @@
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
/**
- * TODO Add documentation
+ * A minimal 'time' server, returning the current date. Opening
+ * a telnet server, you will get the current date by typing
+ * any string followed by a new line.
+ *
+ * In order to quit, just send the 'quit' message.
*
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
*/
public class MinaTimeServer {
-
+ /** We will use a port above 1024 to be able to launch the server with a standard user */
private static final int PORT = 9123;
-
+
+ /**
+ * The server implementation. It's based on TCP, and uses a logging filter
+ * plus a text line decoder.
+ */
public static void main(String[] args) throws IOException {
-
+ // Create the acceptor
IoAcceptor acceptor = new NioSocketAcceptor();
+ // Add two filters : a logger and a codec
acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );
acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));
- acceptor.setHandler( new TimeServerHandler() );
+ // Attach the business logic to the server
+ acceptor.setHandler( new TimeServerHandler() );
+ // Configurate the buffer size and the iddle time
acceptor.getSessionConfig().setReadBufferSize( 2048 );
acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 );
+ // And bind !
acceptor.bind( new InetSocketAddress(PORT) );
}
}
\ No newline at end of file
Modified: mina/trunk/example/src/main/java/org/apache/mina/example/gettingstarted/timeserver/TimeServerHandler.java
URL: http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/gettingstarted/timeserver/TimeServerHandler.java?rev=759532&r1=759531&r2=759532&view=diff
==============================================================================
--- mina/trunk/example/src/main/java/org/apache/mina/example/gettingstarted/timeserver/TimeServerHandler.java (original)
+++ mina/trunk/example/src/main/java/org/apache/mina/example/gettingstarted/timeserver/TimeServerHandler.java Sat Mar 28 18:04:57 2009
@@ -26,33 +26,47 @@
import org.apache.mina.core.session.IoSession;
/**
- * TODO Add documentation
+ * The Time Server handler : it return the current date when a message is received,
+ * or close the session if the "quit" message is received.
*
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
*/
public class TimeServerHandler extends IoHandlerAdapter
{
+ /**
+ * Trap exceptions.
+ */
@Override
public void exceptionCaught( IoSession session, Throwable cause ) throws Exception
{
cause.printStackTrace();
}
+ /**
+ * If the message is 'quit', we exit by closing the session. Otherwise,
+ * we return the current date.
+ */
@Override
public void messageReceived( IoSession session, Object message ) throws Exception
{
String str = message.toString();
+
if( str.trim().equalsIgnoreCase("quit") ) {
+ // "Quit" ? let's get out ...
session.close(true);
return;
}
+ // Send the current date back to the client
Date date = new Date();
session.write( date.toString() );
System.out.println("Message written...");
}
+ /**
+ * On idle, we just write a message on the console
+ */
@Override
public void sessionIdle( IoSession session, IdleStatus status ) throws Exception
{