You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2009/01/29 22:14:23 UTC
svn commit: r739016 - in /incubator/uima/uimaj/trunk/uimaj-core/src:
main/java/org/apache/uima/resource/metadata/
main/java/org/apache/uima/uimacpp/
test/java/org/apache/uima/resource/metadata/impl/
Author: schor
Date: Thu Jan 29 21:14:23 2009
New Revision: 739016
URL: http://svn.apache.org/viewvc?rev=739016&view=rev
Log:
[UIMA-1281] Extract params from uima context and pass settings to uimacpp components, in case they're overridden. Also added generic type info to ConfigurationParameterSettings, which caught a previous bug in a test case - so test case fixed.
Modified:
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/ConfigurationParameterSettings.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/uimacpp/UimacppAnalysisComponent.java
incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/resource/metadata/impl/MetaDataObject_implTest.java
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/ConfigurationParameterSettings.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/ConfigurationParameterSettings.java?rev=739016&r1=739015&r2=739016&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/ConfigurationParameterSettings.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/ConfigurationParameterSettings.java Thu Jan 29 21:14:23 2009
@@ -52,7 +52,7 @@
* @return a Map with <code>String</code> keys (the group names) and {@link NameValuePair}[]
* values (the settings for parameters in that group.
*/
- public Map getSettingsForGroups();
+ public Map<String, NameValuePair[]> getSettingsForGroups();
/**
* Looks up the value of a parameter. This is a "dumb" getter and does not follow any fallback
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/uimacpp/UimacppAnalysisComponent.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/uimacpp/UimacppAnalysisComponent.java?rev=739016&r1=739015&r2=739016&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/uimacpp/UimacppAnalysisComponent.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/uimacpp/UimacppAnalysisComponent.java Thu Jan 29 21:14:23 2009
@@ -21,6 +21,7 @@
import java.io.IOException;
import java.io.StringWriter;
+import java.util.Map;
import org.apache.uima.UIMAFramework;
import org.apache.uima.UIMARuntimeException;
@@ -45,6 +46,7 @@
import org.apache.uima.resource.ResourceCreationSpecifier;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.metadata.ConfigurationParameterSettings;
+import org.apache.uima.resource.metadata.NameValuePair;
import org.apache.uima.resource.metadata.ProcessingResourceMetaData;
import org.apache.uima.util.Level;
import org.apache.uima.util.Logger;
@@ -112,6 +114,34 @@
}
}
this.log = context.getLogger();
+
+ /* set the configuration parameters into the parsed resourceDescription
+ *
+ */
+
+ AnalysisEngineDescription aed = (AnalysisEngineDescription) resourceDescription;
+ ConfigurationParameterSettings parmSettings = aed.getAnalysisEngineMetaData().getConfigurationParameterSettings();
+ /*
+ * loop thru all the parameters in the component, and set them to the possibly overridden values
+ */
+ // for group parameters (Note: unsure if C++ actually supports group parameters ...
+ Map<String, NameValuePair[]> groups = parmSettings.getSettingsForGroups();
+ for (Map.Entry<String, NameValuePair[]> group : groups.entrySet()) {
+ for (NameValuePair nvp : group.getValue()) {
+ Object v = context.getConfigParameterValue(group.getKey(), nvp.getName());
+ if (null != v) {
+ parmSettings.setParameterValue(group.getKey(), nvp.getName(), v);
+ }
+ }
+ }
+ // This next loop for "non-group" parameters
+ for (NameValuePair nvp : parmSettings.getParameterSettings()) {
+ Object v = context.getConfigParameterValue(nvp.getName());
+ if (null != v) {
+ parmSettings.setParameterValue(nvp.getName(), v);
+ }
+ }
+
if (engine == null) {
UimacppEngine.configureResourceManager(System.getProperty("java.io.tmpdir"), ae
.getResourceManager().getDataPath());
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/resource/metadata/impl/MetaDataObject_implTest.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/resource/metadata/impl/MetaDataObject_implTest.java?rev=739016&r1=739015&r2=739016&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/resource/metadata/impl/MetaDataObject_implTest.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/resource/metadata/impl/MetaDataObject_implTest.java Thu Jan 29 21:14:23 2009
@@ -34,6 +34,7 @@
import org.apache.uima.internal.util.SerializationUtils;
import org.apache.uima.resource.metadata.ConfigurationParameterSettings;
import org.apache.uima.resource.metadata.MetaDataObject;
+import org.apache.uima.resource.metadata.NameValuePair;
import org.apache.uima.test.junit_extension.JUnitExtension;
import org.apache.uima.util.XMLParser;
import org.w3c.dom.Document;
@@ -128,16 +129,16 @@
// test with maps
ConfigurationParameterSettings cps1 = UIMAFramework.getResourceSpecifierFactory().createConfigurationParameterSettings();
- cps1.getSettingsForGroups().put("k1", new NameValuePair_impl("s1", "o1"));
- cps1.getSettingsForGroups().put("k2", new NameValuePair_impl("s2", "o2"));
+ cps1.getSettingsForGroups().put("k1", new NameValuePair[] {new NameValuePair_impl("s1", "o1")});
+ cps1.getSettingsForGroups().put("k2", new NameValuePair[] {new NameValuePair_impl("s2", "o2")});
ConfigurationParameterSettings cps2 = UIMAFramework.getResourceSpecifierFactory().createConfigurationParameterSettings();
- cps2.getSettingsForGroups().put("k1", new NameValuePair_impl("s1", "o1"));
- cps2.getSettingsForGroups().put("k2", new NameValuePair_impl("s2", "o2"));
+ cps2.getSettingsForGroups().put("k1", new NameValuePair[] {new NameValuePair_impl("s1", "o1")});
+ cps2.getSettingsForGroups().put("k2", new NameValuePair[] {new NameValuePair_impl("s2", "o2")});
Assert.assertEquals(cps1, cps2);
Assert.assertEquals(cps1, cps2.clone());
- cps2.getSettingsForGroups().put("k2", new NameValuePair_impl("s2", "ox2"));
+ cps2.getSettingsForGroups().put("k2", new NameValuePair[] {new NameValuePair_impl("s2", "ox2")});
Assert.assertFalse(cps1.equals(cps2));
} catch (RuntimeException e) {