directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Niklas Therning (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DIRMINA-131) Get rid of complexity of the current IoFilterChain.
Date Tue, 29 Nov 2005 09:23:31 GMT
    [ http://issues.apache.org/jira/browse/DIRMINA-131?page=comments#action_12358761 ] 

Niklas Therning commented on DIRMINA-131:
-----------------------------------------

About the utility classes. Why not have a DefaultIoFilterChainBuilder which has all the add/remove
methods IoFilterChain has. Internally it will keep a list of IoFilters. In DefaultIoFilterChainBuilder.build(chain)
the filters in the internal list would simply be added last to the chain being built.

The SimpleServiceRegistry would use DefaultIoFilterChainBuilder which would make it quite
simple to migrate old code:

reg.getAcceptor( TransportType.SOCKET ).getFilterChain().addLast( "foo", fooFilter )

would become

( ( DefaultIoFilterChainBuilder ) reg.getAcceptor( TransportType.SOCKET ).getFilterChainBuilder()
).addLast( "foo", fooFilter )

Instead of the NOOP chain builder the concrete SessionManagers which come with MINA could
use DefaultIoFilterChainBuilder by default.


> Get rid of complexity of the current IoFilterChain.
> ---------------------------------------------------
>
>          Key: DIRMINA-131
>          URL: http://issues.apache.org/jira/browse/DIRMINA-131
>      Project: Directory MINA
>         Type: Improvement
>     Versions: 0.8
>     Reporter: Trustin Lee
>     Assignee: Trustin Lee
>      Fix For: 0.9

>
> This issue is the summary of these threads in the Apache Directory Project mailing list:
> http://www.nabble.com/-mina-Refactoring-MINA-IoFilterChain-%28Was%3A-IoFilters%3A-DIRMINA-121-122%29-t553121.html
> http://www.nabble.com/-mina-IoFilters%3A-DIRMINA-121-122-t548297.html
> Currently, IoFilterChains are categorized into two; one is IoSessionManagerFilterChain,
and the other is IoSessionFilterChain.  IoSessionManagerFilterChain is shared by all sessions
managed by the same IoSessionManager, and IoSessionFilterChain is individual for each session.
 But this design made the internal architecture of MINA filter chain very complex comparing
its usefulness.
> What about just getting rid of the original IoSessionManagerFilterChain, and provide
a simple data structure which just stores a list of filters but still implements IoFilter
interface?  By doing so, we can simply copy the chain into the IoSessionFilterChain before
we start the communication, so the chain implementation gets simplified dramatically.
> Besides that, we have another option instead of using a simple data structure that implements
IoFilterChain.  It is called 'IoFilterChainBuilder'.  It is a kind of command pattern which
configures the filter chain instead of simply appending the filter list the chain.  It provides
great flexibility.  For example, you can override the settings of per-manager filter chain
in your per-port (or per-session) chain builder.
> I think it will be best if we can combine these two approach by providing an IoFilterChainBuilder
implementation which simply appends the specified filter list to the per-session chain.

-- 
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


Mime
View raw message