1 package org.openecomp.config.api;
4 import java.lang.reflect.InvocationTargetException;
5 import java.lang.reflect.Proxy;
6 import java.util.Collection;
8 import java.util.ServiceLoader;
11 * The interface Configuration manager.
13 public interface ConfigurationManager extends Configuration {
16 * The constant config.
18 public static final Configuration config = lookup();
21 * Lookup configuration.
23 * @return the configuration
25 public static Configuration lookup() {
27 ServiceLoader<ConfigurationManager> loader = ServiceLoader.load(ConfigurationManager.class);
28 for (ConfigurationManager configuration : loader) {
29 return (Configuration) Proxy.newProxyInstance(ConfigurationManager.class.getClassLoader(),
30 new Class[]{Configuration.class}, (object, method, args) -> {
32 return method.invoke(configuration, args);
33 } catch (InvocationTargetException ite) {
34 throw ite.getTargetException();
43 * Gets configuration value.
45 * @param queryData the query data
46 * @return the configuration value
48 public String getConfigurationValue(Map<String, Object> queryData);
51 * Update configuration value.
53 * @param updateData the update data
55 public void updateConfigurationValue(Map<String, Object> updateData);
58 * List configuration map.
60 * @param query the query
63 public Map<String, String> listConfiguration(Map<String, Object> query);
66 * Update configuration values boolean.
68 * @param tenant the tenant
69 * @param namespace the namespace
70 * @param configKeyValueStore the config key value store
73 public boolean updateConfigurationValues(String tenant, String namespace,
74 Map configKeyValueStore);
81 public Collection<String> getTenants();
86 * @return the namespaces
88 public Collection<String> getNamespaces();
93 * @param tenant the tenant
94 * @param namespace the namespace
97 public Collection<String> getKeys(String tenant, String namespace);