This page outlines the status of high-level feature areas to bring from Apple's Java SE 6 to the macosx-portMac OS X port of JDK 7u4.
7u4 is now complete; 7u6 is in active development in jdk7u-dev.
A list of popular open issues is available at the JIRA bug reporter.
Features in the macosx-port src repository
Build HotSpot
HotSpot
Core Libraries
Load .jnilib (in addition to .dylib) - fixed for 7u4!
JNI interface
Networking
X11
Universal binaries
JObjC
get tests passing
self-generate BridgeSupport full files
Lightweight Cocoa AWT
Cocoa key/text events
cleanup to use JRSEvent API
threading cleanup
merge JDK6 CWindow -> LWCWindow changes and style flags
update CImage
Complete AWT peers (ScrollPane, TextArea, Checkbox, etc)
Transparent window support
Headless
remove $AWT_TOOLKIT=CToolkit, switch to default
ObjC-GC threading cleanup
Aqua LaF
Requires an image tile cache
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
Robot
System properties fixup (vendor name, etc)
Resolve "Darwin" vs. "Mac OS X" checks
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]
AWT Desktop API
System Tray
JNI interface for JavaVM.frameworkFeatures not yet ported from Apple's Java SE 6
Clipboard
Printing
Proxy Server handling - get config from System Configuration framework
DTrace v2-style probes
Shared Archive Generation
Bundled app launching
Port private JUnit harness tests to jtreg 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
JavaApplicationStub replacement
Stub source now checked in. More tools for bundling an app are coming.
Stub and AWT reviewed for sandboxing
need to fix JavaSound, launcher stub, and remove dependency on X11 libfreetype.
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
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
Need to determine update mechanism (Sparkle.framework?)
JavaFx support
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- will find javaws in the deployment bundle and execute that. Requires at least 10.7.3.
Shortcut support
Java Preferences
UI cleanup: Look better on Mac OS X
Preference pane
Non-feature tasks
Merge BSDPort into mainline jdk so that Mac OS X Port can be inserted into mainline:
Move internal bugs to http://java.net/jira/browse/MACOSX_PORT
Write up development wiki pages for
Port private JUnit harness tests to jtreg
Non-Features
...
These issues features will not be ported to OpenJDK from the Apple Java SE 6 port
- Making MacRoman encoding the defaultdefault 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
- HotSpot Shared Archive Generation
- Automatic JSA creation is of limited use until HotSpot supports class sharing in 64-bit, and in all garbage collectors