This JSR is being developed as an OpenJDK project here.
Updates to the Original Java Specification Request (JSR)
Note that the following information represents updates to the original JSR.
2006年01月30日:
The proposed specification will continue the work of defining a set of new and improved I/O APIs that was started in of JSR-51: New I/O APIs for the Java Platform. Its major components will be:
2. An API for asynchronous (as opposed to polled, non-blocking) I/O operations on both sockets and files; and
3.The completion of the socket-channel functionality defined in JSR-51, including the addition of support for binding, option configuration, and multicast datagrams.
The specification may contain additional enhancements deemed desirable by the expert group and within the scope of the containing release.
This specification is intended to become part of the Java Standard Edition, version 7 ("Dolphin").
This JSR will be delivered as part of Java SE 7 "Dolphin".
The terms will be the same as those for Java SE 7, which are broadly the same as those of Java SE 6.
Section 1. Identification
Specification Lead: Alan Bateman
E-Mail Address: alan.bateman@sun.com
Telephone Number: +353 1 819 9142
Fax Number: +353 1 819 9200
This specification is intended to become part of the Java 2 Platform, Standard Edition, version 6.0 ("Mustang").
NOTE that this information has been updated from this update.
TBD
This JSR will be delivered as part of J2SE 6.0 "Mustang".
NOTE that this information has been updated from this update.
The terms will be the same as those for J2SE 6.0, which are broadly the same as those of J2SE 1.4.
NOTE that this information has been updated from this update.
Identification |
Request |
Contributions
Section 1. Identification
Submitting Member: Sun Microsystems, Inc.
Name of Contact Person: Mark Reinhold
E-Mail Address: mr@sun.com
Telephone Number: +1 408 276 7256
Fax Number: +1 408 276 7700
Specification Lead: Mark Reinhold
E-Mail Address: mr@sun.com
Telephone Number: +1 408 276 7256
Fax Number: +1 408 276 7700
Initial Expert Group Membership:
TBD
Supporting this JSR:
Apple Computer
Doug Lea
Sun Microsystems, Inc.
Section 2: Request
The proposed specification will continue the work of defining a set of new and improved I/O APIs that was started in of JSR-51: New I/O APIs for the Java Platform. Its major components will be:
2. An API for asynchronous (as opposed to polled, non-blocking) I/O operations on both sockets and files; and
3.The completion of the socket-channel functionality defined in JSR-51, including the addition of support for binding, option configuration, and multicast datagrams.
The specification may contain additional enhancements deemed desirable by the expert group and within the scope of the containing release.
Note that this information has been updated from this original JSR.
This specification is intended to become part of the Java 2 Platform, Standard Edition, version 1.5 ("Tiger") as specified by JSR 176.
The proposed specification will satisfy several needs of the Java community:
2. The primary goal of JSR-51, the first New I/O JSR, was to provide primitives for scalable I/O so that performance-critical programs such as web and application servers could be written without having to resort to native code. The multiplexed, non-blocking facility introduced by JSR-51 solved much of that problem for network sockets, but it did not do so for filesystem operations. It has, moreover, recently become apparent that the next generation of high-performance network controllers and operating-system I/O interfaces may be better served by an asynchronous rather than a multiplexed API.
3. Since the completion of JSR-51 and the release of J2SE 1.4, its reference implementation, developers have noted the clumsiness of the current relationship between java.nio.channels socket channels and java.net sockets, the latter still being required for socket-specific operations such as binding and configuration. Developers have also asked about the lack of support in the java.nio.channels package for multicast datagrams.
Much of the functionality required to meet the above needs is simply not present in the latest version of J2SE. Currently developers must write significant amounts of platform-dependent code, some of it native, in order access such functionality in the underlying operating system.
All three of the proposed components will rely heavily upon services provided by the underlying operating system and hardware platform, so some native code will be required. As in JSR-51, we hope to keep the amount of native code required to a minimum.
Aside from these components, we expect the bulk of an implementation will be pure Java code. Some of this code will of necessity be platform-specific, but most of it will be completely portable.
JSR-51 defined the new package java.nio, the subpackages java.nio.channels and java.nio.charset, and two related service-provider (.spi) subpackages. We envision creating one more new subpackage for the filesystem interface along with a corresponding service-provider subpackage; we expect the remainder of this work to fit naturally into the existing java.nio packages.
The design of the new APIs will be influenced heavily by the capabilities of the native APIs of a wide variety of systems. The resulting APIs are, however, intended to be completely platform independent.
No. Some new permissions will likely be defined, but the current security model is more than adequate.
The new filesystem interface will need to take special care to ensure that file names encoded in arbitrary character sets can be handled. We otherwise forsee no significant internationalization or localization issues.
We do not propose to deprecate the current java.io.File class, but we do hope that most developers will eventually migrate to the new filesystem interface.
Note that this information has been updated from this original JSR.
July 2003 -- Community Review
October 2003 -- Public Review
January 2004 -- Proposed Final Draft
The final release of this specification will be coincident with that of the containing J2SE 1.5 "Tiger" release.
We anticipate working primarily via e-mail. This worked well for the JSR-51 Expert Group.
Note that this information has been updated from this original JSR.
This JSR will be delivered as part of J2SE 1.5 "Tiger".
N/A
Note that this information has been updated from this original JSR.
The terms will be the same as those for J2SE 1.5, which are broadly the same as those of J2SE 1.4.
Section 3: Contributions
The JSR-51 (New I/O) Specification, which is part of the J2SE 1.4 platform specification.
As mentioned above, the APIs proposed here are expected to fit into the overall conceptual framework defined by JSR-51.