When using the PEAR descriptor with the underlying UIMA PEAR runtime it
is not possible to reconfigure configuration parameters for a PEAR from
outside.
-- Michael
Torsten Zesch wrote:
> Hi,
>
> I am trying to reconfigure an analysis engine with a set of new
> configuration parameters.
> The unit test below runs without errors.
> If I now package the analysis engine in a PEAR and run the same test on
> it, the line calling setConfigParameterValue() throws a
> UIMA_IllegalStateException.
> If I remove the reconfiguring code, the PEAR runs without problems.
>
> Has anyone figured out how to reconfigure a PEAR, or isn't that possible
> at all?
>
> thanks,
> Torsten
>
>
> package de.tudarmstadt.ukp.dkpro.core.annotator;
>
> @Test
> public void testTokenizer() {
>
> String testDocument = "This is a test file.";
>
> // the decriptor packaged into the PEAR
> File descriptorFile = new File("Tokenizer.xml");
>
> // the PEAR
> // File descriptorFile = new File("tokenizer_test_pear.xml");
>
> Map<String,Object> configParameters = new
> HashMap<String,Object>();
> configParameters.put("Locale", "en");
>
> // get an AnalysisEngine and process the test document
> XMLInputSource in;
> ResourceSpecifier specifier;
> AnalysisEngine analysisEngine;
> JCas aJCas = null;
> try {
> in = new XMLInputSource(descriptorFile);
> specifier =
> UIMAFramework.getXMLParser().parseResourceSpecifier(in);
> analysisEngine =
> UIMAFramework.produceAnalysisEngine(specifier);
>
> for (String key : configParameters.keySet()) {
> analysisEngine.setConfigParameterValue(key,
> configParameters.get(key));
> }
> analysisEngine.reconfigure();
>
> aJCas = analysisEngine.newJCas();
> aJCas.setDocumentText(testDocument);
> analysisEngine.process(aJCas);
>
> ... // a lot of catches snipped
> }
> }
> }