Ticket #1837 (closed defect: fixed)
Opened 2013-04-23T17:49:58-05:00
Last modified 2013-05-31T16:08:42-05:00
Fix the Stable-Fiji job
Reported by: | dscho | Owned by: | dscho |
---|---|---|---|
Priority: | major | Milestone: |
|
Component: | Updater | Version: | |
Severity: | serious | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | #1901 |
Description
It only came to my attention today that the continuous Fiji releases are stale. The reason is that the Stable-Fiji job tried to use the adapter in Fiji_Updater.jar (for ease of bootstrapping) and that adapter failed to find the class ij.IJ ever since the adapter was fixed to use the correct class loader (which still finds ij.IJ in Fiji because ij.jar is on the application class path). Trying to be nice, the adapter never fails.
I fixed this by making http://update.imagej.net/bootstrap.js (which is the same as http://update.imagej.net/fix.js, passing through https://github.com/fiji/fiji/blob/master/plugins/Scripts/Plugins/Utilities/Fix_Updater.js) work via jrunscript. Called that way, it will run the command-line updater.
There is one nasty issue in that at least the Oracle JDK version used by Jenkins (1.6.0 Update 26) does not allow invoking methods obtained via reflection. That prevents us from looking up the static main method and invoking it. As a workaround, we instantiate imagej.updater.ui.CommandLine and run main on it as if it were a non-static method.
With these fixes in place, we can avoid running Fiji_Updater.jar's Adapter and hence do not run into the problem of not finding ij.IJ in the Stable-Fiji Jenkins job.