diff options
Diffstat (limited to 'common/onap-common-configuration-management/onap-configuration-management-api/src/main/java/org/onap/config/api/ConfigurationManager.java')
-rw-r--r-- | common/onap-common-configuration-management/onap-configuration-management-api/src/main/java/org/onap/config/api/ConfigurationManager.java | 114 |
1 files changed, 34 insertions, 80 deletions
diff --git a/common/onap-common-configuration-management/onap-configuration-management-api/src/main/java/org/onap/config/api/ConfigurationManager.java b/common/onap-common-configuration-management/onap-configuration-management-api/src/main/java/org/onap/config/api/ConfigurationManager.java index 0e8f1409a0..d91fdb15f4 100644 --- a/common/onap-common-configuration-management/onap-configuration-management-api/src/main/java/org/onap/config/api/ConfigurationManager.java +++ b/common/onap-common-configuration-management/onap-configuration-management-api/src/main/java/org/onap/config/api/ConfigurationManager.java @@ -1,98 +1,52 @@ -package org.onap.config.api; +/* + * Copyright © 2016-2018 European Support Limited + * + * Licensed 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. + */ +package org.onap.config.api; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Proxy; import java.util.Collection; +import java.util.Iterator; import java.util.Map; import java.util.ServiceLoader; -/** - * The interface Configuration manager. - */ public interface ConfigurationManager extends Configuration { - /** - * The constant config. - */ - public static final Configuration config = lookup(); + Configuration CONFIG = lookup(); + + static Configuration lookup() { + + if (CONFIG == null) { + ServiceLoader<ConfigurationManager> loader = ServiceLoader.load(ConfigurationManager.class); + Iterator<ConfigurationManager> configManagers = loader.iterator(); + return configManagers.hasNext() ? configManagers.next() : null; + } - /** - * Lookup configuration. - * - * @return the configuration - */ - public static Configuration lookup() { - if (config == null) { - ServiceLoader<ConfigurationManager> loader = ServiceLoader.load(ConfigurationManager.class); - for (ConfigurationManager configuration : loader) { - return (Configuration) Proxy.newProxyInstance(ConfigurationManager.class.getClassLoader(), - new Class[]{Configuration.class}, (object, method, args) -> { - try { - return method.invoke(configuration, args); - } catch (InvocationTargetException ite) { - throw ite.getTargetException(); - } - }); - } + return CONFIG; } - return config; - } - /** - * Gets configuration value. - * - * @param queryData the query data - * @return the configuration value - */ - public String getConfigurationValue(Map<String, Object> queryData); + String getConfigurationValue(Map<String, Object> queryData); - /** - * Update configuration value. - * - * @param updateData the update data - */ - public void updateConfigurationValue(Map<String, Object> updateData); + void updateConfigurationValue(Map<String, Object> updateData); - /** - * List configuration map. - * - * @param query the query - * @return the map - */ - public Map<String, String> listConfiguration(Map<String, Object> query); + Map<String, String> listConfiguration(Map<String, Object> query); - /** - * Update configuration values boolean. - * - * @param tenant the tenant - * @param namespace the namespace - * @param configKeyValueStore the config key value store - * @return the boolean - */ - public boolean updateConfigurationValues(String tenant, String namespace, - Map configKeyValueStore); + boolean updateConfigurationValues(String tenant, String namespace, Map configKeyValueStore); - /** - * Gets tenants. - * - * @return the tenants - */ - public Collection<String> getTenants(); + Collection<String> getTenants(); - /** - * Gets namespaces. - * - * @return the namespaces - */ - public Collection<String> getNamespaces(); + Collection<String> getNamespaces(); - /** - * Gets keys. - * - * @param tenant the tenant - * @param namespace the namespace - * @return the keys - */ - public Collection<String> getKeys(String tenant, String namespace); + Collection<String> getKeys(String tenant, String namespace); } |