Ticket #994 (closed enhancement: fixed)

Opened 8 years ago

Last modified 8 years ago

Combine ij-core and ij-ext

Reported by: curtis Owned by: curtis
Priority: critical Milestone: imagej2-b3-headless
Component: Core Version:
Severity: serious Keywords:
Cc: Blocked By:
Blocking: #1051, #1209


Keeping the service mechanism in ij-core separate from the extensibility framework in ij-ext makes sense in theory, but it creates an extra module that adds a slight complexity overhead.

The great majority of the time, third party code will depend on both of these modules—that is, it is quite rare to need ij-core but not ij-ext, since most third party code is in plugin form and will need access to the @Plugin annotation and hierarchy of plugin interfaces. (The only exception in core is ij-platform, which does not require ij-ext; and in ui, the only exceptions are ij-app, platform-macosx and platform-windows, and ij-util-awt.)

The only downside I see to the merger is that any components that *do* only require ij-core, but not ij-ext, will have the total size of their dependencies grow by ~150KB. Not too bad though.

Change History

comment:1 Changed 8 years ago by curtis

  • Milestone changed from imagej-2.0-beta1 to imagej-2.0-beta2

comment:2 Changed 8 years ago by curtis

Note: We are still debating whether this needs to be done at all.

comment:3 Changed 8 years ago by curtis

As of b65ead59d37dc4aa9e10b1be20a541a23f29ea1b, the ij-platform and platform-macosx projects now depend on ij-ext, since on Mac OS X we need access to the PluginService to remove some plugins from the main menu bar. So that leaves only ij-app, platform-windows and ij-util-awt as exceptions. Combining ij-core and ij-ext is looking more and more sensical!

comment:4 Changed 8 years ago by curtis

  • Blocking 1051 added

comment:5 Changed 8 years ago by curtis

  • Priority changed from major to critical

comment:6 Changed 8 years ago by curtis

  • Blocking 1209 added

comment:7 Changed 8 years ago by curtis

Fixed in 0e21115f.

comment:8 Changed 8 years ago by curtis

  • Status changed from new to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.