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
- NIO
- kqueue based Selectors
- WatchService implementation
- Async I/O API
- 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
- Fonts/Text drawing** Needs cleanup to use JRSFont API
- Accessibility
- Clipboard
- Drag & Drop (requires some CoreDrag methods)
- InputMethod support
- System properties fixup (vendor name, etc)
- Resolve "Darwin" vs. "Mac OS X" checks
- JNI interface for JavaVM.framework
- DTrace v2-style probes
- AppleScript javax.script engine
- Sound
Features not yet ported from Apple's Java SE 6
- Printing
- Bundled app launching
- Proxy Server handling** get config from System Configuration framework
- Locale support** Requires a single locale setter CFBundle SPI call
- HotSpot Shared Archive Generation
may require additions to JavaRuntimeSupport.framework
- JAWT (for SWT/3D embedding)** might require CALayer cross-process linking internals
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?)
-
- Web Start** Need to determine delivery vehicle (inside Applet plug-in, or some other form)
- Java Preferences
Non-feature tasks
- Merge BSDPort into mainline jdk so that Mac OS X Port can be inserted into mainline:
- Merge BSDPort hotspot, patch and description at: BSDPort, Description of jdk7 changes
- 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
- AppKit Threading & Cocoa Memory Management best practices examples
- Internal "Adopt-an-app" testing workflows
- Port private JUnit harness tests to jtreg** Detailed status
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