[
http://issues.apache.org/jira/browse/DIRMINA-187?page=comments#action_12370046
]
Trustin Lee commented on DIRMINA-187:
-------------------------------------
This solution looks a little bit complicated IMHO. What do you think about
this:
interface IoHandlerFactory
{
IoHandler getHandler( IoSession session );
}
interface IoAcceptor
{
void bind( SocketAddress address, IoHandler handler ); // one handler
handles multiple sessions
void bind( SocketAddress address, IoHandlerFactory handlerFactory ); //
multiple handler handler multiple sessions
void bind( SocketAddress address, Class<IoHandler> handlerClass ); //
multiple handler multiple sessions, handlerClass is instantiated whenever a new
session is created.
}
<usage 1>
class MyHandlerFactory implements IoHandlerFactory
{
IoHandler getHandler( IoSession session )
{
return new MyHandler(); // MyHandler implements IoHandler
}
}
acceptor.bind( ..., new MyHandlerFactory() );
<usage 2>
acceptor.bind(..., MyHandler.class);
This will seamlessly integrate per-session handlers retaining backward
compatibility.
> Support IoHandler per IoSession (SingleSessionIoHandler)
> --------------------------------------------------------
>
> Key: DIRMINA-187
> URL: http://issues.apache.org/jira/browse/DIRMINA-187
> Project: Directory MINA
> Type: New Feature
> Reporter: Simon Raess
> Priority: Minor
> Attachments: single-session-handler.zip
>
> Currently, when binding an IoAcceptor a single IoHandler is specified that is
> shared among all sessions. This shared IoHandler cannot use instance
> variables (without proper synchronization), because it is accessed
> concurrently by multiple threads. The handler state has to be stored as
> session attributes. However, if there was one IoHandler per IoSession, state
> stored in instance variables of the IoHandler could be used safely.
> The attached zip file contains an implemented solution (as suggested by
> Niklas Therning) for this idea. See the following post in the mailing list
> archive for a detailed description:
> http://mail-archives.apache.org/mod_mbox/directory-mina-dev/200603.mbox/[EMAIL
> PROTECTED]
> What do you think?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira