Hi Marshall--

To support something like this, I'm thinking it would require that during
initialization of the pipeline, UIMA would need to "install" the PEAR in some temporary location somewhere, and then use that installation. (The installation
is needed because of the possibility that there are resources that are
referenced by strings in the PEAR configuration, which need to be resolved
relative to where the PEAR was installed.)

Is this what you have in mind? Though, typically, this is not something you'd
want to do every time a pipeline was run, I think.

Well, I'm not sure if that would be a solution or not. I'll have to investigate.

What I want may simply be outside the design target of PEAR files. My expectations of PEAR files were based on how other archive formats in Java work. JAR files, WAR files, etc. These can all be use in-place, without any re-writing of their contents. You can just refer to them, and the system can locate the things in them at run-time through relative paths, regardless of what directory they've been dropped into. In other words, there's no installation process for JAR files or WAR files.

PEAR files break my expectations. The installation process un-archives the PEAR file and re-writes some of its contents, such that it is then bound to the directory that it's been dropped into. I can't be moved or used on a different machine without re-writing some contents again. I find this surprising and inconsistent with Java conventions.

I was hoping for a system in which all references made within the PEAR file (i.e. in the descriptor files) are relative or by name, and then the system can resolve everything at run-time, without having to un-zip them or modify them. Intuitively, it seems like that should be possible by managing the classpath and datapath, but I don't know enough about PEAR files to say for sure.

Do you think it would be fruitful for me to pursue a path of enhancing the PEAR system to do that (avoid the installation process, provide 100% run-time resolution), or is that just so counter to the design of PEAR files that I would be wasting my time?

If I can't achieve this zero-install goal with PEAR files, could I achieve it with OSGi?

Thanks for any advice you can offer,

Greg


Reply via email to