summaryrefslogtreecommitdiff
path: root/eaaf_core
diff options
context:
space:
mode:
Diffstat (limited to 'eaaf_core')
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/conf/AbstractConfigurationImpl.java4
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/conf/AbstractSpringBootConfigurationImpl.java176
2 files changed, 13 insertions, 167 deletions
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/conf/AbstractConfigurationImpl.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/conf/AbstractConfigurationImpl.java
index d279446b..8aa29e94 100644
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/conf/AbstractConfigurationImpl.java
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/conf/AbstractConfigurationImpl.java
@@ -32,11 +32,11 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import at.gv.egiz.eaaf.core.api.idp.IExtendedConfiguration;
+import at.gv.egiz.eaaf.core.api.idp.IExtendedConfigurationWithSP;
import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException;
import at.gv.egiz.eaaf.core.impl.utils.KeyValueUtils;
-public abstract class AbstractConfigurationImpl implements IExtendedConfiguration {
+public abstract class AbstractConfigurationImpl implements IExtendedConfigurationWithSP {
private static final Logger log = LoggerFactory.getLogger(AbstractConfigurationImpl.class);
private static final String URI_SCHEME_CLASSPATH = "classpath";
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/conf/AbstractSpringBootConfigurationImpl.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/conf/AbstractSpringBootConfigurationImpl.java
index 708ef399..ea2cfcd6 100644
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/conf/AbstractSpringBootConfigurationImpl.java
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/conf/AbstractSpringBootConfigurationImpl.java
@@ -19,36 +19,20 @@
package at.gv.egiz.eaaf.core.impl.idp.conf;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
import javax.annotation.PostConstruct;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.env.CompositePropertySource;
-import org.springframework.core.env.ConfigurableEnvironment;
-import org.springframework.core.env.EnumerablePropertySource;
-import org.springframework.core.env.Environment;
-import org.springframework.core.env.PropertySource;
-
import at.gv.egiz.eaaf.core.api.idp.IConfigurationWithSP;
import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException;
-import at.gv.egiz.eaaf.core.impl.utils.KeyValueUtils;
-
-public abstract class AbstractSpringBootConfigurationImpl implements IConfigurationWithSP {
- private static final Logger log = LoggerFactory.getLogger(AbstractSpringBootConfigurationImpl.class);
-
- @Autowired
- private Environment env;
+import at.gv.egiz.eaaf.core.impl.config.BasicSpringBootConfigurationImpl;
- public static final String PROP_CONFIG_ROOT_DIR = "core.configRootDir";
+/**
+ * Basic implementation with SP functionality.
+ *
+ * @author tlenz
+ *
+ */
+public abstract class AbstractSpringBootConfigurationImpl extends BasicSpringBootConfigurationImpl
+ implements IConfigurationWithSP {
@PostConstruct
private void initialize() throws EaafConfigurationException {
@@ -57,70 +41,8 @@ public abstract class AbstractSpringBootConfigurationImpl implements IConfigurat
PROP_CONFIG_ROOT_DIR) });
}
-
- }
-
- @Override
- public String getBasicConfiguration(final String key) {
- if (StringUtils.isNotEmpty(key)) {
- final String value = env.getProperty(addPrefixToKey(key));
- if (value != null) {
- return value.trim();
- }
- }
-
- return null;
- }
-
- @Override
- public String getBasicConfiguration(final String key, final String defaultValue) {
- if (StringUtils.isNotEmpty(key)) {
- final String value = env.getProperty(addPrefixToKey(key), defaultValue);
- if (value != null) {
- return value.trim();
- }
- }
-
- return defaultValue;
- }
-
- @Override
- public Map<String, String> getBasicConfigurationWithPrefix(final String prefix) {
- final Map<String, String> configProps = getPropertiesStartingWith((ConfigurableEnvironment) env,
- addPrefixToKey(prefix));
- return KeyValueUtils.removePrefixFromKeys(configProps, addPrefixToKey(prefix) + ".");
-
- }
-
- @Override
- public boolean getBasicConfigurationBoolean(final String key) {
- return getBasicConfigurationBoolean(key, false);
-
- }
-
- @Override
- public boolean getBasicConfigurationBoolean(final String key, final boolean defaultValue) {
- final String value = getBasicConfiguration(key);
- if (StringUtils.isNotEmpty(value)) {
- return Boolean.valueOf(value.trim());
- } else {
- return defaultValue;
- }
}
-
- @Override
- public URI getConfigurationRootDirectory() {
- try {
- return new URI(env.getRequiredProperty(addPrefixToKey(PROP_CONFIG_ROOT_DIR)));
-
- } catch (IllegalStateException | URISyntaxException e) {
- log.warn("ConfigRootDirectory is NOT set", e);
- return null;
-
- }
-
- }
-
+
/**
* Get the path to backup configuration.
*
@@ -128,82 +50,6 @@ public abstract class AbstractSpringBootConfigurationImpl implements IConfigurat
*/
protected abstract String getBackupConfigPath();
- /**
- * Get a specific configuration-key prefix for this software implementation.
- *
- * @return
- */
- public abstract String getApplicationSpecificKeyPrefix();
-
- private String addPrefixToKey(final String key) {
- if (StringUtils.isNotEmpty(getApplicationSpecificKeyPrefix())) {
- if (getApplicationSpecificKeyPrefix().endsWith(KeyValueUtils.KEY_DELIMITER)) {
- return getApplicationSpecificKeyPrefix() + key;
- } else {
- return getApplicationSpecificKeyPrefix() + KeyValueUtils.KEY_DELIMITER + key;
- }
-
- }
-
- return key;
-
- }
-
- private static Map<String, String> getPropertiesStartingWith(final ConfigurableEnvironment aenv,
- final String akeyPrefix) {
- final Map<String, String> result = new HashMap<>();
- final Map<String, Object> map = getAllProperties(aenv);
-
- for (final Entry<String, Object> entry : map.entrySet()) {
- final String key = entry.getKey();
-
- if (key.startsWith(akeyPrefix)) {
- result.put(key, (String) entry.getValue());
- }
- }
-
- return result;
- }
- private static Map<String, Object> getAllProperties(final ConfigurableEnvironment aenv) {
- final Map<String, Object> result = new HashMap<>();
- aenv.getPropertySources().forEach(ps -> addAll(result, getAllProperties(ps)));
- return result;
-
- }
-
- private static Map<String, Object> getAllProperties(final PropertySource<?> apropSource) {
- final Map<String, Object> result = new HashMap<>();
-
- if (apropSource instanceof CompositePropertySource) {
- final CompositePropertySource cps = (CompositePropertySource) apropSource;
- cps.getPropertySources().forEach(ps -> addAll(result, getAllProperties(ps)));
- return result;
- }
-
- if (apropSource instanceof EnumerablePropertySource<?>) {
- final EnumerablePropertySource<?> ps = (EnumerablePropertySource<?>) apropSource;
- Arrays.asList(ps.getPropertyNames()).forEach(key -> result.put(key, ps.getProperty(key)));
- return result;
- }
-
- // note: Most descendants of PropertySource are EnumerablePropertySource. There
- // are some
- // few others like JndiPropertySource or StubPropertySource
- log.trace("Given PropertySource is instanceof " + apropSource.getClass().getName()
- + " and cannot be iterated");
-
- return result;
-
- }
-
- private static void addAll(final Map<String, Object> abase, final Map<String, Object> atoBeAdded) {
- for (final Entry<String, Object> entry : atoBeAdded.entrySet()) {
- if (abase.containsKey(entry.getKey())) {
- continue;
- }
-
- abase.put(entry.getKey(), entry.getValue());
- }
- }
+
}