Hi Steve,

On Nov 29, 2007 1:37 AM, Steve Ulrich (proemion)
<[EMAIL PROTECTED]> wrote:
>
> Hi Mina-folks,
>
> we're using the trunk/2.0 version of mina in some of our apps.
> For test purposes I used a DummySession and mocked the write() and
> close()-methods with easyMock classextension, because I'm not interested in
> any other method calls, like get/setAttribute. Some of these Methods are
> called from the Statemachine or other sources and I don't want to change
> mock expectations everytime a library changes.
> Today we made an update and the test failed, or to be more specific: the
> mock didn't work as expected. After some investigation I found out that
> EasyMock couldn't mock the methods because *all* methods at the
> AbstractIoSession are final or private.
> An abstract class with just final and private methods looks very odd to me.
> Normally, if you declare a class abstract it means to me that I can extend
> its functionality for my own use. But this isn't given anymore if you
> declare all methods final. I think that this will lead into lots of copies
> with the name "MyAbstractIoSession", just because people wants to extend the
> AbstractIoSession functionality.
> Can someone explain me the reason of the change, because I can't see any
> (maybe I'm blind 8-) ).
> Or do you have any ideas how to solve this without writing a new
> DummySession from scratch?

The reason I changed all the methods in AbstractIoSession to be final
was because I didn't see much room for extension there.  If there's
any need for extension, I thought it's better idea to provide
additional protected abstract methods while retaining them as final.

All I/O requests to AbstractIoSession will be forwarded to an
IoProcessor.  You can set the processor of the DummySession by calling
setProcessor() and you can override flush() there

However, it's very inconvenient to implement a dummy IoProcessor
comparing to just overriding write() method.  Let me rewrite
DummySession not extending AbstractIoSession for maximum flexibility.

Thanks for the notification,
Trustin

> pps: The framework is very nice, so keep on going!

Thanks! :D
-- 
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6

Reply via email to