Hi,
I implemented some really simple chain for MINA 3 based on a list of
chain processed by a filter chain.

The implementation is very simple, sounded like a good idea :
http://svn.apache.org/repos/asf/mina/branches/3.0/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java

But when i started implementing an HTTP codec  I started to see the
real design issues.
The problem is when you need to produce more than one object during a
filter processing, like when you find more than one PDU in a
ByteBuffer.

We could change IoFilter method :
  Object messageReceived(IoSession session, Object message);
To :
  List<Object> messageReceived(IoSession session, Object message);

But starting to use collection here sound like an overkill and not
really a nice idea if we want to keep the memory usage low enough.

So I'm scraping the current implementation, I'm going to try something
else suggested by Emmanuel :
When a filter want to call the next filter, he ask it to the filter
controller (aka the FilterChain). Let's see if it's going somewhere
this time ;)

Julien

Reply via email to