Hello,
I come back with a problem I have to run a CPM programmatically.
This is what I did :
I am based on the uima default FileSystemCollectionReader descriptor that I
call using
ResourceSpecifier colReaderSpecifier =
UIMAFramework.getXMLParser().parseCollectionReaderDescription(new
XMLInputSource("desc/FileSystemCollectionReader.xml"));
CollectionReader collectionReader =
UIMAFramework.produceCollectionReader(colReaderSpecifier);
Then I developed 4 analysis engines that I call like this
((BaseCPMImpl) mCPM).addCasProcessor(ae1);
((BaseCPMImpl) mCPM).addCasProcessor(ae2);
((BaseCPMImpl) mCPM).addCasProcessor(ae3);
((BaseCPMImpl) mCPM).addCasProcessor(ae4);
the problem is that I want to give the user the option to tell the
collection reader the folder he want to use containing the documents to be
analyzed so i used this method after producing the collection reader
ConfigurationParameterSettings settings =
collectionReader.getMetaData().getConfigurationParameterSettings();
org.apache.uima.resource.metadata.NameValuePair[] valuePairs =
settings.getParameterSettings();
for (org.apache.uima.resource.metadata.NameValuePair nvp : valuePairs)
{
// TODO: customize settings and save changes back using this crappy
CPE API
if(nvp.getName().matches("InputDirectory"))nvp.setValue("/path/to/test/if/that/work");
}
And unfortunately the CPM seems to ignore this change and I think I'm
missing something here.
How to tell the CPM that I've changed the collection reader's configuration
paramater settings ?
Thx
Rad
|