This page outlines the status of high-level feature areas to bring from Apple's Java SE 6 to the macosx-port.
Features in the macosx-port src repository
- Build
- HotSpot
- Load .jnilib (in addition to .dylib)
- remove ALWAYS_PASS_TEST_GAMMA hack
- register new threads as ObjC-GC capable
- Core Libraries
- Investigate JDK7-specific additions to NIO
- kqueue based Selector
- WatchService implementation
- Async I/O API
- Investigate JDK7-specific additions to NIO
- Networking
- X11
- Universal binaries
- JObjC
- get tests passing
- self-generate BridgeSupport full files
- Cocoa AWT
- 2D drawing (OpenGL based)
- Cocoa key/text events
- cleanup to use JRSEvent API
- threading cleanup
- merge JDK6 CWindow -> LWCWindow changes and style flags
- update CImage
- Headless
- remove $AWT_TOOLKIT=CToolkit, switch to default
- ObjC-GC cleanup
- Aqua LaF
- Screen Menu Bar
- Needs cleanup to use JRSMenu API
- Needs refresh from Apple trunk
- Requires an image tile cache
- Screen Menu Bar
- Fonts/Text drawing
- Needs cleanup to use JRSFont API
- Clipboard
- System properties fixup (vendor name, etc)
- Resolve "Darwin" vs. "Mac OS X" checks
- JNI interface for JavaVM.framework
- DTrace v2-style probes
Features not yet ported from Apple's Java SE 6
- Printing
- Proxy Server handling
- get config from System Configuration framework
- Shared Archive Generation
- Bundled app launching
may require additions to JavaRuntimeSupport.framework
- Locale support
- Requires a single locale setter CFBundle SPI call
- Accessibility (requires 1 method)
- Drag & Drop (requires some CoreDrag methods)
- SWT/3D embedding with JAWT
- might require CALayer cross-process linking internals
Features requiring rewrite
Features needing evaluation for distribution mechanism
- Crypto/Keychain/Smartcard
Features not in public macosx-port ("deploy" is private to Oracle)
- Applets/Plugin2
- Need to create .plugin bundle
- Need to embed slimmed JRE into .plugin bundle
- Need NPAPI/Cocoa event -> Java event conversion
- Need the LWAWT to render into NSOpenGLLayer (see above)
- Need cross-process CALayer connection mechanism to be exposed
- Need to determine update mechanism (Sparkle.framework?)
- Need to create .plugin bundle
- Web Start
- Need to determine delivery vehicle (inside Applet plug-in, or some other form)
- .jnlp file ownership hand-off with Apple's "Java Web Start.app" helper?
- Java Preferences
Non-feature tasks
- Move internal bugs to http://java.net/jira/browse/MACOSX_PORT
- Write up development wiki pages for
- Quickstart
- Status
- Compiler changes/issues
- Cocoa & Java crash course
- Threading manifesto
- Memory management manifesto
- Mac OS X conceptual deviations from Java platform assumptions
- Internal "Adopt-an-app" testing workflows
- Port private JUnit harness tests to jtreg
Features not to be done
These issues will not be ported to OpenJDK from the Apple Java SE 6 port
- Making MacRoman encoding the default
- NSView-based AWT heavyweight widgets
Overview
Content Tools
ThemeBuilder