Irving, Dave wrote:

Niklas Therning Wrote:

Hi,

To me this issue seems to be getting increasingly complex. Maybe it has been suggested before but wouldn't it be possible to
define
only the filters for a session manager and port and create the one and
only
session chain when a new session is created?

That's the simplest and cleanest way to do it.
The only thing that worries me here is that acceptor / port filters will
be added to each and every session chain.
This means they will be "init"ed and "destroy"ed per session.
If this isn't a problem - then we can roll with the simple solution.
However, Trustin was talking about filter implementations caching their
NextFilters so that events can be propogated asyncronously (and this
gets harder for filter implementors to do when these filters are reused
in multiple sessions).
True. I'm not sure how common this use case is but it could definitely cause headaches.

My solution would have a moderately complex ** implementation ** but the
api to users would be the same as it is today, whilst keeping shared
filters only getting inited once, with a single (smart) NextFilter.
What I like with you're solution is exactly this, the user experience isn't changed in any way (except the optional per-port chains feature). But I'm getting a bit worried that it could become hard to maintain for the Mina developers?

Im up for implementing either solution: But each has its own
consequences :o)
One thing that has struck me is that it might actually be more intuitive from a user perspective that session.getFilterChain() always returns the entire chain for the user to modify. But maybe that's just me.

/Niklas

Reply via email to