Module exports for java.base: NIO stuff

Alan Bateman Alan.Bateman at oracle.com
Mon Dec 12 07:11:40 UTC 2016


On 11/12/2016 22:38, David M. Lloyd wrote:

>
> I'm not implementing SelectorProvider, I just want access to all the 
> possible implementations that are available in the current JDK so we 
> can select among them on a case-by-case basis.
>
>> Are you attempting
>> to wrap the default implementation - I ask because there isn't anything
>> in the service type (SelectorProvider in this example) that is useful
>> for doing selection.
>
> Except for the name of the class, which is what we select by today.
At least in JDK 9 then the only platform in OpenJDK (or Oracle JDK 
builds) where there is more than one implementation is Solaris (it has a 
/dev/poll and Solaris I/O ports based implementations). Maybe XNIO wants 
to use the legacy poll based Selector on Mondays? It will be out of luck 
in JDK 9 as that implementation is excluded by the build (it wasn't 
deleted because some people wanted to keep it around for bootstrapping 
new ports). So I will guess that SelectorProvider::provider gets you 
most of the way. Maybe this request is rooted in the proposal to add a 
poll method to SocketChannel that didn't come to a timely conclusion?

In any case, what you are asking for would require a spec update. 
Specifically SelectorProvider::provider would need to specify that it 
ignores "built-in" implementations that are located via ServiceLoader. 
It would need an implementation changes too. Nothing too difficult of 
course but it just not something that has ever come up before (at least 
to my knowledge).

-Alan


More information about the jigsaw-dev mailing list