After looking at the code, I have the following comments:
the PackageInstaller code looks fine, except for one, but important thing -
the uima.home directory is not set in the InstallationController before the
verification is done. Instead, the verification code in the
InstallationController is modified to use 'java.class.path' JVM property as
the UIMA CLASSPATH. I don't believe, this code will work in  applications,
where people just need to install/verify PEAR packages. The verification
process usually requires most of UIMA JARs to be in the CLASSPATH,
while applications, like PEAR Installer GUI, do not need most of the them.
My recommendation is to add 'uimaHome' parameter to the
PackageInstaller.installPackage method, or to intsruct application
developers setting uima.home in their JVM properties. I also recommend
rolling back modifications of the InstallationController class. As an
alternative, we can check in the verification code of the
InstallationController class if the uima.home is set, and use
java.class.path, only if it is not set. This way we, at least, make
sure that existing applications, like PEAR Installer GUI, will still be able
to verify installed PEARs.


I agree it seems sensible to have a way for the user to optionally
specify a different classpath for finding the UIMA jars, and only fall
back on java.class.path if it is not set.

However I do think for most users java.class.path will probably work.
The classpath will have to contain uima-core.jar in order for the user
to be invoking these APIs, and that should be enough for most
annotators or analysis engines to run.

-Adam

Reply via email to