AbstractModuleInfo: add missing final keyword
AbstractModuleInfo: parse parameters lazily

This change does two interrelated things:

1) It tightens the modifier of the primary parameter data structures
   (inputMap, inputList, outputMap and outputList) to private from
   protected. It adds new accessors: inputMap(), inputList(),
   outputMap() and outputList(), respectively.

   Rationale: protected fields are directly accessible in subclasses
   with no way to modify runtime behavior. In contrast, using protected
   methods to access internal data structures allows subclasses to
   override behavior by overriding those methods.

2) It initializes those data structures lazily (i.e., only when they
   are first accessed via their accessor methods) -- something which
   was impossible when the fields themselves were exposed due to the
   protected keyword.
ScriptInfo: remove checked exceptions

This change is in preparation for unifying ScriptInfo's parameter
parsing with AbstractModuleInfo's lazy initialization mechanism.
ScriptInfo: tweak style
ScriptInfo: tweak how reader field is managed
fixup! ScriptInfo: tweak style
ScriptInfo: parse script parameters lazily

This change adds a simple callback method in the abstract layer which
concrete subclasses can override to define how parameters are parsed
upon first access.

This lazy parsing reduces the startup time of ImageJ by allowing scripts
to appear in the menu structure without needing to be parsed first.

For now, we keep ScriptInfo's parseParameters() method at public
visibility, since it is nice to be able to reparse parameters in case
the script changed.
Merge branch 'lazy-script-params'

This branch makes scripts initialize their parameters lazily, similar to
how commands do. Such lazy parsing reduces the startup time of ImageJ by
allowing scripts to appear in the menu structure without needing to be
parsed first.
Revert "ScriptInfo: tweak how reader field is managed"

This reverts commit 09d2e40225d37cc1c21d0707c65ba931a4c012bc.

This change introduced a critical bug in script execution.
Fix bugs in script execution and parameter parsing

The topic branch 'lazy-script-params' was not fully ready to be merged.
This commit fixes problems introduced by that unfinished work.
CommandInfo: add TODO note
CommandInfo: make lazy init thread-safe
OverlayHarmonizerTest: fix javadoc
Fix UpdaterTestUtils#show()

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Check consistency even when uploading via the command line

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
FilesCollection#checkConsistency: be nice when uploading

We should only check the files of the site to upload to. Other
sites might have inconsistencies, but we cannot do anything about it
right now.

Reported by Luke Stuyvenberg.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add a unit test for uploading with inconsistent 3rd-party sites

When uploading to site A, there is little point in verifying the
consistency of site B because we cannot do anything about B right now.

Verify that the user is not bugged by the updater in this situation.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge pull request #14 from imagej/cmdline-upload

Fix circular dependency problem with command line uploader
Uploader: really restrict circular dependencies check to current site

When checking for circular dependencies, there was a way for circles in
dependencies outside this update site's purview to result in an error.

Therefore, let's really stop when we encounter a dependency that is not
on the current update site.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Fix compiler warning

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>