Project Proposal: Device I/O
bob.vandette at oracle.com
Thu Apr 10 14:10:44 UTC 2014
On Apr 10, 2014, at 8:46 AM, Paul Sandoz <paul.sandoz at oracle.com> wrote:
> On Apr 10, 2014, at 2:21 PM, Alan Bateman <Alan.Bateman at oracle.com> wrote:
>> On 08/04/2014 22:31, Bob Vandette wrote:
>>> I'd like to discuss the creation of the Device I/O Project with myself (Bob Vandette) as the Lead and the Core Libraries Group as the sponsoring group.
>>> The Device I/O Project would implement a generic device peripheral access API for Java applications running on embedded devices, providing APIs for common peripheral devices currently found in in embedded platforms such as GPIO, I2C, SPI, UART, USB and others.
>>> Currently, developers are forced into writing JNI code in order to access these elements. We intend to provide a Java level API for developers to use instead and to keep the public API consistent across Java SE and Java ME, although the open project will initially only support Java SE.
>> This seems a very worthy project and good to see that it might be proposed to do in OpenJDK. This may be a case where the FFI proposed in JEP 191 might be useful.
> Yes, plus see also the proposal for Project Panama.
These are both very beneficial enhancements to the Java platform that the Device I/O APIs could take advantage
over time. However, we are hoping that an initial implementation can be created to target existing Java runtimes. At
a minimum, we hope to support Java SE 8 and compact profiles but running on Java SE 7 should also be
We are planning on providing a pluggable driver interface that can allow developers to adapt these APIs to different
underlying operating systems and hardware OS driver interfaces. Although I imagine that Panama and it's use of FFI
are more applicable to creating native implementations where no Java API exists, but these DIO drivers we're implementing
will be able to take advantage of these new JDK 9 capabilities in order to provide a cleaner and more readable implementation.
>> The Bylaws require that it be supported by at least one Group Lead so I would like to offer support for this project with the Core Libraries group as spsonor.
More information about the discuss