You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by bu...@apache.org on 2012/06/05 19:20:20 UTC
svn commit: r1346479 - in /uima/uimaj/trunk/uimaj-core/src:
main/java/org/apache/uima/ main/java/org/apache/uima/analysis_engine/impl/
main/java/org/apache/uima/impl/ main/java/org/apache/uima/resource/
main/java/org/apache/uima/resource/impl/ main/jav...
Author: burn
Date: Tue Jun 5 17:20:18 2012
New Revision: 1346479
URL: http://svn.apache.org/viewvc?rev=1346479&view=rev
Log:
[UIMA-2378] No longer take settings from descriptors. Can now pass the Settings in the additionalParams map (key PARAM_EXTERNAL_OVERRIDE_SETTINGS) on the produceAnalysisEngine call. Default is to use the -DUimaExternalOverrides files. Dropped support for long-deprecated implicit overrides.
Added:
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/InvalidConfigParams14.xml
Removed:
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/ExternalOverrideSettings.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/ExternalOverrideSettings_impl.java
Modified:
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/ResourceSpecifierFactory.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UimaContextAdmin.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_impl.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ChildUimaContext_impl.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ConfigurationManager.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceConfigurationException.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceInitializationException.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ConfigurationManagerImplBase.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ConfigurationManager_impl.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/OperationalProperties.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/OperationalProperties_impl.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/ResourceMetaData_impl.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/Settings.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java
uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/log_messages.properties
uima/uimaj/trunk/uimaj-core/src/main/resources/resourceSpecifierSchema.xsd
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_implTest.java
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngine_implTest.java
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/MultiprocessingAnalysisEngine_implTest.java
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/TestAnnotator2.java
uima/uimaj/trunk/uimaj-core/src/test/resources/AnnotatorContextTest/AggregateTaeWithConfigParamOverrides.xml
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateTaeWithConfigParamOverrides.xml
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateTaeWithConfigParamOverrides2.xml
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateWithExternalOverrides.xml
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateWithUnknownRemoteComponent.xml
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AnnotatorWithExternalOverrides.xml
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/testExternalOverride.settings
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/testExternalOverride2.settings
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/ResourceSpecifierFactory.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/ResourceSpecifierFactory.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/ResourceSpecifierFactory.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/ResourceSpecifierFactory.java Tue Jun 5 17:20:18 2012
@@ -64,7 +64,6 @@ import org.apache.uima.resource.metadata
import org.apache.uima.resource.metadata.ConfigurationParameter;
import org.apache.uima.resource.metadata.ConfigurationParameterDeclarations;
import org.apache.uima.resource.metadata.ConfigurationParameterSettings;
-import org.apache.uima.resource.metadata.ExternalOverrideSettings;
import org.apache.uima.resource.metadata.ExternalResourceBinding;
import org.apache.uima.resource.metadata.FeatureDescription;
import org.apache.uima.resource.metadata.FsIndexCollection;
@@ -475,6 +474,4 @@ public interface ResourceSpecifierFactor
public OutputQueue createOutputQueue();
public CasProcessorRuntimeEnvParam createEnv();
-
- public ExternalOverrideSettings createExternalOverrideSettings();
}
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UimaContextAdmin.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UimaContextAdmin.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UimaContextAdmin.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UimaContextAdmin.java Tue Jun 5 17:20:18 2012
@@ -32,6 +32,7 @@ import org.apache.uima.resource.Resource
import org.apache.uima.resource.Session;
import org.apache.uima.util.Logger;
import org.apache.uima.util.ProcessTrace;
+import org.apache.uima.util.Settings;
/**
* Admin interface to the UIMA Context. Developer code should only use the {@link UimaContext}
@@ -171,11 +172,26 @@ public interface UimaContextAdmin extend
* @param aCAS the CAS that was returned or released
*/
public void returnedCAS(AbstractCas aCAS);
+
/**
* Returns a UUID-like unique name of this component.
*
* @return - unique name of this component
*/
public String getUniqueName();
+
+ /**
+ * Gets the settings to be used for external parameter overrides
+ *
+ * @return the Settings object
+ */
+ public Settings getExternalOverrides();
+
+ /**
+ * Sets the Settings for external parameter overrides
+ *
+ * @param externalOverrides
+ */
+ public void setExternalOverrides(Settings externalOverrides);
}
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_impl.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_impl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_impl.java Tue Jun 5 17:20:18 2012
@@ -61,7 +61,6 @@ import org.apache.uima.resource.metadata
import org.apache.uima.resource.metadata.impl.PropertyXmlInfo;
import org.apache.uima.resource.metadata.impl.XmlizationInfo;
import org.apache.uima.util.InvalidXMLException;
-import org.apache.uima.util.Level;
import org.apache.uima.util.NameClassPair;
import org.apache.uima.util.XMLInputSource;
import org.apache.uima.util.XMLParser;
@@ -82,11 +81,6 @@ public class AnalysisEngineDescription_i
AnalysisEngineDescription {
/**
- * resource bundle for log messages
- */
- private static final String LOG_RESOURCE_BUNDLE = "org.apache.uima.impl.log_messages";
-
- /**
* Name of the "delegateAnalysisEngineSpecifiers" property. Change this if interface changes.
*/
protected String PROP_DELEGATE_ANALYSIS_ENGINE_SPECIFIERS = "delegateAnalysisEngineSpecifiers";
@@ -361,10 +355,10 @@ public class AnalysisEngineDescription_i
ResourceInitializationException.PARAM_OVERRIDE_IN_PRIMITIVE, new Object[] {
aParams[i].getName(), getMetaData().getName(), getSourceUrlString() });
} else if (overrides.length == 0 && !isPrimitive()) {
- UIMAFramework.getLogger(this.getClass()).logrb(Level.WARNING, this.getClass().getName(),
- "checkForInvalidParameterOverrides", LOG_RESOURCE_BUNDLE,
- "UIMA_aggregate_param_no_overrides__WARNING",
- new Object[] { getMetaData().getName(), aParams[i].getName() });
+ // Were deprecated for many years ... now no longer supported.
+ throw new ResourceInitializationException(
+ ResourceInitializationException.INVALID_PARAM_OVERRIDE_NO_OVERRIDES, new Object[] {
+ aParams[i].getName(), getMetaData().getName(), getSourceUrlString() });
}
for (int j = 0; j < overrides.length; j++) {
// overrides should be of form delegateKey/paramName
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ChildUimaContext_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ChildUimaContext_impl.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ChildUimaContext_impl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ChildUimaContext_impl.java Tue Jun 5 17:20:18 2012
@@ -80,6 +80,7 @@ public class ChildUimaContext_impl exten
mQualifiedContextName);
mSofaMappings = aSofaMappings;
parentContext = aParentContext;
+ mExternalOverrides = aParentContext.getExternalOverrides();
}
/*
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java Tue Jun 5 17:20:18 2012
@@ -73,7 +73,6 @@ import org.apache.uima.resource.metadata
import org.apache.uima.resource.metadata.ConfigurationParameter;
import org.apache.uima.resource.metadata.ConfigurationParameterDeclarations;
import org.apache.uima.resource.metadata.ConfigurationParameterSettings;
-import org.apache.uima.resource.metadata.ExternalOverrideSettings;
import org.apache.uima.resource.metadata.ExternalResourceBinding;
import org.apache.uima.resource.metadata.FeatureDescription;
import org.apache.uima.resource.metadata.FsIndexCollection;
@@ -542,8 +541,4 @@ public class ResourceSpecifierFactory_im
}
- public ExternalOverrideSettings createExternalOverrideSettings() {
- return (ExternalOverrideSettings) createObject(ExternalOverrideSettings.class);
- }
-
}
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java Tue Jun 5 17:20:18 2012
@@ -53,10 +53,10 @@ import org.apache.uima.resource.CasManag
import org.apache.uima.resource.ResourceAccessException;
import org.apache.uima.resource.ResourceConfigurationException;
import org.apache.uima.resource.ResourceInitializationException;
-import org.apache.uima.resource.impl.ConfigurationManager_impl;
import org.apache.uima.resource.metadata.ConfigurationGroup;
import org.apache.uima.resource.metadata.ConfigurationParameter;
import org.apache.uima.util.Level;
+import org.apache.uima.util.Settings;
import org.apache.uima.util.UriUtils;
/**
@@ -121,6 +121,8 @@ public abstract class UimaContext_ImplBa
protected AnalysisEngineManagementImpl mMBean = new AnalysisEngineManagementImpl();
private String uniqueIdentifier = "";
+
+ protected Settings mExternalOverrides;
/* Default constructor. Its main purpose is to create a UUID-like
* unique name for this component.
@@ -180,7 +182,7 @@ public abstract class UimaContext_ImplBa
}
/**
- * @see org.apache.uima.analysis_engine.annotator.AnnotatorContext#getConfigParameterValue(String)
+ * @see org.apache.uima.analysis_engine.annotator.AnnotatorContext#getConfigParameterValue(java.lang.String)
*/
public Object getConfigParameterValue(String aName) {
return getConfigurationManager().getConfigParameterValue(makeQualifiedName(aName));
@@ -198,7 +200,7 @@ public abstract class UimaContext_ImplBa
/**
* Locates Resource URL's using the ResourceManager.
*
- * @see org.apache.uima.analysis_engine.annotator.AnnotatorContext#getResourceURL(String)
+ * @see org.apache.uima.analysis_engine.annotator.AnnotatorContext#getResourceURL(java.lang.String)
*/
public URL getResourceURL(String aKey) throws ResourceAccessException {
URL result = getResourceManager().getResourceURL(makeQualifiedName(aKey));
@@ -264,7 +266,7 @@ public abstract class UimaContext_ImplBa
/**
* Acquires Resource InputStreams using the ResourceManager.
*
- * @see org.apache.uima.analysis_engine.annotator.AnnotatorContext#getResourceAsStream(String)
+ * @see org.apache.uima.analysis_engine.annotator.AnnotatorContext#getResourceAsStream(java.lang.String)
*/
public InputStream getResourceAsStream(String aKey) throws ResourceAccessException {
InputStream result = getResourceManager().getResourceAsStream(makeQualifiedName(aKey));
@@ -295,7 +297,7 @@ public abstract class UimaContext_ImplBa
/**
* Acquires a Resource object using the ResourceManager.
*
- * @see org.apache.uima.analysis_engine.annotator.AnnotatorContext#getResourceObject(String)
+ * @see org.apache.uima.analysis_engine.annotator.AnnotatorContext#getResourceObject(java.lang.String)
*/
public Object getResourceObject(String aKey) throws ResourceAccessException {
return getResourceManager().getResource(makeQualifiedName(aKey));
@@ -366,14 +368,14 @@ public abstract class UimaContext_ImplBa
}
/* (non-Javadoc)
- * @see org.apache.uima.UimaContext#getResourceURI(String, String[])
+ * @see org.apache.uima.UimaContext#getResourceURI(java.lang.String, java.lang.String[])
*/
public URI getResourceURI(String aKey, String[] aParams) throws ResourceAccessException {
return getResourceURIfromURL(getResourceURL(aKey, aParams));
}
/* (non-Javadoc)
- * @see org.apache.uima.UimaContext#getResourceFilePath(String, String[])
+ * @see org.apache.uima.UimaContext#getResourceFilePath(java.lang.String, java.lang.String[])
*/
public String getResourceFilePath(String aKey, String[] aParams) throws ResourceAccessException {
URI resourceUri = getResourceURI(aKey, aParams);
@@ -482,8 +484,25 @@ public abstract class UimaContext_ImplBa
* @throws ResourceConfigurationException
*/
public String getExternalParameterValue(String name) throws ResourceConfigurationException {
- ConfigurationManager_impl cfgmgr = (ConfigurationManager_impl) getConfigurationManager();
- return cfgmgr.getExternalParameter(mQualifiedContextName, name);
+ return mExternalOverrides == null ? null : mExternalOverrides.lookUp(name);
+ }
+
+ /**
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.UimaContextAdmin#getExternalOverrides()
+ */
+ public Settings getExternalOverrides() {
+ return mExternalOverrides;
+ }
+
+ /**
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.UimaContextAdmin#setExternalOverrides(org.apache.uima.util.Settings)
+ */
+ public void setExternalOverrides(Settings externalOverrides) {
+ mExternalOverrides = externalOverrides;
}
/**
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ConfigurationManager.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ConfigurationManager.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ConfigurationManager.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ConfigurationManager.java Tue Jun 5 17:20:18 2012
@@ -22,6 +22,7 @@ package org.apache.uima.resource;
import org.apache.uima.resource.metadata.ConfigurationParameterDeclarations;
import org.apache.uima.resource.metadata.ConfigurationParameterSettings;
import org.apache.uima.resource.metadata.ResourceMetaData;
+import org.apache.uima.util.Settings;
/**
* Manages the configuration parameters of all components within a possibly aggregate
@@ -48,7 +49,7 @@ public interface ConfigurationManager {
* @throws ResourceConfigurationException
* if the configuration settings are invalid
*/
- public void createContext(String aContextName, ResourceMetaData aResourceMetaData)
+ public void createContext(String aContextName, ResourceMetaData aResourceMetaData, Settings externalSettings)
throws ResourceConfigurationException;
/**
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource.java Tue Jun 5 17:20:18 2012
@@ -151,6 +151,16 @@ public interface Resource {
* {@link #initialize(ResourceSpecifier,Map)} method.
*/
public static final String PARAM_CONFIG_PARAM_SETTINGS = "CONFIG_PARAM_SETTINGS";
+
+ /**
+ * Key for the initialization parameter whose value is a {@link org.apache.uima.util.Settings}
+ * object that holds the external override settings. This will replace any prior settings.
+ * If omitted the value in the parent UIMA Context is inherited. If there is no parent (i.e. at
+ * the root or top-level context) then the files in the system property UimaExternalOverrides are used.
+ * This value is used as a key in the <code>aAdditionalParams</code> Map that is passed to the
+ * {@link #initialize(ResourceSpecifier,Map)} method.
+ */
+ public static final String PARAM_EXTERNAL_OVERRIDE_SETTINGS = "EXTERNAL_OVERRIDE_SETTINGS";
/**
* Key for the initialization parameter whose value is a {@link java.util.Properties} object that
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceConfigurationException.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceConfigurationException.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceConfigurationException.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceConfigurationException.java Tue Jun 5 17:20:18 2012
@@ -81,22 +81,22 @@ public class ResourceConfigurationExcept
public static final String CONFIG_SETTING_ABSENT = "config_setting_absent";
/**
- * Message key for a standard UIMA exception message: "Could not load properties file "{0}"."
- */
- public static final String PROPERTIES_FILE_NOT_FOUND = "properties_file_not_found";
-
- /**
* Message key for a standard UIMA exception message: Invalid value for parameter "{0}" in
* component "{1}" -- directory "{2}" does not exist.
*/
public static final String DIRECTORY_NOT_FOUND = "directory_not_found";
/**
- * Message key for a standard UIMA exception message: An external override references the undefined variable "{0}"
+ * Message key for a standard UIMA exception message: External override variable "{0}" references the undefined variable "{1}"
*/
public static final String EXTERNAL_OVERRIDE_INVALID = "external_override_invalid";
/**
+ * Message key for a standard UIMA exception message: Error loading external overrides from "{0}"
+ */
+ public static final String EXTERNAL_OVERRIDE_ERROR = "external_override_error";
+
+ /**
* Creates a new exception with a null message.
*/
public ResourceConfigurationException() {
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceInitializationException.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceInitializationException.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceInitializationException.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceInitializationException.java Tue Jun 5 17:20:18 2012
@@ -249,6 +249,13 @@ public class ResourceInitializationExcep
public static final String PARAM_OVERRIDE_IN_PRIMITIVE = "param_override_in_primitive";
/**
+ * Message key for a standard UIMA exception message: Configuration parameter "{0}" in aggregate
+ * Analysis Engine "{1}" does not declare any overrides. Implicit overrides are no longer supported.
+ * (Descriptor: {2})
+ */
+ public static final String INVALID_PARAM_OVERRIDE_NO_OVERRIDES = "invalid_param_override_no_overrides";
+
+ /**
* Message key for a standard UIMA exception message: Invalid configuration parameter override
* syntax "{0}" in parameter "{1}" of Analysis Engine "{2}". Overrides must be of the form
* "<delegateKey>/<paramName>"
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java Tue Jun 5 17:20:18 2012
@@ -25,12 +25,12 @@ import org.apache.uima.UIMAFramework;
import org.apache.uima.UIMA_IllegalStateException;
import org.apache.uima.UimaContext;
import org.apache.uima.UimaContextAdmin;
-import org.apache.uima.analysis_engine.metadata.AnalysisEngineMetaData;
-import org.apache.uima.resource.impl.ConfigurationManager_impl;
import org.apache.uima.resource.metadata.ResourceManagerConfiguration;
import org.apache.uima.resource.metadata.ResourceMetaData;
import org.apache.uima.util.InvalidXMLException;
import org.apache.uima.util.Logger;
+import org.apache.uima.util.Settings;
+import org.apache.uima.util.impl.Settings_impl;
/**
* Implementation base class for {@link org.apache.uima.resource.Resource}s. Provides access to
@@ -132,23 +132,30 @@ public abstract class Resource_ImplBase
// store Resource metadata so it can be retrieved via getMetaData() method
setMetaData(metadata);
- // If an Analysis Engine load the external override settings in the shared configuration manager
- if (metadata instanceof AnalysisEngineMetaData
- && mUimaContextAdmin.getConfigurationManager() instanceof ConfigurationManager_impl) {
- ConfigurationManager_impl cfgmgr = (ConfigurationManager_impl) mUimaContextAdmin.getConfigurationManager();
- try {
- cfgmgr.setupExternalOverrideSettings(mUimaContextAdmin.getQualifiedContextName(), metadata,
- getResourceManager());
- } catch (ResourceConfigurationException e) {
- throw new ResourceInitializationException(ResourceInitializationException.ERROR_INITIALIZING_FROM_DESCRIPTOR,
- new Object[] { name, metadata.getSourceUrlString() }, e);
+ // Check if a Settings object for the external overrides has been provided in the additional
+ // parameters map. If not and not already set from the parent UimaContext then create one
+ // (for the root context) from the system defaults
+ Settings externalOverrides = aAdditionalParams == null ? null :
+ (Settings) aAdditionalParams.get(Resource.PARAM_EXTERNAL_OVERRIDE_SETTINGS);
+ if (externalOverrides != null) {
+ mUimaContextAdmin.setExternalOverrides(externalOverrides);
+ } else {
+ if (mUimaContextAdmin.getExternalOverrides() == null) {
+ externalOverrides = new Settings_impl();
+ try {
+ externalOverrides.loadSystemDefaults();
+ } catch (ResourceConfigurationException e) {
+ throw new ResourceInitializationException(ResourceInitializationException.ERROR_INITIALIZING_FROM_DESCRIPTOR,
+ new Object[] { name, metadata.getSourceUrlString() }, e);
+ }
+ mUimaContextAdmin.setExternalOverrides(externalOverrides);
}
}
// initialize configuration
try {
mUimaContextAdmin.getConfigurationManager().createContext(
- mUimaContextAdmin.getQualifiedContextName(), getMetaData());
+ mUimaContextAdmin.getQualifiedContextName(), getMetaData(), mUimaContextAdmin.getExternalOverrides());
mUimaContextAdmin.getConfigurationManager().setSession(mUimaContextAdmin.getSession());
} catch (ResourceConfigurationException e) {
throw new ResourceInitializationException(
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ConfigurationManagerImplBase.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ConfigurationManagerImplBase.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ConfigurationManagerImplBase.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ConfigurationManagerImplBase.java Tue Jun 5 17:20:18 2012
@@ -40,6 +40,7 @@ import org.apache.uima.resource.metadata
import org.apache.uima.resource.metadata.NameValuePair;
import org.apache.uima.resource.metadata.OperationalProperties;
import org.apache.uima.resource.metadata.ResourceMetaData;
+import org.apache.uima.util.Settings;
/**
* Convenience base class for Configuration Manager implementations. Subclasses just need to
@@ -102,7 +103,7 @@ public abstract class ConfigurationManag
* @see org.apache.uima.resource.ConfigurationManager#createContext(java.lang.String,
* org.apache.uima.resource.metadata.ResourceMetaData)
*/
- public void createContext(String aContextName, ResourceMetaData aResourceMetaData)
+ public void createContext(String aContextName, ResourceMetaData aResourceMetaData, Settings externalOverrides)
throws ResourceConfigurationException {
// first internally validate settings in the ResourceMetaData (catches data type problems,
// settings for undefined parameters, etc.)
@@ -113,14 +114,13 @@ public abstract class ConfigurationManag
// provide access to the parameter values
ConfigurationParameterDeclarations paramDecls = aResourceMetaData
.getConfigurationParameterDeclarations();
- String parentContext = computeParentContextName(aContextName);
ConfigurationParameterSettings settings = aResourceMetaData.getConfigurationParameterSettings();
// parameters in no group
ConfigurationParameter[] paramsInNoGroup = paramDecls.getConfigurationParameters();
if (paramsInNoGroup.length > 0) // no groups declared
{
- declareParameters(null, paramsInNoGroup, settings, aContextName, parentContext);
+ declareParameters(null, paramsInNoGroup, settings, aContextName, externalOverrides);
}
// parameter groups
@@ -133,12 +133,12 @@ public abstract class ConfigurationManag
// common params
ConfigurationParameter[] commonParams = paramDecls.getCommonParameters();
if (commonParams != null) {
- declareParameters(names[j], commonParams, settings, aContextName, parentContext);
+ declareParameters(names[j], commonParams, settings, aContextName, externalOverrides);
}
// params in group
ConfigurationParameter[] params = groups[i].getConfigurationParameters();
if (params != null) {
- declareParameters(names[j], params, settings, aContextName, parentContext);
+ declareParameters(names[j], params, settings, aContextName, externalOverrides);
}
}
}
@@ -339,47 +339,23 @@ public abstract class ConfigurationManag
* settings for parameters
* @param aContextName
* name of context containing this parameter
- * @param aParentContextName
- * name of parent context, null if none
+ * @param aExternalOverrides
+ * settings for parameters with external overrides
* @throws ResourceConfigurationException
*/
protected void declareParameters(String aGroupName, ConfigurationParameter[] aParams,
- ConfigurationParameterSettings aSettings, String aContextName, String aParentContextName)
+ ConfigurationParameterSettings aSettings, String aContextName, Settings aExternalOverrides)
throws ResourceConfigurationException {
// iterate over config. param _declarations_
if (aParams != null) {
for (int i = 0; i < aParams.length; i++) {
ConfigurationParameter param = aParams[i];
String qname = makeQualifiedName(aContextName, param.getName(), aGroupName);
- // look up in link map; if an entry is found it indicates this parameter was
- // explicitly overridden by an aggregate parameter (in which case we don't enter a value)
- String overriddenBy = getLink(qname);
- if (overriddenBy == null) {
- // no explicit override. Check for implicit override (a parameter with same
- // name declared in parent aggregate with no explicit overrides)
- // Note: any type mismatch will generate an error later
- String nameInParentContext = makeQualifiedName(aParentContextName, param.getName(), aGroupName);
- if (lookup(nameInParentContext) != null && !mExplicitlyOverridingParameters.contains(nameInParentContext)) {
- // create a link (but collapse multiple links)
- // String parentLink = getLink(nameInParentContext);
- // overriddenBy = parentLink != null ? parentLink : nameInParentContext;
- // mLinkMap.put(qname, overriddenBy);
- mLinkMap.put(qname, nameInParentContext);
- }
- }
// if this parameter explicitly overrides others, enter those parameter links in the map
- // String overrideTarget = (overriddenBy != null) ? overriddenBy : qname;
String[] overrides = param.getOverrides();
for (int j = 0; j < overrides.length; j++) {
- // mLinkMap.put(makeQualifiedName(aContextName, overrides[j], aGroupName),
- // overrideTarget);
mLinkMap.put(makeQualifiedName(aContextName, overrides[j], aGroupName), qname);
}
- if (overrides.length > 0) {
- // record this as an explcitily overriding parameter (so implicit override does not take
- // place)
- mExplicitlyOverridingParameters.add(qname);
- }
}
}
}
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ConfigurationManager_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ConfigurationManager_impl.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ConfigurationManager_impl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ConfigurationManager_impl.java Tue Jun 5 17:20:18 2012
@@ -25,18 +25,13 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
import org.apache.uima.UIMAFramework;
-import org.apache.uima.analysis_engine.metadata.AnalysisEngineMetaData;
import org.apache.uima.resource.ResourceConfigurationException;
-import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.metadata.ConfigurationParameter;
import org.apache.uima.resource.metadata.ConfigurationParameterSettings;
-import org.apache.uima.resource.metadata.ExternalOverrideSettings;
-import org.apache.uima.resource.metadata.ResourceMetaData;
-import org.apache.uima.resource.metadata.impl.ExternalOverrideSettings_impl;
import org.apache.uima.util.Level;
+import org.apache.uima.util.Settings;
/**
* Basic standalone Configuration Manager implmentation.
@@ -55,11 +50,6 @@ public class ConfigurationManager_impl e
*/
private Map<String, Object> mSharedParamMap = Collections.synchronizedMap(new HashMap<String, Object>());
- /**
- * Map of External Overrides when have multiple top-level engines, e.g. under CPE
- */
- private Map<String,ExternalOverrideSettings_impl> mSettingsMap = new ConcurrentHashMap<String, ExternalOverrideSettings_impl>();
-
/*
* (non-Javadoc)
*
@@ -68,13 +58,11 @@ public class ConfigurationManager_impl e
* org.apache.uima.resource.metadata.ConfigurationParameterSettings, java.lang.String, java.lang.String)
*/
protected void declareParameters(String aGroupName, ConfigurationParameter[] aParams,
- ConfigurationParameterSettings aSettings, String aContextName, String aParentContextName)
+ ConfigurationParameterSettings aSettings, String aContextName, Settings aExternalOverrides)
throws ResourceConfigurationException {
- super.declareParameters(aGroupName, aParams, aSettings, aContextName, aParentContextName);
+ super.declareParameters(aGroupName, aParams, aSettings, aContextName, aExternalOverrides);
// iterate over config. param _declarations_ and build mSharedParamNap
if (aParams != null) {
-
- ExternalOverrideSettings settings = mSettingsMap.get(aContextName);
for (int i = 0; i < aParams.length; i++) {
String qname = makeQualifiedName(aContextName, aParams[i].getName(), aGroupName);
String from = "";
@@ -85,8 +73,8 @@ public class ConfigurationManager_impl e
// even over an external name in the aggregate.
Object paramValue = aSettings.getParameterValue(aGroupName, aParams[i].getName());
String extName = aParams[i].getExternalOverrideName();
- if (extName != null && settings != null) {
- String propValue = settings.resolveExternalName(extName);
+ if (extName != null && aExternalOverrides != null) {
+ String propValue = aExternalOverrides.lookUp(extName);
if (propValue != null) {
Object result = createParam(propValue, aParams[i].getType(), aParams[i].isMultiValued());
if (result == null) {
@@ -236,56 +224,5 @@ public class ConfigurationManager_impl e
// If change in i is odd then ended with an unescaped \
return ((line.length() - i) % 2 != 0);
}
-
- /**
- * If the first Analysis Engine load the External Override Settings
- * May start with the root context "/" or may get multiple top-level contexts (e.g. from CPE)
- *
- * @param contextName for this engine, "/" or "/name/" or "/name/name/..."
- * @param metadata
- * @param resourceManager
- * @throws ResourceConfigurationException
- */
- public void setupExternalOverrideSettings(String contextName, ResourceMetaData metadata,
- ResourceManager resourceManager) throws ResourceConfigurationException {
- ExternalOverrideSettings_impl parentOverrides = null;
- // Remove last section of the context, e.g. from "/toplevel/secondlevel/thirdlevel/" or "/"
- int i = contextName.substring(0, contextName.length()-1).lastIndexOf('/');
- if (i >= 0) {
- String parentContext = contextName.substring(0, i + 1); // keep final '/'
- parentOverrides = mSettingsMap.get(parentContext);
- }
- // See if descriptor has any settings
- ExternalOverrideSettings_impl eos = (ExternalOverrideSettings_impl) ((AnalysisEngineMetaData)metadata).getOperationalProperties().getExternalOverrideSettings();
- if (eos == null) {
- // If no settings inherit the parent's settings, unless this is the top-level descriptor
- if (parentOverrides != null) {
- mSettingsMap.put(contextName, parentOverrides); // Child has same list as parent
- return;
- } else { // Create required top-level one
- eos = new ExternalOverrideSettings_impl(); // Simpler than using the factory
- }
- }
- // Link this back to the next higher set of external overrides
- eos.setParentOverrides(parentOverrides);
-
- // Resolve imports
- eos.resolveImports(resourceManager);
- mSettingsMap.put(contextName, eos);
- }
-
- /**
- * Convenience method for direct access to string variables
- *
- * @param context - UIMA Context
- * @param name - variable to look up
- * @return - value of variable OR an exception message if definition is invalid
- * @throws ResourceConfigurationException
- */
- public String getExternalParameter(String context, String name) throws ResourceConfigurationException {
- ExternalOverrideSettings settings = mSettingsMap.get(context);
- String value = settings == null ? null : settings.resolveExternalName(name);
- return value == null ? null : escape(value);
- }
}
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/OperationalProperties.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/OperationalProperties.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/OperationalProperties.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/OperationalProperties.java Tue Jun 5 17:20:18 2012
@@ -81,7 +81,4 @@ public interface OperationalProperties {
*/
public void setOutputsNewCASes(boolean aOutputsNewCASes);
- public void setExternalOverrideSettings(ExternalOverrideSettings aExternalOverrideSettings);
-
- public ExternalOverrideSettings getExternalOverrideSettings();
}
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/OperationalProperties_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/OperationalProperties_impl.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/OperationalProperties_impl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/OperationalProperties_impl.java Tue Jun 5 17:20:18 2012
@@ -19,7 +19,6 @@
package org.apache.uima.resource.metadata.impl;
-import org.apache.uima.resource.metadata.ExternalOverrideSettings;
import org.apache.uima.resource.metadata.OperationalProperties;
import org.apache.uima.util.InvalidXMLException;
import org.apache.uima.util.XMLParser;
@@ -38,8 +37,6 @@ public class OperationalProperties_impl
private boolean mOutputsNewCASes;
- private ExternalOverrideSettings mExternalOverrideSettings;
-
/*
* (non-Javadoc)
*
@@ -85,14 +82,6 @@ public class OperationalProperties_impl
mOutputsNewCASes = aOutputsNewCASes;
}
- public void setExternalOverrideSettings(ExternalOverrideSettings aExternalOverrideSettings) {
- mExternalOverrideSettings = aExternalOverrideSettings;
- }
-
- public ExternalOverrideSettings getExternalOverrideSettings() {
- return mExternalOverrideSettings;
- }
-
protected XmlizationInfo getXmlizationInfo() {
return XMLIZATION_INFO;
}
@@ -100,8 +89,7 @@ public class OperationalProperties_impl
static final private XmlizationInfo XMLIZATION_INFO = new XmlizationInfo("operationalProperties",
new PropertyXmlInfo[] { new PropertyXmlInfo("modifiesCas"),
new PropertyXmlInfo("multipleDeploymentAllowed"),
- new PropertyXmlInfo("outputsNewCASes"),
- new PropertyXmlInfo("externalOverrideSettings", null)});
+ new PropertyXmlInfo("outputsNewCASes")});
/* (non-Javadoc)
* @see org.apache.uima.resource.metadata.impl.MetaDataObject_impl#buildFromXMLElement(org.w3c.dom.Element, org.apache.uima.util.XMLParser, org.apache.uima.util.XMLParser.ParsingOptions)
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/ResourceMetaData_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/ResourceMetaData_impl.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/ResourceMetaData_impl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/ResourceMetaData_impl.java Tue Jun 5 17:20:18 2012
@@ -305,7 +305,7 @@ public class ResourceMetaData_impl exten
NameValuePair aNVP) throws ResourceConfigurationException {
String paramName = aParam.getName();
String paramType = aParam.getType();
- Class valClass = aNVP.getValue().getClass();
+ Class<?> valClass = aNVP.getValue().getClass();
if (aParam.isMultiValued()) // value must be an array
{
@@ -336,7 +336,7 @@ public class ResourceMetaData_impl exten
*
* @return expected Java class for parameter values of this type
*/
- protected Class getClassForParameterType(String paramType) {
+ protected Class<?> getClassForParameterType(String paramType) {
if (ConfigurationParameter.TYPE_STRING.equals(paramType)) {
return String.class;
} else if (ConfigurationParameter.TYPE_BOOLEAN.equals(paramType)) {
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/Settings.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/Settings.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/Settings.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/Settings.java Tue Jun 5 17:20:18 2012
@@ -37,6 +37,15 @@ public interface Settings {
public void load(InputStream in) throws IOException;
/**
+ * Load properties from the comma-separated list of files specified in the system property
+ * UimaExternalOverrides
+ * Files are loaded in order --- so in descending priority.
+ *
+ * @throws ResourceConfigurationException
+ */
+ public void loadSystemDefaults() throws ResourceConfigurationException;
+
+ /**
* Look up the value for a property.
* Perform one substitution pass on ${key} substrings replacing them with the value for key.
* Recursively evaluate the value to be substituted. NOTE: infinite loops not detected!
@@ -47,7 +56,7 @@ public interface Settings {
*
* @param name - name to look up
* @return - value of property
- * @throws ResourceConfigurationException
+ * @throws ResourceConfigurationException if the value references an undefined property
*/
public String lookUp(String name) throws ResourceConfigurationException;
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java Tue Jun 5 17:20:18 2012
@@ -1,6 +1,7 @@
package org.apache.uima.util.impl;
import java.io.BufferedReader;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -37,8 +38,6 @@ public class Settings_impl implements Se
private Map<String, String> map;
- private Settings_impl parent = null;
-
/*
* Regex that matches ${...}
* non-greedy so stops on first '}' -- hence key cannot contain '}'
@@ -46,11 +45,6 @@ public class Settings_impl implements Se
private Pattern evalPattern = Pattern.compile("\\$\\{.*?\\}");
public Settings_impl() {
- this(null);
- }
-
- public Settings_impl(Settings_impl parent) {
- this.parent = parent;
map = new HashMap<String, String>();
}
@@ -94,14 +88,38 @@ public class Settings_impl implements Se
} else {
if (!value.equals(map.get(name))) {
// Key {0} already in use ... ignoring value "{1}"
- UIMAFramework.getLogger(this.getClass()).logrb(Level.WARNING, this.getClass().getName(), "load",
- LOG_RESOURCE_BUNDLE, "UIMA_external_override_ignored__WARNING", new Object[] { name, value });
+ UIMAFramework.getLogger(this.getClass()).logrb(Level.CONFIG, this.getClass().getName(), "load",
+ LOG_RESOURCE_BUNDLE, "UIMA_external_override_ignored__CONFIG", new Object[] { name, value });
}
}
}
}
/**
+ * Load the files specified in the system property UimaExternalOverrides
+ *
+ * @throws IOException
+ * @throws ResourceConfigurationException
+ */
+
+ public void loadSystemDefaults() throws ResourceConfigurationException {
+ String fnames = System.getProperty("UimaExternalOverrides");
+ if (fnames != null) {
+ for (String fname : fnames.split(",")) {
+ UIMAFramework.getLogger(this.getClass()).logrb(Level.CONFIG, this.getClass().getName(), "loadSystemDefaults",
+ LOG_RESOURCE_BUNDLE, "UIMA_external_overrides_load__CONFIG",
+ new Object[] { fname });
+ try {
+ load(new FileInputStream(fname));
+ } catch (IOException e) {
+ throw new ResourceConfigurationException(ResourceConfigurationException.EXTERNAL_OVERRIDE_ERROR,
+ new Object[] { fname }, e);
+ }
+ }
+ }
+ }
+
+ /**
* Look up the value for a property.
* Perform one substitution pass on ${key} substrings. If key is undefined throw an exception.
* Recursively evaluate the value to be substituted. NOTE: infinite loops not detected!
@@ -117,7 +135,7 @@ public class Settings_impl implements Se
*/
public String lookUp(String name) throws ResourceConfigurationException {
String value;
- if ((value = get(name)) == null) {
+ if ((value = map.get(name)) == null) {
return null;
}
Matcher matcher = evalPattern.matcher(value);
@@ -147,22 +165,6 @@ public class Settings_impl implements Se
return result.toString();
}
}
-
- /*
- * Get the raw value for a key by search the linked list of settings, starting
- * at the end of the list, i.e. the top-level settings.
- */
- private String get(String name) {
- String value;
- // Only if parent (and parent's parent etc.) doesn't have an entry do we check our entries.
- if (parent != null) {
- value = parent.get(name);
- if (value != null) {
- return value;
- }
- }
- return map.get(name);
- }
/*
* Create a string representing an array from one or more logical lines
Modified: uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties Tue Jun 5 17:20:18 2012
@@ -119,13 +119,13 @@ config_setting_absent = Configuration se
resource_not_found = Configuration setting for parameter "{0}" is absent.
-properties_file_not_found = Could not load properties file "{0}".
-
directory_not_found = Invalid value for parameter "{0}" in component "{1}" -- \
directory "{2}" does not exist.
external_override_invalid = External override variable "{0}" references the undefined variable "{1}"
+external_override_error = Error loading external overrides from "{0}"
+
#--------------------------------
#ResourceProcessException
#--------------------------------
@@ -287,6 +287,9 @@ duplicate_index_name = Two different CAS
param_override_in_primitive = Configuration parameter "{0}" in primitive Analysis Engine "{1}" \
declares an override. Parameter overrides are allowed only in aggregate Analysis Engines. (Descriptor: {2})
+invalid_param_override_no_overrides = Configuration parameter "{0}" in aggregate Analysis Engine "{1}" \
+ does not declare any overrides. Implicit overrides are no longer supported. (Descriptor: {2})
+
invalid_param_override_syntax = Invalid configuration parameter override syntax "{0}" in \
parameter "{1}" of Analysis Engine "{2}". Overrides must be of the form "<delegateKey>/<paramName>". (Descriptor: {3})
Modified: uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/log_messages.properties
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/log_messages.properties?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/log_messages.properties (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/log_messages.properties Tue Jun 5 17:20:18 2012
@@ -72,12 +72,9 @@ UIMA_trying_resource_class__CONFIG = try
UIMA_unmanaged_resource__WARNING = The unmanaged resource {0} was accessed.\
This feature is deprecated, and support may be removed in future versions.
-UIMA_aggregate_param_no_overrides__WARNING = The aggregate text analysis engine "{0}" has declared the parameter {1}, but has not declared any overrides.\
- This usage is deprecated.
+UIMA_external_overrides_load__CONFIG = Loading external overrides from file "{0}"
-UIMA_external_overrides_load__CONFIG = Loading external overrides from {0} "{1}"
-
-UIMA_external_override_ignored__WARNING = Key "{0}" already in use ... ignoring value "{1}"
+UIMA_external_override_ignored__CONFIG = Key "{0}" already in use ... ignoring value "{1}"
UIMA_parameter_set__CONFIG = Parameter "{0}" in context {1} = "{2}" {3}
Modified: uima/uimaj/trunk/uimaj-core/src/main/resources/resourceSpecifierSchema.xsd
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/resources/resourceSpecifierSchema.xsd?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/resources/resourceSpecifierSchema.xsd (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/resources/resourceSpecifierSchema.xsd Tue Jun 5 17:20:18 2012
@@ -215,7 +215,7 @@
<sequence>
<element name="parameter" type="string" minOccurs="0" maxOccurs="unbounded" />
</sequence>
- <!-- Use of tag "param" is deprectated but permitted for backwards compatibility -->
+ <!-- Use of tag "param" is deprecated but permitted for backwards compatibility -->
<sequence>
<element name="param" type="string" minOccurs="0" maxOccurs="unbounded" />
</sequence>
@@ -500,7 +500,6 @@
<element name="modifiesCas" minOccurs="0" type="boolean"/>
<element name="multipleDeploymentAllowed" minOccurs="0" type="boolean"/>
<element name="outputsNewCASes" minOccurs="0" type="boolean"/>
- <element name="externalOverrideSettings" minOccurs="0" type="rs:ExternalOverrideSettingsType"/>
</sequence>
</complexType>
@@ -579,13 +578,6 @@
</element>
</sequence>
</complexType>
-
- <complexType name="ExternalOverrideSettingsType">
- <all>
- <element name="imports" type="rs:ImportSequenceType" minOccurs="0" />
- <element name="settings" type="string" minOccurs="0" />
- </all>
- </complexType>
<!-- Top Level Element Definitions for Collection Processing Component Specifiers -->
Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_implTest.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_implTest.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_implTest.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_implTest.java Tue Jun 5 17:20:18 2012
@@ -53,16 +53,13 @@ import org.apache.uima.resource.metadata
import org.apache.uima.resource.metadata.ConfigurationGroup;
import org.apache.uima.resource.metadata.ConfigurationParameter;
import org.apache.uima.resource.metadata.ConfigurationParameterSettings;
-import org.apache.uima.resource.metadata.ExternalOverrideSettings;
import org.apache.uima.resource.metadata.ExternalResourceBinding;
-import org.apache.uima.resource.metadata.FeatureDescription;
import org.apache.uima.resource.metadata.FsIndexDescription;
import org.apache.uima.resource.metadata.FsIndexKeyDescription;
import org.apache.uima.resource.metadata.MetaDataObject;
import org.apache.uima.resource.metadata.NameValuePair;
import org.apache.uima.resource.metadata.OperationalProperties;
import org.apache.uima.resource.metadata.ResourceManagerConfiguration;
-import org.apache.uima.resource.metadata.ResourceMetaData;
import org.apache.uima.resource.metadata.TypeDescription;
import org.apache.uima.resource.metadata.TypePriorities;
import org.apache.uima.resource.metadata.TypePriorityList;
@@ -116,7 +113,7 @@ public class AnalysisEngineDescription_i
TypeSystemDescription typeSystem = new TypeSystemDescription_impl();
TypeDescription type1 = typeSystem.addType("Fake", "<b>Fake</b> Type", "Annotation");
- FeatureDescription feature1 = type1.addFeature("TestFeature", "For Testing Only",
+ type1.addFeature("TestFeature", "For Testing Only",
CAS.TYPE_NAME_STRING);
TypeDescription enumType = typeSystem.addType("EnumType", "Test Enumerated Type",
"uima.cas.String");
@@ -368,7 +365,7 @@ public class AnalysisEngineDescription_i
Map<String, MetaDataObject> delegateMap = testAgg.getDelegateAnalysisEngineSpecifiersWithImports();
Import_impl delegateImport = new Import_impl();
delegateImport.setLocation(JUnitExtension.getFile(
- "TextAnalysisEngineImplTest/TestPrimitiveTae1.xml").toURL().toString());
+ "TextAnalysisEngineImplTest/TestPrimitiveTae1.xml").toURI().toURL().toString());
delegateMap.put("key", delegateImport);
// test that import is resolved
@@ -560,37 +557,4 @@ public class AnalysisEngineDescription_i
Assert.assertFalse(ex.getMessage().startsWith("EXCEPTION MESSAGE LOCALIZATION FAILED"));
}
- public void testClone() throws Exception {
- try {
- XMLInputSource in = new XMLInputSource(JUnitExtension
- .getFile("TextAnalysisEngineImplTest/AnnotatorWithExternalOverrides.xml"));
- AnalysisEngineDescription desc = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(in);
- AnalysisEngineDescription descClone = (AnalysisEngineDescription) desc.clone();
- assertEquals(desc.getImplementationName(), descClone.getImplementationName());
-
- ResourceMetaData metadata = desc.getMetaData();
- ExternalOverrideSettings eos = ((AnalysisEngineMetaData)metadata).getOperationalProperties().getExternalOverrideSettings();
- String descSettings = eos.getSettings();
-
- ResourceMetaData metadataClone = descClone.getMetaData();
- ExternalOverrideSettings eosClone = ((AnalysisEngineMetaData)metadataClone).getOperationalProperties().getExternalOverrideSettings();
- String descSettingsClone = eosClone.getSettings();
- assertEquals(descSettings, descSettingsClone);
-
- // Check that imports can be found and settings can be loaded
- ResourceManager resMgr = UIMAFramework.newDefaultResourceManager();
- eos.resolveImports(resMgr);
- eosClone.resolveImports(resMgr);
-
- // Check that a nested inline expression can depend of an imported value
- String val1 = eosClone.resolveExternalName("import-value");
- String val2 = eosClone.resolveExternalName("inline-value");
- assertNotNull(val1);
- assertEquals(val1, val2);
-
- } catch (Exception e) {
- JUnitExtension.handleException(e);
- }
- }
-
}
Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngine_implTest.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngine_implTest.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngine_implTest.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngine_implTest.java Tue Jun 5 17:20:18 2012
@@ -20,6 +20,7 @@
package org.apache.uima.analysis_engine.impl;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
@@ -56,6 +57,7 @@ import org.apache.uima.cas.Type;
import org.apache.uima.cas.TypeSystem;
import org.apache.uima.cas.admin.FSIndexComparator;
import org.apache.uima.cas.text.AnnotationFS;
+import org.apache.uima.resource.Resource;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.impl.URISpecifier_impl;
@@ -82,8 +84,10 @@ import org.apache.uima.resource.metadata
import org.apache.uima.test.junit_extension.JUnitExtension;
import org.apache.uima.util.InvalidXMLException;
import org.apache.uima.util.Level;
+import org.apache.uima.util.Settings;
import org.apache.uima.util.XMLInputSource;
import org.apache.uima.util.impl.ProcessTrace_impl;
+import org.apache.uima.util.impl.Settings_impl;
/**
* Tests the TextAnalysisEngine_impl class.
@@ -158,7 +162,7 @@ public class AnalysisEngine_implTest ext
Assert.assertTrue(result);
// try some descriptors that are invalid due to config. param problems
- for (int i = 1; i <= 13; i++) {
+ for (int i = 1; i <= 14; i++) {
_testInvalidDescriptor(JUnitExtension
.getFile("TextAnalysisEngineImplTest/InvalidConfigParams" + i + ".xml"));
}
@@ -187,11 +191,10 @@ public class AnalysisEngine_implTest ext
"StringParam");
Assert.assertEquals("en", strVal3);
- Assert.assertEquals("en", strVal2);
Integer intVal1 = (Integer) delegate1.getUimaContext().getConfigParameterValue("en",
"IntegerParam");
Assert.assertEquals(100, intVal1.intValue());
- Integer intVal2 = (Integer) delegate1.getUimaContext().getConfigParameterValue("en",
+ Integer intVal2 = (Integer) delegate2.getUimaContext().getConfigParameterValue("en",
"IntegerParam");
Assert.assertEquals(100, intVal2.intValue());
Integer intVal3 = (Integer) flowController.getUimaContext().getConfigParameterValue("en",
@@ -252,6 +255,14 @@ public class AnalysisEngine_implTest ext
ae.destroy();
+ // anotherdescriptor with configuration parameter overrides (this time no groups)
+ in = new XMLInputSource(JUnitExtension
+ .getFile("TextAnalysisEngineImplTest/AggregateTaeWithConfigParamOverrides2.xml"));
+
+ desc = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(in);
+ ae = new AggregateAnalysisEngine_impl();
+ ae.initialize(desc, Collections.EMPTY_MAP);
+
// test an aggregate TAE containing a CAS Consumer
in = new XMLInputSource(JUnitExtension
.getFile("TextAnalysisEngineImplTest/AggregateTaeWithCasConsumer.xml"));
@@ -299,23 +310,41 @@ public class AnalysisEngine_implTest ext
Assert.assertEquals("AggregateParam3b", ann2_groupBParamBC);
ae.destroy();
-
- // try a descriptor with configuration parameter external overrides - should work
- // Use an aggregate so the annotator can run tests based on the context.
- in = new XMLInputSource(JUnitExtension.getFile("TextAnalysisEngineImplTest/AggregateWithExternalOverrides.xml"));
+
+ // descriptor with configuration parameter external overrides
+ // implicitly load settings values from the system property UimaExternalSettings
+ String resDir = "src/test/resources/TextAnalysisEngineImplTest/";
+ System.setProperty("UimaExternalOverrides", resDir+"testExternalOverride.settings,"+resDir+"testExternalOverride2.settings");
+ in = new XMLInputSource(JUnitExtension.getFile("TextAnalysisEngineImplTest/AnnotatorWithExternalOverrides.xml"));
desc = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(in);
- ae = new AggregateAnalysisEngine_impl();
- ae.initialize(desc, null);
- delegate1 = (PrimitiveAnalysisEngine_impl) ae._getASB().getComponentAnalysisEngines().get("ExternalOverrides");
- String[] arrayParam = (String[]) delegate1.getUimaContext().getConfigParameterValue("StringArrayParam");
+ ae1 = new PrimitiveAnalysisEngine_impl();
+ ae1.initialize(desc, null);
+ String[] arrayParam = (String[]) ae1.getUimaContext().getConfigParameterValue("StringArrayParam");
Assert.assertNotNull(arrayParam);
Assert.assertEquals(5, arrayParam.length);
- String[] expect = { "prefix_from_import", "-", "suffix_from_inline", "->", "prefix_from_import-suffix_from_inline" };
+ String[] expect = { "Prefix", "-", "Suffix", "->", "Prefix-Suffix" };
Assert.assertTrue(Arrays.equals(expect, arrayParam));
- Integer[] intArr = (Integer[]) delegate1.getUimaContext().getConfigParameterValue("IntegerArrayParam");
+ Integer[] intArr = (Integer[]) ae1.getUimaContext().getConfigParameterValue("IntegerArrayParam");
Assert.assertEquals(4, intArr.length);
- Float[] floats = (Float[]) delegate1.getUimaContext().getConfigParameterValue("FloatArrayParam");
+ Float[] floats = (Float[]) ae1.getUimaContext().getConfigParameterValue("FloatArrayParam");
Assert.assertTrue(floats != null && floats.length == 0); // Should be an empty array
+ System.clearProperty("UimaExternalOverrides");
+
+ ae1.destroy();
+
+ // aggregate with delegate with configuration parameter external overrides
+ // use aggregate so the annotator can run tests based on the context.
+ // load settings explicitly, ignoring system property
+ System.setProperty("UimaExternalOverrides", "missing file"); // Will fail if used
+ in = new XMLInputSource(JUnitExtension.getFile("TextAnalysisEngineImplTest/AggregateWithExternalOverrides.xml"));
+ desc = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(in);
+ ae = new AggregateAnalysisEngine_impl();
+ Map<String,Object> additionalParams = new HashMap<String,Object>();
+ Settings extSettings = new Settings_impl();
+ extSettings.load(new FileInputStream(new File(resDir,"testExternalOverride2.settings")));
+ additionalParams.put(Resource.PARAM_EXTERNAL_OVERRIDE_SETTINGS, extSettings);
+ ae.initialize(desc, additionalParams);
+ System.clearProperty("UimaExternalOverrides");
ae1.destroy();
@@ -542,6 +571,7 @@ public class AnalysisEngine_implTest ext
p2.setName("StringParam");
p2.setDescription("parameter with String data type");
p2.setType(ConfigurationParameter.TYPE_STRING);
+ p2.setOverrides(new String[] {"Test/StringParam"});
aggDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
new ConfigurationParameter[] { p2 });
aggDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
@@ -558,43 +588,7 @@ public class AnalysisEngine_implTest ext
// test again
assertEquals("Test4", TestAnnotator.stringParamValue);
-
- // reconfigure WITHOUT setting that parameter
- aggAe.reconfigure();
- // test again
- assertEquals("Test4", TestAnnotator.stringParamValue);
-
- // test aggregate TAE that does NOT override parameter
- primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
- new NameValuePair[] { new NameValuePair_impl("StringParam", "Test1") });
- AnalysisEngineDescription aggDesc2 = new AnalysisEngineDescription_impl();
- aggDesc2.setFrameworkImplementation(Constants.JAVA_FRAMEWORK_NAME);
- aggDesc2.setPrimitive(false);
- aggDesc2.getMetaData().setName("Test Aggregate TAE");
- aggDesc2.getDelegateAnalysisEngineSpecifiersWithImports().put("Test", primitiveDesc);
- FixedFlow_impl flow2 = new FixedFlow_impl();
- flow2.setFixedFlow(new String[] { "Test" });
- aggDesc2.getAnalysisEngineMetaData().setFlowConstraints(flow2);
- ConfigurationParameter p3 = new ConfigurationParameter_impl();
- p3.setName("IntParam");
- p3.setDescription("parameter with Integer data type");
- p3.setType(ConfigurationParameter.TYPE_INTEGER);
- aggDesc2.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
- new ConfigurationParameter[] { p3 });
- aggDesc2.getMetaData().getConfigurationParameterSettings().setParameterSettings(
- new NameValuePair[] { new NameValuePair_impl("IntParam", Integer.valueOf(42)) });
- // instantiate TextAnalysisEngine
- AggregateAnalysisEngine_impl aggAe2 = new AggregateAnalysisEngine_impl();
- aggAe2.initialize(aggDesc2, null);
-
- // call process - this should generate an event with a resource name equal
- // to the value of StringParam
- assertEquals("Test1", TestAnnotator.stringParamValue);
- // reconfigure
- aggAe2.setConfigParameterValue("IntParam", Integer.valueOf(0));
- aggAe2.reconfigure();
- // test again - should not have changed
- assertEquals("Test1", TestAnnotator.stringParamValue);
+
} catch (Exception e) {
JUnitExtension.handleException(e);
}
Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/MultiprocessingAnalysisEngine_implTest.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/MultiprocessingAnalysisEngine_implTest.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/MultiprocessingAnalysisEngine_implTest.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/MultiprocessingAnalysisEngine_implTest.java Tue Jun 5 17:20:18 2012
@@ -370,6 +370,7 @@ public class MultiprocessingAnalysisEngi
p2.setName("StringParam");
p2.setDescription("parameter with String data type");
p2.setType(ConfigurationParameter.TYPE_STRING);
+ p2.setOverrides(new String[] {"Test/StringParam"});
aggDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
new ConfigurationParameter[] { p2 });
aggDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/TestAnnotator2.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/TestAnnotator2.java?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/TestAnnotator2.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/TestAnnotator2.java Tue Jun 5 17:20:18 2012
@@ -67,11 +67,11 @@ public class TestAnnotator2 extends CasA
if ("/ExternalOverrides/".equals(contextName)) {
String actual = null;
try {
- actual = aContext.getExternalParameterValue("test.externalStringArray");
+ actual = aContext.getExternalParameterValue("test.externalFloatArray");
} catch (ResourceConfigurationException e) {
Assert.fail(e.getMessage());
}
- String expected = "[prefix_from_import,-,suffix_from_inline,->,prefix_from_import-suffix_from_inline]";
+ String expected = "[]";
Assert.assertEquals(expected, actual);
// Test a stand-alone settings object
Modified: uima/uimaj/trunk/uimaj-core/src/test/resources/AnnotatorContextTest/AggregateTaeWithConfigParamOverrides.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/AnnotatorContextTest/AggregateTaeWithConfigParamOverrides.xml?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/resources/AnnotatorContextTest/AggregateTaeWithConfigParamOverrides.xml (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/resources/AnnotatorContextTest/AggregateTaeWithConfigParamOverrides.xml Tue Jun 5 17:20:18 2012
@@ -48,6 +48,9 @@
<name>StringParam</name>
<description/>
<type>String</type>
+ <overrides>
+ <parameter>Annotator1/StringParam</parameter>
+ </overrides>
</configurationParameter>
</configurationGroup>
Modified: uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateTaeWithConfigParamOverrides.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateTaeWithConfigParamOverrides.xml?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateTaeWithConfigParamOverrides.xml (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateTaeWithConfigParamOverrides.xml Tue Jun 5 17:20:18 2012
@@ -58,12 +58,17 @@
</overrides>
</configurationParameter>
- <!-- Implicit override -->
+ <!-- Array overrides (was testing deprecated Implicit override) -->
<configurationParameter>
<name>StringArrayParam</name>
<description/>
<type>String</type>
<multiValued>true</multiValued>
+ <overrides>
+ <parameter>Annotator1/StringArrayParam</parameter>
+ <parameter>Annotator2/StringArrayParam</parameter>
+ <parameter>MyFlowController/StringArrayParam</parameter>
+ </overrides>
</configurationParameter>
<!-- Override multiple params -->
Modified: uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateTaeWithConfigParamOverrides2.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateTaeWithConfigParamOverrides2.xml?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateTaeWithConfigParamOverrides2.xml (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateTaeWithConfigParamOverrides2.xml Tue Jun 5 17:20:18 2012
@@ -56,12 +56,17 @@
</overrides>
</configurationParameter>
- <!-- Implicit override -->
+ <!-- Array overrides (was testing deprecated Implicit override) -->
<configurationParameter>
<name>StringArrayParam</name>
<description/>
<type>String</type>
<multiValued>true</multiValued>
+ <overrides>
+ <parameter>Annotator1/StringArrayParam</parameter>
+ <parameter>Annotator2/StringArrayParam</parameter>
+ <parameter>MyFlowController/StringArrayParam</parameter>
+ </overrides>
</configurationParameter>
<!-- Override multiple params -->
Modified: uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateWithExternalOverrides.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateWithExternalOverrides.xml?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateWithExternalOverrides.xml (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateWithExternalOverrides.xml Tue Jun 5 17:20:18 2012
@@ -50,17 +50,6 @@
<modifiesCas>true</modifiesCas>
<multipleDeploymentAllowed>true</multipleDeploymentAllowed>
<outputsNewCASes>false</outputsNewCASes>
- <externalOverrideSettings>
- <settings>
- inline-suffix suffix_from_inline
- test.externalStringArray = [${import-prefix},\-,${inline-suffix},->,${import-value}]
- test.externalIntegerArray : [1 , 22 , 3\33,4444]
- </settings>
- <imports>
- <import location="testExternalOverride.settings"/>
- <import name="TextAnalysisEngineImplTest.testExternalOverride2"/>
- </imports>
- </externalOverrideSettings>
</operationalProperties>
</analysisEngineMetaData>
<resourceManagerConfiguration/>
Modified: uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateWithUnknownRemoteComponent.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateWithUnknownRemoteComponent.xml?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateWithUnknownRemoteComponent.xml (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateWithUnknownRemoteComponent.xml Tue Jun 5 17:20:18 2012
@@ -61,12 +61,15 @@
</overrides>
</configurationParameter>
- <!-- Implicit override -->
+ <!-- Another Explicit override (was testing deprecated Implicit override) -->
<configurationParameter>
<name>StringArrayParam</name>
<description/>
<type>String</type>
<multiValued>true</multiValued>
+ <overrides>
+ <parameter>Annotator1/StringArrayParam</parameter>
+ </overrides>
</configurationParameter>
<!-- Override multiple params -->
Modified: uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AnnotatorWithExternalOverrides.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AnnotatorWithExternalOverrides.xml?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AnnotatorWithExternalOverrides.xml (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AnnotatorWithExternalOverrides.xml Tue Jun 5 17:20:18 2012
@@ -147,16 +147,6 @@
<modifiesCas>true</modifiesCas>
<multipleDeploymentAllowed>true</multipleDeploymentAllowed>
<outputsNewCASes>false</outputsNewCASes>
- <externalOverrideSettings>
- <settings>
- inline-suffix suffix_from_inline
- inline-value ${import-prefix}-suffix_from_inline
- </settings>
- <imports>
- <import location="testExternalOverride.settings"/>
- <import name="TextAnalysisEngineImplTest.testExternalOverride2"/>
- </imports>
- </externalOverrideSettings>
</operationalProperties>
</analysisEngineMetaData>
</taeDescription>
Added: uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/InvalidConfigParams14.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/InvalidConfigParams14.xml?rev=1346479&view=auto
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/InvalidConfigParams14.xml (added)
+++ uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/InvalidConfigParams14.xml Tue Jun 5 17:20:18 2012
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ -->
+
+<!-- Descriptor for testing configuration groups. -->
+
+<taeDescription xmlns="http://uima.apache.org/resourceSpecifier">
+<frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+<primitive>false</primitive>
+
+<delegateAnalysisEngineSpecifiers>
+<delegateAnalysisEngine key="Annotator1">
+<import location="AnnotatorWithConfigurationParameters.xml"/>
+</delegateAnalysisEngine>
+
+<delegateAnalysisEngine key="Annotator2">
+<import location="AnnotatorWithConfigurationParameters.xml"/>
+</delegateAnalysisEngine>
+</delegateAnalysisEngineSpecifiers>
+
+<analysisEngineMetaData>
+<name>Aggregate TAE with Invalid Configuration Parameters</name>
+<description>For testing configuration parameters.</description><version>1.0</version>
+<vendor>The Apache Software Foundation</vendor>
+
+<!-- Configuration Parameter Definitions -->
+<configurationParameters>
+
+ <!-- ERROR - No overrides -->
+ <configurationParameter>
+ <name>AggregateParam</name>
+ <description/>
+ <type>String</type>
+ <overrides>
+ </overrides>
+ </configurationParameter>
+</configurationParameters>
+
+
+<flowConstraints>
+ <fixedFlow>
+ <node>Annotator1</node>
+ <node>Annotator2</node>
+ </fixedFlow>
+</flowConstraints>
+
+<!-- Capabilities: Inputs and Outputs -->
+<capabilities>
+<capability>
+<inputs/>
+<outputs/>
+<languagesSupported/>
+</capability>
+</capabilities>
+
+</analysisEngineMetaData>
+</taeDescription>
Modified: uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/testExternalOverride.settings
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/testExternalOverride.settings?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/testExternalOverride.settings (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/testExternalOverride.settings Tue Jun 5 17:20:18 2012
@@ -1,2 +1,5 @@
-import-prefix prefix_from_import
+prefix Prefix
+suffix Suffix
+test.externalStringArray = [${prefix},\-,${suffix},->,${prefix-suffix}]
+test.externalIntegerArray : [1 , 22 , 3\33,4444]
Modified: uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/testExternalOverride2.settings
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/testExternalOverride2.settings?rev=1346479&r1=1346478&r2=1346479&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/testExternalOverride2.settings (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/testExternalOverride2.settings Tue Jun 5 17:20:18 2012
@@ -1,6 +1,5 @@
-# Note: since this is imported by name its name cannot contain any periods (.) as they are converted to slash (/)
-import-value prefix_from_import-${inline-suffix}
+prefix-suffix Prefix-${suffix}
# The following key should have already been set by an earlier import
-inline-suffix = should be ignored
+suffix = should be ignored
# Empty array
test.externalFloatArray = []