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 2006/09/20 08:30:29 UTC
svn commit: r448090 - in
/directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup:
Client.java ClientSessionHandler.java Server.java ServerSessionHandler.java
Author: trustin
Date: Tue Sep 19 23:30:28 2006
New Revision: 448090
URL: http://svn.apache.org/viewvc?view=rev&rev=448090
Log:
Applied the best practice of adding filters
Modified:
directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/Client.java
directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/ClientSessionHandler.java
directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/Server.java
directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/ServerSessionHandler.java
Modified: directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/Client.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/Client.java?view=diff&rev=448090&r1=448089&r2=448090
==============================================================================
--- directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/Client.java (original)
+++ directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/Client.java Tue Sep 19 23:30:28 2006
@@ -23,10 +23,14 @@
import org.apache.mina.common.ConnectFuture;
import org.apache.mina.common.IoConnector;
-import org.apache.mina.common.IoConnectorConfig;
import org.apache.mina.common.IoSession;
import org.apache.mina.common.RuntimeIOException;
+import org.apache.mina.example.sumup.codec.SumUpProtocolCodecFactory;
+import org.apache.mina.filter.LoggingFilter;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
import org.apache.mina.transport.socket.nio.SocketConnector;
+import org.apache.mina.transport.socket.nio.SocketConnectorConfig;
/**
* (<strong>Entry Point</strong>) Starts SumUp client.
@@ -57,9 +61,24 @@
values[ i ] = Integer.parseInt( args[ i ] );
}
- // Set connect timeout.
IoConnector connector = new SocketConnector();
- ( ( IoConnectorConfig ) connector.getDefaultConfig() ).setConnectTimeout( CONNECT_TIMEOUT );
+
+ // Configure the service.
+ SocketConnectorConfig cfg = new SocketConnectorConfig();
+ cfg.setConnectTimeout( CONNECT_TIMEOUT );
+ if( USE_CUSTOM_CODEC )
+ {
+ cfg.getFilterChain().addLast(
+ "codec",
+ new ProtocolCodecFilter( new SumUpProtocolCodecFactory( false ) ) );
+ }
+ else
+ {
+ cfg.getFilterChain().addLast(
+ "codec",
+ new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
+ }
+ cfg.getFilterChain().addLast( "logger", new LoggingFilter() );
IoSession session;
for( ;; )
@@ -68,7 +87,7 @@
{
ConnectFuture future = connector.connect(
new InetSocketAddress( HOSTNAME, PORT ),
- new ClientSessionHandler( USE_CUSTOM_CODEC, values ) );
+ new ClientSessionHandler( values ), cfg );
future.join();
session = future.getSession();
Modified: directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/ClientSessionHandler.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/ClientSessionHandler.java?view=diff&rev=448090&r1=448089&r2=448090
==============================================================================
--- directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/ClientSessionHandler.java (original)
+++ directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/ClientSessionHandler.java Tue Sep 19 23:30:28 2006
@@ -22,13 +22,8 @@
import org.apache.mina.common.IoHandler;
import org.apache.mina.common.IoHandlerAdapter;
import org.apache.mina.common.IoSession;
-import org.apache.mina.example.sumup.codec.SumUpProtocolCodecFactory;
import org.apache.mina.example.sumup.message.AddMessage;
import org.apache.mina.example.sumup.message.ResultMessage;
-import org.apache.mina.filter.LoggingFilter;
-import org.apache.mina.filter.codec.ProtocolCodecFactory;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
import org.apache.mina.util.SessionLog;
/**
@@ -39,37 +34,17 @@
*/
public class ClientSessionHandler extends IoHandlerAdapter
{
- private final boolean useCustomCodec;
private final int[] values;
private boolean finished;
- public ClientSessionHandler( boolean useCustomCodec, int[] values )
+ public ClientSessionHandler( int[] values )
{
- this.useCustomCodec = useCustomCodec;
this.values = values;
}
public boolean isFinished()
{
return finished;
- }
-
- public void sessionCreated( IoSession session ) throws Exception
- {
- ProtocolCodecFactory codec;
- if( useCustomCodec )
- {
- codec = new SumUpProtocolCodecFactory( false );
- }
- else
- {
- codec = new ObjectSerializationCodecFactory();
- }
-
- session.getFilterChain().addLast(
- "protocolFilter", new ProtocolCodecFilter( codec ) );
- session.getFilterChain().addLast(
- "logger", new LoggingFilter() );
}
public void sessionOpened( IoSession session )
Modified: directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/Server.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/Server.java?view=diff&rev=448090&r1=448089&r2=448090
==============================================================================
--- directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/Server.java (original)
+++ directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/Server.java Tue Sep 19 23:30:28 2006
@@ -22,7 +22,12 @@
import java.net.InetSocketAddress;
import org.apache.mina.common.IoAcceptor;
+import org.apache.mina.example.sumup.codec.SumUpProtocolCodecFactory;
+import org.apache.mina.filter.LoggingFilter;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
import org.apache.mina.transport.socket.nio.SocketAcceptor;
+import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;
/**
* (<strong>Entry Point</strong>) Starts SumUp server.
@@ -38,12 +43,28 @@
public static void main( String[] args ) throws Throwable
{
- // Create ServiceRegistry.
IoAcceptor acceptor = new SocketAcceptor();
+
+ // Prepare the service configuration.
+ SocketAcceptorConfig cfg = new SocketAcceptorConfig();
+ cfg.setReuseAddress( true );
+ if( USE_CUSTOM_CODEC )
+ {
+ cfg.getFilterChain().addLast(
+ "codec",
+ new ProtocolCodecFilter( new SumUpProtocolCodecFactory( true ) ) );
+ }
+ else
+ {
+ cfg.getFilterChain().addLast(
+ "codec",
+ new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
+ }
+ cfg.getFilterChain().addLast( "logger", new LoggingFilter() );
acceptor.bind(
new InetSocketAddress( SERVER_PORT ),
- new ServerSessionHandler( USE_CUSTOM_CODEC ) );
+ new ServerSessionHandler( ), cfg );
System.out.println( "Listening on port " + SERVER_PORT );
}
Modified: directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/ServerSessionHandler.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/ServerSessionHandler.java?view=diff&rev=448090&r1=448089&r2=448090
==============================================================================
--- directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/ServerSessionHandler.java (original)
+++ directory/trunks/mina/example/src/main/java/org/apache/mina/example/sumup/ServerSessionHandler.java Tue Sep 19 23:30:28 2006
@@ -21,14 +21,10 @@
import org.apache.mina.common.IdleStatus;
import org.apache.mina.common.IoHandler;
+import org.apache.mina.common.IoHandlerAdapter;
import org.apache.mina.common.IoSession;
-import org.apache.mina.example.sumup.codec.SumUpProtocolCodecFactory;
import org.apache.mina.example.sumup.message.AddMessage;
import org.apache.mina.example.sumup.message.ResultMessage;
-import org.apache.mina.filter.LoggingFilter;
-import org.apache.mina.filter.codec.ProtocolCodecFactory;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
import org.apache.mina.util.SessionLog;
/**
@@ -37,33 +33,8 @@
* @author The Apache Directory Project (mina-dev@directory.apache.org)
* @version $Rev$, $Date$
*/
-public class ServerSessionHandler implements IoHandler
+public class ServerSessionHandler extends IoHandlerAdapter
{
- private final boolean useCustomCodec;
-
- public ServerSessionHandler( boolean useCustomCodec )
- {
- this.useCustomCodec = useCustomCodec;
- }
-
- public void sessionCreated( IoSession session ) throws Exception
- {
- ProtocolCodecFactory codec;
- if( useCustomCodec )
- {
- codec = new SumUpProtocolCodecFactory( true );
- }
- else
- {
- codec = new ObjectSerializationCodecFactory();
- }
-
- session.getFilterChain().addFirst(
- "protocolFilter", new ProtocolCodecFilter( codec ) );
- session.getFilterChain().addLast(
- "logger", new LoggingFilter() );
- }
-
public void sessionOpened( IoSession session )
{
// set idle time to 60 seconds
@@ -73,10 +44,6 @@
session.setAttachment( new Integer( 0 ) );
}
- public void sessionClosed( IoSession session )
- {
- }
-
public void messageReceived( IoSession session, Object message )
{
// client only sends AddMessage. otherwise, we will have to identify
@@ -108,10 +75,6 @@
rm.setValue( sum );
session.write( rm );
}
- }
-
- public void messageSent( IoSession session, Object message )
- {
}
public void sessionIdle( IoSession session, IdleStatus status )