NOTICE! This is a static HTML version of a legacy ImageJ Trac ticket.

The ImageJ project now uses GitHub Issues for issue tracking.

Please file all new issues there.

Ticket #11 (closed feature: fixed)

Opened 2010-02-15T18:09:12-06:00

Last modified 2012-03-05T14:44:43-06:00

Improve plugins infrastructure

Reported by: curtis Owned by: curtis
Priority: critical Milestone: progress-report
Component: Plugin Framework Version:
Severity: non-issue Keywords:
Cc: Blocked By: #139, #149, #189, #207, #208, #213, #241, #287, #302, #380


The ImageJ plugin architecture is simple and effective but lacks several desirable features possible with a more sophisticated infrastructure, such as:

  • Self-documentation of a plugin's capabilities and expectations (currently limited support with PlugInFilter.DOES_* fields), including typed inputs and outputs
  • Distinction between multiple kinds of plugins (e.g., I/O vs. image processing vs. general-purpose; currently limited support in the form of PlugIn vs. PlugInFilter)
  • Ability to link plugins together to define workflows (currently done via macros)

This has been discussed in the thread " Plugin infrastructure" on the ImageJX discussion group.

As part of that discussion, Johannes Schindelin has proposed an updated plugin architecture:

We would like to more fully explore this design while maintaining support for legacy plugins. For workflows, we may wish to explore enabling technologies such as  OSGi. It may also be worthwhile to check out  KNIME for further ideas as well.

Change History

comment:1 Changed 2010-02-16T21:40:31-06:00 by curtis

Another technology to investigate is the  Java Image Science Toolkit, used by  MIPAV to provide automated GUI generation for application plug-ins, graphical layout tools, and command line interfaces. It would be very useful to share plugins between multiple systems such as ImageJ, MIPAV,  V3D, ITK/VTK and others.

comment:2 Changed 2010-03-01T17:06:25-06:00 by gharris

  • Status changed from new to accepted

comment:3 Changed 2011-02-16T13:00:09-06:00 by curtis

  • Status changed from accepted to closed
  • Resolution set to fixed

The ij-plugin project now has a fleshed-out annotated plugins design, based on initial work by Johannes Schindelin and Grant Harris. It also integrates a more general module/workflow interface hierarchy developed by Aivar Grislis. More work remains, but we have a pretty clear direction for plugins, modules and workflows now.

comment:4 Changed 2012-02-23T11:17:42-06:00 by curtis

  • Type changed from task to story

comment:5 Changed 2012-02-23T11:18:53-06:00 by curtis

  • Blocking 6 added

comment:6 Changed 2012-02-24T13:45:18-06:00 by curtis

  • Blocked By 139 added

comment:7 Changed 2012-02-24T13:46:01-06:00 by curtis

  • Blocked By 149 added

comment:8 Changed 2012-02-24T13:49:36-06:00 by curtis

  • Blocked By 189 added

comment:9 Changed 2012-02-24T13:54:10-06:00 by curtis

  • Blocked By 207 added

comment:10 Changed 2012-02-24T13:55:06-06:00 by curtis

  • Blocked By 208 added

comment:11 Changed 2012-02-24T13:59:11-06:00 by curtis

  • Blocked By 213 added

comment:12 Changed 2012-02-24T14:11:42-06:00 by curtis

  • Blocked By 241 added

comment:13 Changed 2012-02-24T15:21:28-06:00 by curtis

  • Blocked By 287 added

comment:14 Changed 2012-02-24T15:24:53-06:00 by curtis

  • Blocked By 288 added

comment:15 Changed 2012-02-24T15:45:55-06:00 by curtis

  • Blocked By 302 added

comment:16 Changed 2012-02-24T15:49:07-06:00 by curtis

  • Blocked By 339 added

comment:5 Changed 2012-02-24T16:13:15-06:00 by curtis

See also ticket #15.

comment:6 Changed 2012-02-24T16:18:47-06:00 by curtis

  • Blocked By 885 added

comment:7 Changed 2012-02-24T16:24:16-06:00 by curtis

  • Blocked By 338 added

comment:8 Changed 2012-02-24T16:52:09-06:00 by curtis

  • Blocked By 543 added

comment:9 Changed 2012-02-26T20:23:51-06:00 by curtis

  • Blocked By 380 added

comment:10 Changed 2012-02-26T20:30:34-06:00 by curtis

  • Blocked By 376 added

comment:6 Changed 2012-02-26T20:31:12-06:00 by curtis

  • Status changed from closed to reopened
  • Resolution fixed deleted
  • Milestone changed from progress-report to imagej-2.0-beta2

There are still some outstanding tickets blocking this feature from being fully completed.

comment:7 Changed 2012-02-26T20:52:34-06:00 by curtis

  • Blocked By 391 added

comment:8 Changed 2012-02-26T21:25:46-06:00 by curtis

  • Blocked By 846 added

comment:9 Changed 2012-02-26T21:29:09-06:00 by curtis

  • Blocked By 804 added

comment:10 Changed 2012-02-26T21:47:10-06:00 by curtis

  • Blocked By 838 added

comment:11 Changed 2012-02-26T21:49:51-06:00 by curtis

  • Blocked By 860 added

comment:12 Changed 2012-02-26T21:50:37-06:00 by curtis

  • Blocked By 846 removed

comment:13 Changed 2012-02-26T21:56:42-06:00 by curtis

  • Blocked By 886 added

comment:14 Changed 2012-02-27T14:04:17-06:00 by curtis

  • Blocked By 32 added

comment:15 Changed 2012-03-02T13:14:03-06:00 by curtis

  • Owner changed from gharris to curtis
  • Status changed from reopened to assigned

comment:16 Changed 2012-03-05T14:33:36-06:00 by curtis

  • Blocking 6 removed

comment:16 Changed 2012-03-05T14:38:17-06:00 by curtis

  • Milestone changed from imagej-2.0-beta2 to progress-report

comment:17 Changed 2012-03-05T14:39:08-06:00 by curtis

  • Blocked By 32 removed

comment:18 Changed 2012-03-05T14:41:36-06:00 by curtis

  • Blocked By 886 removed

comment:19 Changed 2012-03-05T14:42:59-06:00 by curtis

  • Blocked By 885 removed

comment:20 Changed 2012-03-05T14:43:25-06:00 by curtis

  • Blocked By 860 removed

comment:21 Changed 2012-03-05T14:43:41-06:00 by curtis

  • Blocked By 838 removed

comment:22 Changed 2012-03-05T14:43:57-06:00 by curtis

  • Blocked By 376 removed

comment:23 Changed 2012-03-05T14:44:13-06:00 by curtis

  • Blocked By 804 removed

comment:24 Changed 2012-03-05T14:44:29-06:00 by curtis

  • Blocked By 391 removed

comment:17 Changed 2012-03-05T14:44:43-06:00 by curtis

  • Status changed from assigned to closed
  • Resolution set to fixed

comment:18 Changed 2012-03-05T14:45:16-06:00 by curtis

  • Blocked By 288 removed

comment:19 Changed 2012-03-05T14:45:34-06:00 by curtis

  • Blocked By 338 removed

comment:20 Changed 2012-03-05T14:45:57-06:00 by curtis

  • Blocked By 339 removed

comment:21 Changed 2012-03-05T14:46:12-06:00 by curtis

  • Blocked By 543 removed