• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Page Information

    Loading...
  1. Dashboard
  2. Undefined Space
  3. Port: MacOSX
  4. Mac OS X Port Project Status

Mac OS X Port Project Status

  • Created by Mike Swingler, last modified by Brian Beck on Jan 18, 2013

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

  • (tick) Build
    • (warning) build using clang
    • (tick) build .jdk bundle (for CommandLine and embedded use only)
    • (tick) build embeddable .jre bundle
      • (tick)  build JavaAppLauncher stub
  • (tick) HotSpot
    • (warning) remove ALWAYS_PASS_TEST_GAMMA hack
    • (tick) register new threads as ObjC-GC capable
    • (tick) DTrace v2-style probes
  • (tick) Core Libraries
    • (tick)  Load .jnilib (in addition to .dylib) - fixed for 7u4!
    • (tick) Precomposed/Decomposed File path translation
    • NIO
      • (tick) kqueue based Selectors
      • (warning)  WatchService implementation (kqueue-based)
      • (tick)  WatchService implementation (polling-based)
      • (tick)Async I/O API
    • (tick)Proxy Server handling
    • (tick) Locale support
    • (tick) System properties fixup (vendor name, etc)
      • (tick) Resolve "Darwin" vs. "Mac OS X" checks
  • (tick) JNI interface
  • (tick) Networking
  • (tick) X11
  • (tick) Universal binaries
  • (tick) JObjC
    • (warning) get tests passing
    • (tick) self-generate BridgeSupport full files
  • (warning) Cocoa AWT
    • (tick) 2D drawing (OpenGL based)
      • (tick) OpenGL layer needs to be vended from an NSOpenGLLayer (10.6+)
    • (tick) Cocoa key/text events
      • (tick) cleanup to use JRSEvent API
    • (tick) merge JDK6 CWindow -> LWCWindow changes and style flags
    • (tick) update CImage
    • (tick) Transparent window support
    • (tick) Headless
    • (tick) remove $AWT_TOOLKIT=CToolkit, switch to default
    • (warning) threading cleanup
  • (tick) Aqua LaF
    • (tick) Requires an image tile cache
    • (tick) Screen Menu Bar
      • (tick) Needs cleanup to use JRSMenu API
    • (tick) Needs refresh from Apple trunk
  • (tick) Fonts/Text drawing
    • (tick) Needs cleanup to use JRSFont API
  • (tick) Accessibility
  • (tick) Clipboard
  • (tick) Drag & Drop
  • (tick) InputMethod support
  • (tick) AppleScript javax.script engine
  • (tick) Sound
  • (tick) Printing
  • (tick) Keychain Provider
  • (tick) JAWT (for SWT/3D embedding)
  • (tick) Smartcard
  • (tick) Fix Kerberos code to read config info from SCDynamicStore (needed on Lion) | http://java.net/jira/browse/MACOSX_PORT-566]
  • (tick) AWT Desktop API
  • (tick) System Tray

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

  • (warning) Merge BSDPort into mainline jdk so that Mac OS X Port can be inserted into mainline:
    • (warning) Merge BSDPort hotspot, patch and description at: BSDPort, Description of jdk7 changes
  • (warning) Move internal bugs to http://java.net/jira/browse/MACOSX_PORT
  • (warning) Write up development wiki pages for
    • (tick) Quickstart
    • (tick) Status
    • (tick) Compiler changes/issues
    • (tick) Cocoa & Java crash course
    • (tick) Threading manifesto
    • (tick) Memory management manifesto
    • (error) AppKit Threading & Cocoa Memory Management best practices examples
    • (error) Internal "Adopt-an-app" testing workflows
  • (warning) Port private JUnit harness tests to jtreg
    • Detailed status

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

Status icon meanings

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

Overview
Content Tools
ThemeBuilder
  • No labels

Terms of Use
• License: GPLv2
• Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to https://www.atlassian.com/software/views/opensource-community-additional-license-offer. Evaluate Confluence today.

  • Kolekti ThemeBuilder Powered by Atlassian Confluence 8.5.21
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 300, "requestCorrelationId": "501ce5e19010dae3"}