Hi guys, as a perfect exemple of what I wrote about interceptors, I can use the BindHandler chain to exhibit some of the problems this pattern carries.
1) Debugging nightmare : The BindHandler chain is a composition of 6 handlers. When commuting from one handler to the next one, you have to pass through 4 levels of calls into MINA (which means if you don't have the sources, your are blind). The only way to step through those handlers is to *know* which is next into the chain, and as this chain is supposed to be dynamic (at least theorically), can be more than tricky. And in this case, you will have to set 7 breakpoints... 2) If you are using Simple authentication, you must go through SASL configuration and handling. Costly ... 3) the order in which the handler are called will never change : (1) check the parameters, (2) handle the authenticator, (3) get the context (4) process to the bind operation (5) return the result. In this case, we could perectly avoid using a chaining pattern At some point, I think that we should discuss the chosen implementation and architecture before going for a complex choice, as soon as it does not freeze the developpement into a net of mails and IRC convo so tight that no code get out of this net. Don't get me wrong : I have used this BindHandler sample because it was simple enough to be used to sustain my opinion, not because the code is bad or the ideas are bad. I just think we can go for more simplicity if it helps the server to be maintanable, scalable, fast and flexible. IMHO, of course !!! -- Regards, Cordialement, Emmanuel Lécharny www.iktek.com