Issue Details (XML | Word | Printable)

Key: DIRMINA-131
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Trustin Lee
Reporter: Trustin Lee
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
MINA

Get rid of complexity of the current IoFilterChain.

Created: 28/Nov/05 11:12 PM   Updated: 01/Dec/05 02:45 PM
Return to search
Component/s: None
Affects Version/s: 0.8.0
Fix Version/s: 0.9.0

Time Tracking:
Not Specified

Resolution Date: 01/Dec/05 02:45 PM


 Description  « Hide
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.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
No work has yet been logged on this issue.