This page outlines the status of high-level feature areas to bring from Apple's Java SE 6 to the macosx-port.
A list of popular open issues is available at the JIRA bug reporter.
Features in the macosx-port src repository
Build
build using clang
build .jdk bundle (for CommandLine and embedded use only)
build embeddable .jre bundle
HotSpot
Load .jnilib (in addition to .dylib)
remove ALWAYS_PASS_TEST_GAMMA hack
register new threads as ObjC-GC capable
DTrace v2-style probes
Core Libraries
Precomposed/Decomposed File path translation
- NIO
kqueue based Selectors
WatchService implementation
Async I/O API
Proxy Server handling
Locale support
System properties fixup (vendor name, etc)
Resolve "Darwin" vs. "Mac OS X" checks
JNI interface
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
merge JDK6 CWindow -> LWCWindow changes and style flags
update CImage
Transparent window support
Headless
remove $AWT_TOOLKIT=CToolkit, switch to default
threading cleanup
Aqua LaF
Requires an image tile cache
Screen Menu Bar
Needs cleanup to use JRSMenu API
Needs refresh from Apple trunk
Fonts/Text drawing
Needs cleanup to use JRSFont API
Accessibility
Clipboard
Drag & Drop
InputMethod support
AppleScript javax.script engine
Sound
Printing
Keychain Provider
JAWT (for SWT/3D embedding)
Smartcard
Fix Kerberos code to read config info from SCDynamicStore (needed on Lion) | http://java.net/jira/browse/MACOSX_PORT-566
]
Features not yet ported from Apple's Java SE 6
Bundled app launching
JavaApplicationStub replacement
AWT Desktop API (system tray, etc)
Features not in public macosx-port ("deploy" is private to Oracle). You'll have to trust us on these – deploy is not ready to be open-sourced.
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
Non-Features
These features will not be ported to OpenJDK from the Apple Java SE 6 port
- MacRoman default encoding
- UTF-8 only, for all locales/languages
- NSView-based AWT heavyweight widgets
- LWAWT Swing-based widgets only
- NSView-based JAWT embedding
- CALayer embedding instead
- CocoaComponent
- Use CALayer-based JAWT embedding instead
- SWT Carbon EventLoop support
- No 32-bit only technologies, Cocoa only
- JNI instantiation through the JavaVM.framework
- Embed your own JRE instead
- Apple JavaApplicationStub
- Use the new JavaAppLauncher, loads an embedded .jre, JavaApplicationStub compatible
- Apple native crypto
- Use standard Java crypto
- HotSpot Shared Archive Generation
- Automatic JSA creation is of limited use until HotSpot supports class sharing in 64-bit, and in all garbage collectors
Overview
Content Tools
ThemeBuilder