Exciting conversations this morning. ;) I also have a personal interest in a multithread safe, nonblocking, bytecode targeting DFA (and Thompson NFA?) compiler. If such a project exists or is forming I would like to become involved.
Regarding ByteBuffer, tho I am a little greener than several of you I'll offer my opinion, I favor the Sun ByteBuffer because it will be easier for me to migrate any homegrown schemes. I would go so far as to request that the MINA interfaces conform to the standard Java ones where possible, and if needed conform to JSR draft interfaces (i.e. NIO.2). I don't mean for MINA to be dependent on any JSR, but where possible to conform to the interfaces which are anticipated to be standardized and included in the JVM. With regards to mutating the mark / limit of buffers would anyone favor method invariants that can be checked in a test pipeline and not in the production pipeline? Another pattern I have used when dealing with ByteBuffers is to .slice() and then move the position ahead on the original buffer after the call (slightly slower than invariants).
