Hi guys,

so this is a new week, and it was a busy week on MINA 3 last week. I'd like to sum up some of the ongoing work we have done so far, and things we have discussed on the mailing list or off list. Note that it reflects my vision, so feel free to correct me if I have made any mistake, or if I forgot anything.

SSL :
Handshake is now working. Data decryption is done, remains to plug the data encryption. This is for the server side. The SSL support on the client side still remains to be coded. We also have to handle many options, like authentication through certificates. Buffer manipulations should be improved. SSL configuration should also be exposed. Overall, it's probably a matter of two more weeks to have a complete SSL layer, but the basic SSL handling will be ready before.

Session Attributes :
We will probably fall back to the proposal done by Christian Schwarz, ie using some typesafe Attributes (https://issues.apache.org/jira/browse/DIRMINA-874). There are too many little issues with the other proposed solutions.

Read/Write handling :
Thanks to ChadBeaulac, we have now a much better solution to handle reads and writes. There is still some room for improvement, but it's way better than it was. We still have to make the buffer size configurable (right now, we are using a 1Ko buffer for reads, but we will switch to a 64Ko buffer, and expose a way to configure this size).

Executor :
We still have to discuss this aspect. Basically, I don't think that we should include an executor into the chain. We should rather make the handler responsible for this aspect. Exposing two kind of handler -one using the selector thread, and another including an executor - is probably better. Still to be discussed.

Zero-copy handling :
At some point, we'd like to support the transferFrom/transferTo methods. That means we may augment the chain API by adding two new events to complete the write() and messageReceived() events.

Client implementation :
Right now, we have focused on having the base mechanism working for a simple TCP server. This is a good start, but we also need to implement the Client side. This is most certainly what we will work on as soon are we are pleased with the Server side.

UDP support :
Once the TCP client and server will be ready, we will switch to UDP. That will also include multicast support.

Multicast support and JDK version :
It's not sure we will support multicast for Java 6 and previous versions. Sadly, JDK 7 is arriving way too late and we will have to support Java 6 for years. It makes no sense to just tell our users to stop using Java 6, IMO. However, we have to discuss this aspect.

JDK version support :
MINA 2 supports Java 5 and further. The question should be raised about MINA 3 and Java 5 : should we continue to be Java 5 compliant, when this version has been EOLed last year ?

NIO 2 :
Not so much discussion about the support of this new API. I'm not sure it brings a lot of new additions, and we still have to figure out how we can support it without having to expose two versions of MINA

APR and Serial support :
Still to discuss if we should support both.

BIO :
That would be a good thing in MINA 3 could be used as a Blocking IO framework too. Still to see if it's possible, and to what extend. May be it's just a wet dream...

Administration :
MBean to the rescue... We need to think about it, seriously.

Protocol codecs :
It would be good if we could offer codecs for various existing protocols, instead of requesting users to develop them. Still to be discussed.

Doco and site :
Clearly a lot of things to do here. The site is, hmm, ok, not perfect, and the doco is totally inconsistent. We *must* provide a better documentation. We think that instead of using Confluence to write the documentation, we should switch to a file based documentation. We have done some experimentation on some other projects

Javadoc and Unit tests :
Same here : lots to do, but definitively mandatory. The Javadoc in MINA 3 is not bad, but need some cleanup. Unit tests, that's clearly an area we should spend some time.

That's a lot on our plate, but if you feel like you can bring some value here, feel free to join us !


--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to