This is an automated email from the ASF dual-hosted git repository. rec pushed a commit to branch UIMA-6188-uimaFIT-initializes-resources-with-parameter-values-originating-from-component in repository https://gitbox.apache.org/repos/asf/uima-uimafit.git
commit 0b9fce9ddd890d37dc522180c77a17be7b25fb21 Author: Richard Eckart de Castilho <r...@apache.org> AuthorDate: Mon Feb 10 18:01:54 2020 +0100 [UIMA-6188] uimaFIT initializes resources with parameter values originating from component - Only pass the ResourceManger on, but not the entire UIMA context --- .../ConfigurationParameterInitializer.java | 38 ++++++++++++---------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/uimafit-core/src/main/java/org/apache/uima/fit/component/initialize/ConfigurationParameterInitializer.java b/uimafit-core/src/main/java/org/apache/uima/fit/component/initialize/ConfigurationParameterInitializer.java index 81ff354..6b2f31a 100644 --- a/uimafit-core/src/main/java/org/apache/uima/fit/component/initialize/ConfigurationParameterInitializer.java +++ b/uimafit-core/src/main/java/org/apache/uima/fit/component/initialize/ConfigurationParameterInitializer.java @@ -6,9 +6,9 @@ * 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 @@ -85,6 +85,7 @@ public final class ConfigurationParameterInitializer { * or to not provide one at all. If the context does not have a configuration parameter, then the * default value provided by the developer as specified by the defaultValue element of the * {@link ConfigurationParameter} will be used. See comments in the code for additional details. + * * @param component * the component to initialize. * @param context @@ -157,8 +158,8 @@ public final class ConfigurationParameterInitializer { // } if (empty) { // Use bind error processor to create FieldError. - getBindingErrorProcessor() - .processMissingFieldError(field, getInternalBindingResult()); + getBindingErrorProcessor().processMissingFieldError(field, + getInternalBindingResult()); // Remove property from property values to bind: // It has already caused a field error with a rejected value. if (pv != null) { @@ -173,9 +174,9 @@ public final class ConfigurationParameterInitializer { binder.initDirectFieldAccess(); registerUimaFITEditors(binder); binder.setRequiredFields(mandatoryValues.toArray(new String[mandatoryValues.size()])); - + binder.bind(values); - + if (binder.getBindingResult().hasErrors()) { StringBuilder sb = new StringBuilder(); sb.append("Errors initializing [" + component.getClass() + "]"); @@ -191,7 +192,7 @@ public final class ConfigurationParameterInitializer { /** * Initialize a component from a map. - * + * * @param component * the component to initialize. * @param map @@ -202,18 +203,19 @@ public final class ConfigurationParameterInitializer { */ public static void initialize(final Object component, final Map<String, Object> map) throws ResourceInitializationException { - // If there is already a UimaContext then re-use that, otherwise create a new one. - UimaContextAdmin context; + // If there is already a ResourceManager then re-use that, otherwise create a new one. + ResourceManager resMgr; if (component instanceof Resource) { - context = ((Resource) component).getUimaContextAdmin(); + resMgr = ((Resource) component).getResourceManager(); } else { - ResourceManager resMgr = newResourceManager(); - context = newUimaContext(getLogger(), resMgr, newConfigurationManager()); + resMgr = newResourceManager(); } + UimaContextAdmin context = newUimaContext(getLogger(), resMgr, newConfigurationManager()); + ConfigurationManager cfgMgr = context.getConfigurationManager(); cfgMgr.setSession(context.getSession()); - + for (Entry<String, Object> e : map.entrySet()) { cfgMgr.setConfigParameterValue(context.getQualifiedContextName() + e.getKey(), e.getValue()); } @@ -223,7 +225,7 @@ public final class ConfigurationParameterInitializer { /** * Initialize a component from a {@link CustomResourceSpecifier}. - * + * * @param component * the component to initialize. * @param spec @@ -239,7 +241,7 @@ public final class ConfigurationParameterInitializer { /** * Initialize a component from a {@link CustomResourceSpecifier}. - * + * * @param component * the component to initialize. * @param parameters @@ -259,7 +261,7 @@ public final class ConfigurationParameterInitializer { /** * Initialize a component from a {@link ResourceMetaData}. - * + * * @param component * the component to initialize. * @param parameters @@ -279,7 +281,7 @@ public final class ConfigurationParameterInitializer { /** * Initialize a component from a {@link ResourceMetaData}. - * + * * @param component * the component to initialize. * @param dataResource @@ -294,7 +296,7 @@ public final class ConfigurationParameterInitializer { ConfigurationParameterSettings settings = metaData.getConfigurationParameterSettings(); initialize(component, settings.getParameterSettings()); } - + public static void initialize(Object component, Object... aParameters) throws ResourceInitializationException { ConfigurationData configurationData = createConfigurationData(aParameters);