I agree with some points Emmanuel made, but it doesn't mean that I totally agree with him for all points he made such as versioning, similarity between LDAP and HTTP, and HTTP-ish codec.
However, I don't want to drag this thread spending each other's energy unnecessarily replying to every sentence. What we really want to see is the best scalable directory layout that will last for another century. So, let me try again to restructure the directory layout from most reasonable and orthogonal point of view. ;) What a usual protocol codec (including HTTP codec) currently depends on is: * MINA IoBuffer * MINA IoSession (to access properties, not to perform a real I/O operation) * MINA codec infra IIRC, we discussed about providing a separate artifact for buffer utilities and codec infrastructure, but users didn't like to have extra JARs in their classpath. From this point of view, MINA is actually a mix of codec infra and network framework. So... we have two different things in one core, and that's the root cause of all these problems. Therefore, it seems like there's some chasm between what's most reasonable and what users feel most comfortable with. I'm not sure what will be the best choice for us. Anyways, the most reasonable layout will look like this then: / - core - codec-framework (name tbd, IoBuffer + existing codec infra) - mina (pure network framework, shall we rename? :) - codec - HTTP codec (all depends on codec-framework only) - FTP codec - SMTP codec - frontend - ahc (name tbd, my preference - Superluminal) - ftpserver (name tbd if Niklas wants something cool :D) - asyncweb (if Alex wants to work on it) It's somewhat complicated, but it's most scalable layout IMHO. Does it look much better guys? If everyone is fine with this big refactoring, I am ready to make it happen by myself, and I want to make it happen before we release 2.0.0-M1. If you think it's a nice layout, please allow me to give my favorite name to the codec framework. ;) Cheers, Trustin PS: BTW, should we rename IoBuffer again? I'd like to avoid that even if we are going to create a separate subproject for implementing a protocol codec. -- what we call human nature is actually human habit -- http://gleamynode.net/ -- PGP Key ID: 0x0255ECA6