You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2015/01/05 21:02:35 UTC
[3/3] incubator-tamaya git commit: TAMAYA-42: - Added direct
reference from Configuration to the ConfigurationContext (merged). - Added
repeatable filter resolutions (currently by default max. 10 cycles are
performed).
TAMAYA-42:
- Added direct reference from Configuration to the ConfigurationContext (merged).
- Added repeatable filter resolutions (currently by default max. 10 cycles are performed).
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/b9876572
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/b9876572
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/b9876572
Branch: refs/heads/master
Commit: b98765721948c57dfa01c4597ac512938ede2724
Parents: a830f38
Author: anatole <an...@apache.org>
Authored: Mon Jan 5 21:02:23 2015 +0100
Committer: anatole <an...@apache.org>
Committed: Mon Jan 5 21:02:23 2015 +0100
----------------------------------------------------------------------
.../core/internal/DefaultConfiguration.java | 22 +++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/b9876572/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java b/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
index 47828a3..d6e25ca 100644
--- a/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
+++ b/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
@@ -77,6 +77,12 @@ public class DefaultConfiguration implements Configuration {
return Optional.ofNullable(applyFilter(key, unfilteredValue));
}
+ /**
+ * Apply filters to a single property value.
+ * @param key the key, used for logging, not null.
+ * @param unfilteredValue the unfiltered property value.
+ * @return the filtered value, or null.
+ */
private String applyFilter(String key, String unfilteredValue) {
// Apply filters to values, prevent values filtered to null!
for(int i=0; i<MAX_FILTER_LOOPS;i++) {
@@ -116,6 +122,11 @@ public class DefaultConfiguration implements Configuration {
return unfilteredValue;
}
+ /**
+ * Get the current properties, composed by the loaded {@link org.apache.tamaya.spi.PropertySource} and filtered
+ * by registered {@link org.apache.tamaya.spi.PropertyFilter}.
+ * @return the final properties.
+ */
@Override
public Map<String, String> getProperties() {
List<PropertySource> propertySources = new ArrayList<>(configurationContext.getPropertySources());
@@ -136,12 +147,17 @@ public class DefaultConfiguration implements Configuration {
return applyFilters(result);
}
- private Map<String, String> applyFilters(Map<String, String> result) {
+ /**
+ * Filter a full configuration property map.
+ * @param inputMap the unfiltered map
+ * @return the filtered map.
+ */
+ private Map<String, String> applyFilters(Map<String, String> inputMap) {
// Apply filters to values, prevent values filtered to null!
for(int i=0; i<MAX_FILTER_LOOPS;i++) {
AtomicInteger changes = new AtomicInteger();
for (PropertyFilter filter : configurationContext.getPropertyFilters()) {
- result.replaceAll((k, v) -> {
+ inputMap.replaceAll((k, v) -> {
String newValue = filter.filterProperty(k, v,
(String k2) -> k2.equals(k) ? v : get(k2).orElse(null));
if (newValue != null && !newValue.equals(v)) {
@@ -171,7 +187,7 @@ public class DefaultConfiguration implements Configuration {
}
}
// Remove null values
- return result.entrySet().parallelStream().filter((e) -> e.getValue() != null).collect(
+ return inputMap.entrySet().parallelStream().filter((e) -> e.getValue() != null).collect(
Collectors.toMap((e) -> e.getKey(), (e) -> e.getValue()));
}