Andrew John Hughes wrote:
2009/5/20 Kurt Miller <kurt@intricatesoftware.com>:
I completed updating bsd-port to b58 locally and will be pushing it up to the repository soon. There are some things to be aware of with this update. There are new nio classes and packages as well as sctp support in jdk7 now. For more details see:
http://www.openjdk.org/projects/nio/ http://www.openjdk.org/projects/sctp/
I did not integrate the new java.nio.sctp package. There is no SCTP support in OpenBSD or FreeBSD 6.x (not sure about NetBSD or OS X). I removed nio subdir from jdk/make/com/sun/Makefile so the java.nio.sctp package package is completely skipped.
There is a new nio class:
java.nio.channels.spi.AsynchronousChannelProvider
I did not provide a BSD implementation since the Solaris, Linux or Windows implementations all use features not present on BSD (/dev/poll, epoll, and iocp). Attempting to use this class will result in an "platform not recognized" exception until a BSD version is implemented (preferably kqueue based).
There is a new nio package: java.nio.fs. I provided partial/incomplete implementation for the BsdFileSystem and BsdFileStore classes. Basically I implemented enough so that bsd-port can bootstrap itself on *BSD. However, OS X needs an alternate implementation of BsdFileSystem.getMountEntries() since OS X doesn't use /etc/fstab like the BSD's do. Without an OS X getMountEntries() implementation bsd-port can't be used to bootstrap itself on OS X, but it should still build.
The BSD's and OS X currently don't have openat, fstatat, unlinkat, renameat, futimesat, fdopendir or getextmntent which are needed for full java.nio.fs support. See:
jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c
I wrote an alternate implementation for getextmntent() that works on *BSD but not on OS X. We need alternate implementations for the rest. Expect java.nio.fs classes to have problems until we have alternate implementations for those functions.
In short, expect bsd-port to have some deficiencies until project members or the community provide implementations for the missing parts. If you have the interest and capability this is an excellent time to contribute to bsd-port.
Regards, -Kurt
Good news! BTW, there is now a b59 with a few minor fixes, so probably worth pulling that in too. There'll not be much until after JavaOne so now is a good time to play catch up ;)
Thanks. :-) b59 came out in the middle of this update so I held off. b58 -> b59 should not be as much work as b50 -> b58 was (I hope!). Regards, -Kurt