From 2074ab2e8b4416126542c09205d3ca6646ed6718 Mon Sep 17 00:00:00 2001 From: vempo Date: Sun, 28 Oct 2018 14:45:46 +0200 Subject: Removed support of dynamic configuration Configuration framework will not poll configuration for changes, and will not notify client code of them. Also minor cleanup, added unit tests. Change-Id: I428b23f7acb13c6610390f46aae6e011d6b0ee80 Issue-ID: SDC-1867 Signed-off-by: vempo --- .../org/onap/config/impl/CliConfigurationImpl.java | 161 +-------------------- 1 file changed, 3 insertions(+), 158 deletions(-) (limited to 'common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/CliConfigurationImpl.java') diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/CliConfigurationImpl.java b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/CliConfigurationImpl.java index 7f753fd1fd..77d0c11c9f 100644 --- a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/CliConfigurationImpl.java +++ b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/CliConfigurationImpl.java @@ -16,17 +16,13 @@ package org.onap.config.impl; -import static org.onap.config.Constants.DB_NAMESPACE; import static org.onap.config.Constants.DEFAULT_NAMESPACE; import static org.onap.config.Constants.DEFAULT_TENANT; -import static org.onap.config.Constants.KEY_ELEMENTS_DELIMETER; import static org.onap.config.Constants.LOAD_ORDER_KEY; import static org.onap.config.Constants.MBEAN_NAME; import static org.onap.config.Constants.MODE_KEY; import static org.onap.config.Constants.NAMESPACE_KEY; -import java.io.File; -import java.io.PrintWriter; import java.lang.management.ManagementFactory; import java.lang.reflect.Method; import java.util.ArrayList; @@ -39,22 +35,12 @@ import java.util.Iterator; import java.util.Map; import java.util.Set; import javax.management.MBeanServer; -import javax.management.MBeanServerDelegate; -import javax.management.MBeanServerNotification; -import javax.management.Notification; import javax.management.ObjectName; import javax.management.StandardMBean; -import org.apache.commons.configuration2.CombinedConfiguration; -import org.apache.commons.configuration2.CompositeConfiguration; -import org.apache.commons.configuration2.Configuration; -import org.apache.commons.configuration2.FileBasedConfiguration; -import org.apache.commons.configuration2.PropertiesConfiguration; import org.onap.config.ConfigurationUtils; -import org.onap.config.Constants; import org.onap.config.api.ConfigurationManager; import org.onap.config.api.Hint; import org.onap.config.type.ConfigurationQuery; -import org.onap.config.type.ConfigurationUpdate; public final class CliConfigurationImpl extends ConfigurationImpl implements ConfigurationManager { @@ -65,27 +51,6 @@ public final class CliConfigurationImpl extends ConfigurationImpl implements Con mbs.unregisterMBean(name); } mbs.registerMBean(new StandardMBean(this, ConfigurationManager.class), name); - mbs.addNotificationListener(MBeanServerDelegate.DELEGATE_NAME, - (notification, handback) -> handleNotification(notification), null, null); - } - - public void handleNotification(Notification notification) { - if (notification instanceof MBeanServerNotification) { - MBeanServerNotification mbs = (MBeanServerNotification) notification; - if (MBeanServerNotification.UNREGISTRATION_NOTIFICATION.equals(mbs.getType())) { - try { - String mbean = ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, DB_NAMESPACE) - .getString("shutdown.mbean"); - if (mbs.getMBeanName().equals(mbean == null ? new ObjectName(MBEAN_NAME) : new ObjectName(mbean))) { - changeNotifier.shutdown(); - } - } catch (Exception exception) { - //do nothing. - } - } else if (MBeanServerNotification.REGISTRATION_NOTIFICATION.equals(mbs.getType())) { - mbs.getMBeanName(); - } - } } public String getConfigurationValue(Map input) { @@ -116,7 +81,9 @@ public final class CliConfigurationImpl extends ConfigurationImpl implements Con } private Object getInput(Map input) { + Object toReturn = null; + try { toReturn = Class.forName(input.get("ImplClass").toString()).newInstance(); Method[] methods = toReturn.getClass().getMethods(); @@ -132,111 +99,6 @@ public final class CliConfigurationImpl extends ConfigurationImpl implements Con return toReturn; } - public void updateConfigurationValue(Map input) { - updateConfigurationValue((ConfigurationUpdate) getInput(input)); - } - - private void updateConfigurationValue(ConfigurationUpdate updateData) { - - try { - if (!ConfigurationRepository.lookup().isValidTenant(updateData.getTenant())) { - throw new RuntimeException("Invalid tenantId."); - } - if (!ConfigurationRepository.lookup().isValidNamespace(updateData.getNamespace())) { - throw new RuntimeException("Invalid Namespace."); - } - } catch (NullPointerException e1) { - e1.printStackTrace(); - } - - try { - boolean keyPresent = isKeyExists(updateData.getTenant(), updateData.getNamespace(), updateData.getKey()); - if (keyPresent) { - boolean isUpdated = false; - Object[] paramArray = - new Object[] {updateData.getTenant() + KEY_ELEMENTS_DELIMETER + updateData.getNamespace(), - System.currentTimeMillis(), updateData.getKey(), getConfigurationValue(updateData), - updateData.getValue()}; - Configuration config = ConfigurationRepository.lookup() - .getConfigurationFor(updateData.getTenant(), updateData.getNamespace()); - if (config instanceof AgglomerateConfiguration || config instanceof CombinedConfiguration) { - CompositeConfiguration cc = new CompositeConfiguration(); - cc.addConfiguration(config); - config = cc; - } - CompositeConfiguration configuration = (CompositeConfiguration) config; - int overrideIndex = -1; - for (int i = 0; i < configuration.getNumberOfConfigurations(); i++) { - if (!updateData.isNodeOverride() && ( - configuration.getConfiguration(i) instanceof AgglomerateConfiguration - || configuration.getConfiguration(i) instanceof CombinedConfiguration)) { - configuration.getConfiguration(i).setProperty(updateData.getKey(), updateData.getValue()); - isUpdated = true; - break; - } else if (updateData.isNodeOverride() && configuration.getConfiguration( - i) instanceof FileBasedConfiguration) { - configuration.getConfiguration(i).setProperty(updateData.getKey(), updateData.getValue()); - isUpdated = true; - overrideIndex = i; - break; - } - } - if (!isUpdated) { - if (updateData.isNodeOverride()) { - PropertiesConfiguration pc = new PropertiesConfiguration(); - pc.setProperty(NAMESPACE_KEY, - updateData.getTenant() + Constants.TENANT_NAMESPACE_SEPARATOR - + updateData.getNamespace()); - pc.setProperty(MODE_KEY, "OVERRIDE"); - pc.setProperty(updateData.getKey(), updateData.getValue()); - String nodeConfigLocation = System.getProperty("node.config.location"); - if (nodeConfigLocation != null && nodeConfigLocation.trim().length() > 0) { - File file = new File(nodeConfigLocation, - updateData.getTenant() + File.separator + updateData.getNamespace() + File.separator - + "config.properties"); - file.getParentFile().mkdirs(); - PrintWriter out = new PrintWriter(file); - pc.write(out); - out.close(); - ConfigurationRepository.lookup().populateOverrideConfiguration( - updateData.getTenant() + KEY_ELEMENTS_DELIMETER + updateData.getNamespace(), file); - } - } else { - configuration.getConfiguration(0).setProperty(updateData.getKey(), updateData.getValue()); - } - } - if (updateData.isNodeOverride()) { - ConfigurationRepository.lookup().refreshOverrideConfigurationFor( - updateData.getTenant() + KEY_ELEMENTS_DELIMETER + updateData.getNamespace(), overrideIndex); - } - } - } catch (Exception exception) { - exception.printStackTrace(); - } - } - - private boolean isKeyExists(String tenant, String namespace, String key) { - boolean keyExist = false; - try { - keyExist = ConfigurationRepository.lookup().getConfigurationFor(tenant, namespace).containsKey(key); - if (!keyExist && !DEFAULT_TENANT.equals(tenant)) { - keyExist = ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, namespace) - .containsKey(key); - } - if (!keyExist && !DEFAULT_NAMESPACE.equals(namespace)) { - keyExist = ConfigurationRepository.lookup().getConfigurationFor(tenant, DEFAULT_NAMESPACE) - .containsKey(key); - } - if (!keyExist && !DEFAULT_TENANT.equals(tenant) && !DEFAULT_NAMESPACE.equals(namespace)) { - keyExist = ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, DEFAULT_NAMESPACE) - .containsKey(key); - } - } catch (Exception exception) { - exception.printStackTrace(); - } - return keyExist; - } - public Map listConfiguration(Map input) { return listConfiguration((ConfigurationQuery) getInput(input)); } @@ -256,6 +118,7 @@ public final class CliConfigurationImpl extends ConfigurationImpl implements Con } private ArrayList getInMemoryKeys(String tenant, String namespace) { + ArrayList keys = new ArrayList<>(); try { @@ -273,24 +136,6 @@ public final class CliConfigurationImpl extends ConfigurationImpl implements Con return keys; } - @Override - public boolean updateConfigurationValues(String tenant, String namespace, Map configKeyValueStore) { - boolean valueToReturn = true; - for (String s : (Iterable) configKeyValueStore.keySet()) { - try { - String key = s; - ConfigurationUpdate updateData = new ConfigurationUpdate(); - updateData.tenant(tenant).namespace(namespace).key(key); - updateData.value(configKeyValueStore.get(key).toString()); - updateConfigurationValue(updateData); - } catch (Exception exception) { - exception.printStackTrace(); - valueToReturn = false; - } - } - return valueToReturn; - } - @Override public Collection getTenants() { return ConfigurationRepository.lookup().getTenants(); -- cgit 1.2.3-korg