Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

This page outlines the status of high-level feature areas to bring from Apple's Java SE 6 to the Mac 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

Done

  • (tick) HotSpot
  • (tick) Core Libraries
  • (tick) Networking
  • (tick) X11
  • (tick) Universal binaries
  • (tick) builds as .jdk bundle

Partially done - on private branch

  • (warning) Aqua LaF
    • (error) Needs refresh from Apple TOT
    • (error) Requires an image tile cache
  • (warning) Fonts/Text drawing
    • (error) Done, just needs to be ported onto trunk
  • (warning) AToolkit
    • (warning) Cocoa mouse events
  • (warning)

    Partially Done - on private branch, requires additions to JavaRuntimeSupport.framework

    • (warning) Cocoa key/text events
      • (error) Requires several InputMethod internal bits
    • (warning) Screen Menu Bar
      • (error) Currently using Carbon menu handlers in 64-bit

    Not Done - but straightforward port

    • (error) Clipboard
    • (error) Printing
    • (error) Proxy Server handling - get config from System Configuration framework
    • (error) System properties fixup (vendor name, etc)
    • (error) DTrace
    • (error) Shared Archive Generation
    • (error) JNI interface for JavaVM.framework
    • (error) Bundled app launching
    • (error) JObjC

    Not Done - requires additions to JavaRuntimeSupport.framework, but easy

    • (error) Locale support
      • (error) Requires a single locale setter CFBundle SPI call
    • (error) Accessibility
      • (error) Requires 1 method
    • (error) Drag & Drop
      • (error) Requires some CoreDrag methods
    • (error) SWT/3D embedding
      • (error) probably requires CALayer cross-process linking internals

    Not Done - requires partial rewrite

    Not Scoped ("deploy" is not part of public JDK7)

    • (error) Applets/Plugin2
    • (error) Web Start
    • (error) Java Preferences

    Need Evaluation for distribution mechanism

    Features not yet ported from Apple's Java SE 6

    • (warning) Bundled app launching
      • (tick)  JavaApplicationStub replacement
        • (tick)  Stub source now checked in. More tools for bundling an app are coming.
        • (tick)  Stub and AWT reviewed for sandboxing
          • (warning)  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.

    • (tick) Applets/Plugin2
      • (tick) Need to create .plugin bundle
        • (tick) Need to embed slimmed JRE into .plugin bundle
      • (tick)  Need NPAPI/Cocoa event -> Java event conversion
      • (tick) Need the LWAWT to render into NSOpenGLLayer (see above)
        • (tick) Need cross-process CALayer connection mechanism to be exposed
      • (tick)  Need to determine update mechanism (Sparkle.framework?)
      • (warning)  JavaFx support
    • (tick) Web Start
      • (tick) Need to determine delivery vehicle (inside Applet plug-in, or some other form) – Java Web Start.app will find javaws in the deployment bundle and execute that. Requires at least 10.7.3.
      • (warning)  Shortcut support
    • (warning)  Java Preferences 
      • (error)  UI cleanup: Look better on Mac OS X
      • (tick)   Preference pane

    Non-feature tasks

    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
    Info
    iconfalse
    titleStatus icon meanings

    (tick) Done
    (warning) In progress
    (error) Not done
    (question) Unknown

    ...