diff options
author | vempo <vitaliy.emporopulo@amdocs.com> | 2018-10-28 19:04:06 +0200 |
---|---|---|
committer | Vitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com> | 2018-10-28 19:05:11 +0000 |
commit | 8b7a0405a97cacf765c0e9a1988af98cd91a9f67 (patch) | |
tree | aa100b988d6e974089609caa27863667353a7860 /common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java | |
parent | 2074ab2e8b4416126542c09205d3ca6646ed6718 (diff) |
Handled not thread-safe fields in configuration
Replaced not thread-safe fields with synchornized versions,
removed duplicate code, deleted class that was accessing DB,
made surefire plugin to pick up all available unit tests
(instead of hand-picked).
Change-Id: Idff3ac333dc87ebfd3ecf50438ba0179556eb9c9
Issue-ID: SDC-1867
Signed-off-by: vempo <vitaliy.emporopulo@amdocs.com>
Diffstat (limited to 'common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java')
-rw-r--r-- | common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java index 132043d5b5..5b950d1af6 100644 --- a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java +++ b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java @@ -20,6 +20,7 @@ import java.io.File; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; @@ -38,10 +39,14 @@ public final class ConfigurationRepository { private static final ConfigurationRepository repo = new ConfigurationRepository(); - private final Set<String> tenants = new HashSet<>(); - private final Set<String> namespaces = new HashSet<>(); - private final LinkedHashMap<String, ConfigurationHolder> store = + private final Set<String> tenants = Collections.synchronizedSet(new HashSet<>()); + + private final Set<String> namespaces = Collections.synchronizedSet(new HashSet<>()); + + private final Map<String, ConfigurationHolder> store = Collections.synchronizedMap( + new LinkedHashMap<String, ConfigurationHolder>(16, 0.75f, true) { + @Override protected boolean removeEldestEntry(Map.Entry eldest) { try { @@ -51,7 +56,8 @@ public final class ConfigurationRepository { return false; } } - }; + }); + private ConfigurationRepository() { tenants.add(Constants.DEFAULT_TENANT); @@ -80,13 +86,8 @@ public final class ConfigurationRepository { } public Configuration getConfigurationFor(String tenant, String namespace) throws Exception { - ConfigurationHolder config; String module = tenant + Constants.KEY_ELEMENTS_DELIMITER + namespace; - config = store.get(module); - if (config == null) { - config = new ConfigurationHolder(new BasicConfigurationBuilder<>(AgglomerateConfiguration.class)); - store.put(module, config); - } + ConfigurationHolder config = store.get(module); return config.getConfiguration(tenant + Constants.KEY_ELEMENTS_DELIMITER + namespace); } |