dev@grizzly.java.net

[HEADS UP] [PLEASE REVIEW] AIO added to the trunk, what has changed

From: Jeanfrancois Arcand <Jeanfrancois.Arcand_at_Sun.COM>
Date: Tue, 07 Oct 2008 21:20:48 -0400

Salut,

I've merged the 1_9_0_AIO to the trunk. By default, NIO.2 modules aren't
build as I don't want anybody to run JDK 7 as default. To build them,
you must do:

% cd trunk
% mvn -f pom-jdk7.xml

First, before looking at the code, here is the goal I was trying to archive:

+ NO users API changes
+ No JDK 7 required
+ Only support TCP on the server side for *now*. TCP client is coming.

What was impossible to achieve was:

+ Switching AIO and NIO under the hood, without impacting normal
application. That would have been fun, but that would have required JDK
7 as the default for building, which I'm totally against of.

+ Hence we have a new set of classes to use with AIO, all having the AIO
in their name.

What I needed to changes in order to add support for NIO.2:

+ [Major] Context.java
   The Context class is now an interface, having two children:
NIOContext and AIOContext. For the normal NIO.1 users it shouldn't make
any difference. Please let me know if I've missed something. All NIO.1
classes that were creating Context have now switched to NIOContext. Note
that I might have hides some Context API that are now under NIOContext.
Please file issues as I don't want any regressions.

+ [Minor] Controller.java
   Changed scope of some method to be able to extends it with AIOController.

+ [Minor] TCPSelectorThread.java
   Changed Context to NIOContext.

Thanks!

-- Jeanfrancois