[ImageJ-devel] MacOSX platform service issues

Johannes Schindelin schindelin at wisc.edu
Sun Jul 21 21:41:21 CDT 2013


Hi Barry,

thanks for bringing the issue to my attention that my recent fix for Fiji
(which now relies on ij-legacy to do the legacy patching in the hope that
we can stabilize the code better that has been moved from fiji-compat to
reconcile the Fiji and ImageJ2 legacy patches) broke the MacOSX-specific
platform service startup.

The issue is that when dropping a file (in particular, an image file) onto
the Fiji (or for that matter, ImageJ) icon, contrary to widespread belief,
MacOSX does *not* pass the path of said file to the program to-be-started
via the command-line. Instead, it sends a platform-specific message that
applications are expected to consume in a special, MacOSX-specific
handler.

You could call that a Cupertino time tax.

Now, ImageJ 1.x solves this by adding an ApplicationListener. It has to --
despite fact that the ApplicationListener is deprecated in very recent
MacOSX versions -- to maintain backwards-compatibility with the last
MacOSX versions supporting PowerPC-based computers.

ImageJ2, in contrast, targets MacOSX 10.6 or newer, so it uses the new
method -- which astonishingly does not allow adding ApplicationListeners,
hence the problem you observed where the MacAdapter of ImageJ 1.x
registering itself prevents ImageJ2 from starting up.

The topic branch I started is designed to help the issue for 10.6 and
newer by having a custom solution for the legacy mode: it registers an
event listener and reacts upon the -- now platform-independent -- events.

The only thing I need to change on that branch is to ensure that the
MacOSX-specific part of the platform service starts up correctly and
handles the MacOSX-specific event handling, delegating to the
platform-independent event service of ImageJ2.

After that, I still have to ascertain that things work correctly with
MacOSX 10.5, the oldest MacOSX version I care to support with Fiji (10.4
is too old because Apple limited the Java versions available for that
MacOSX version to Java 1.4 -- which is really, really too limiting, not to
mention old and slow).

In essence: I ask you to have a little more patience while I work out a
fix.

Ciao,
Johannes



More information about the ImageJ-devel mailing list