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

Reply via email to