Thanks in advance for your time and help.
1) I'm trying to use an external resource in a UIMA AS PEAR. During the PEAR's
installation using the runPearInstaller.sh, it seems to find the file just
fine. However, when I deploy the PEAR, the resource is not created. When I
print out the the absolute file path, I get null. Here is the external
resources part of my descriptor:
<externalResourceDependencies>
<externalResourceDependency>
<key>ValidIds</key>
<description />
<interfaceName>uima.resources.implementations.StringMapResource_Impl</interfaceName>
<optional>false</optional>
</externalResourceDependency>
</externalResourceDependencies>
<resourceManagerConfiguration>
<externalResources>
<externalResource>
<name>ValidIdsFile</name>
<description />
<fileResourceSpecifier>
<fileUrl>file:uima/resources/file/validIds</fileUrl>
</fileResourceSpecifier>
<implementationName>uima.resources.implementations.StringMapResource_Impl</implementationName>
</externalResource>
</externalResources>
<externalResourceBindings>
<externalResourceBinding>
<key>ValidIds</key>
<resourceName>ValidIdsFile</resourceName>
</externalResourceBinding>
</externalResourceBindings>
</resourceManagerConfiguration>
The I am using a typical spring project layout, so the resources go in
src/main/resources. When compiled, anything in the resources file is copied to
the bin directory. Relative src/main/resources, the file is at:
uima/resources/file/validIds
I've checked the PEAR and the resource is at the expected location:
bin/uima/resources/file/validIds
Additionally, after installation, the PATH environment variable is set to the
bin directory in the setenv file under metadata. In the annotator, in the
initialize() method, I am getting the annotator like so:
public static final String exResourceGridZoes = "ValidIds";
map = (StringMapResource)
aContext.getConfigParameterValue(exResourceGridZoes);
if(map == null) {
try {
getContext().getLogger().log(Level.INFO,
"RegularExpressionAnnotator: resource" +
" file not found." +
getContext().getResourceFilePath(exResourceGridZoes));
} catch (ResourceAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
The getContext().getResourceFilePath(exResourceGridZoes)) is returning a null,
and I'm not sure why. Only thing I can think of is that it can't find the
resource "ValidIds", but I don't know why.
2) What's the best way to share TypeSystemDescriptor files. Right now, I'm
just copying them into any annotators that need them. Is there a way to have
the analysisEngineDescriptor read them from a jar?