Ticket #994 (closed enhancement: fixed)
Opened 2012-02-22T13:59:44-06:00
Last modified 2012-06-15T19:29:00-05:00
Combine ij-core and ij-ext
Reported by: | curtis | Owned by: | curtis |
---|---|---|---|
Priority: | critical | Milestone: |
|
Component: | Core | Version: | |
Severity: | serious | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | #1051, #1209 |
Description
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 2012-02-27T11:01:32-06:00 by curtis
- Milestone changed from imagej-2.0-beta1 to imagej-2.0-beta2
comment:2 Changed 2012-02-27T11:01:44-06:00 by curtis
Note: We are still debating whether this needs to be done at all.
comment:3 Changed 2012-03-07T12:24:06-06:00 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:8 Changed 2012-06-15T19:29:00-05:00 by curtis
- Status changed from new to closed
- Resolution set to fixed