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) {