aboutsummaryrefslogtreecommitdiffstats
path: root/common/onap-common-configuration-management/onap-configuration-management-api/src/main/java/org/onap/config/api/ConfigurationManager.java
diff options
context:
space:
mode:
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.java114
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);
}