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 2014/12/20 15:31:09 UTC
[4/5] incubator-tamaya git commit: Merge remote-tracking branch
'origin/master'
Merge remote-tracking branch 'origin/master'
Conflicts:
api/src/main/java/org/apache/tamaya/Codec.java
api/src/main/java/org/apache/tamaya/annotation/WithCodec.java
api/src/test/java/org/apache/tamaya/TestConfigServiceSingletonSpi.java
api/src/test/java/org/apache/tamaya/TestPropertyAdaptersSingletonSpi.java
core/src/main/java/org/apache/tamaya/core/config/MappedConfiguration.java
core/src/main/java/org/apache/tamaya/core/internal/config/DefaultConfigurationManagerSingletonSpi.java
core/src/main/java/org/apache/tamaya/core/internal/inject/ConfigTemplateInvocationHandler.java
core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredField.java
core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredInstancesManager.java
core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredMethod.java
core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredType.java
core/src/main/java/org/apache/tamaya/core/internal/properties/DefaultPropertyAdaptersSingletonSpi.java
core/src/main/java/org/apache/tamaya/core/spi/AdapterProviderSpi.java
core/src/main/java/org/apache/tamaya/core/spi/PropertyAdapterService.java
core/src/test/java/org/apache/tamaya/core/config/MutableConfigTest.java
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/f8c91031
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/f8c91031
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/f8c91031
Branch: refs/heads/master
Commit: f8c9103103680bb905c95d38c32bf7f07607911f
Parents: c9e62e2 31161df
Author: anatole <an...@apache.org>
Authored: Sat Dec 20 15:29:49 2014 +0100
Committer: anatole <an...@apache.org>
Committed: Sat Dec 20 15:29:49 2014 +0100
----------------------------------------------------------------------
.../java/org/apache/tamaya/Configuration.java | 2 +-
.../org/apache/tamaya/EnvironmentManager.java | 6 +--
.../spi/DefaultServiceContextProvider.java | 6 +--
.../spi/EnvironmentManagerSingletonSpi.java | 2 -
.../tamaya/TestEnvironmentManagerSingleton.java | 6 ---
.../core/config/AbstractConfiguration.java | 15 +++---
.../core/config/ConfigurationBuilder.java | 19 ++++---
.../tamaya/core/config/MappedConfiguration.java | 19 ++++---
.../tamaya/core/env/BuildableEnvironment.java | 1 -
.../core/env/ConfiguredSystemProperties.java | 31 ++++++++----
.../org/apache/tamaya/core/internal/Utils.java | 3 +-
...DefaultConfigurationManagerSingletonSpi.java | 50 +++++++++---------
.../config/WeakConfigListenerManager.java | 20 --------
.../internal/el/SystemPropertyResolver.java | 5 +-
...DependentApplicationEnvironmentProvider.java | 27 +++++-----
...ssLoaderDependentEarEnvironmentProvider.java | 4 +-
.../env/InitialEnvironmentProvider.java | 13 +++--
.../internal/env/SingleEnvironmentManager.java | 1 -
.../core/internal/format/PropertiesFormat.java | 1 +
.../internal/format/PropertiesXmlFormat.java | 3 +-
.../internal/inject/ConfigurationInjector.java | 3 +-
.../core/internal/logging/Log4j2Logger.java | 2 +-
.../core/internal/resources/io/ClassUtils.java | 12 ++---
.../resources/io/InputStreamResource.java | 1 -
.../core/internal/resources/io/StringUtils.java | 8 ---
.../core/properties/AbstractPropertySource.java | 15 ++++--
.../properties/DelegatingPropertySource.java | 1 -
.../core/properties/FreezedPropertySource.java | 14 ++++--
.../properties/IntersectingPropertySource.java | 7 +--
.../properties/PathBasedPropertySource.java | 3 +-
.../core/properties/PropertySourceBuilder.java | 22 ++++----
.../core/properties/PropertySourceFactory.java | 19 ++++---
.../properties/ReplacingPropertySource.java | 1 -
.../core/properties/URLBasedPropertySource.java | 3 +-
.../apache/tamaya/core/resource/Resource.java | 2 -
.../tamaya/core/spi/EnvironmentProvider.java | 5 +-
...tionManagerSingletonSpiSingletonSpiTest.java | 5 +-
.../java/org/apache/tamaya/JavaOneDemo.java | 12 ++---
.../env/ConfiguredSystemPropertiesTest.java | 7 ++-
.../internal/MutableTestConfigProvider.java | 16 +++---
.../samples/annotations/ConfiguredTest.java | 9 ++--
.../simple/SimplePropertiesAndCLISample.java | 13 ++---
.../apache/tamaya/ucs/UC1ReadProperties.java | 28 ++++++-----
.../apache/tamaya/ucs/UC2CombineProperties.java | 7 +--
docs/pom.xml | 53 ++++++++++++++++++--
docs/src/main/asciidoc/example/example.adoc | 15 +++++-
.../integration/cdi/ConfigurationExtension.java | 2 +-
pom.xml | 15 ++++++
48 files changed, 294 insertions(+), 240 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/api/src/main/java/org/apache/tamaya/Configuration.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/config/AbstractConfiguration.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/config/ConfigurationBuilder.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/internal/Utils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/internal/config/DefaultConfigurationManagerSingletonSpi.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/tamaya/core/internal/config/DefaultConfigurationManagerSingletonSpi.java
index e3e0bba,d3551e7..d4d2f1d
--- a/core/src/main/java/org/apache/tamaya/core/internal/config/DefaultConfigurationManagerSingletonSpi.java
+++ b/core/src/main/java/org/apache/tamaya/core/internal/config/DefaultConfigurationManagerSingletonSpi.java
@@@ -18,24 -18,29 +18,38 @@@
*/
package org.apache.tamaya.core.internal.config;
- import org.apache.tamaya.*;
+ import java.lang.reflect.Proxy;
+ import java.util.ArrayList;
+ import java.util.Collections;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Optional;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.function.Consumer;
+ import java.util.function.Predicate;
+
+ import org.apache.tamaya.AggregationPolicy;
+ import org.apache.tamaya.ConfigChangeSet;
+ import org.apache.tamaya.ConfigException;
+ import org.apache.tamaya.Configuration;
+ import org.apache.tamaya.PropertySource;
import org.apache.tamaya.core.internal.el.DefaultExpressionEvaluator;
+import org.apache.tamaya.core.internal.inject.ConfigTemplateInvocationHandler;
import org.apache.tamaya.core.internal.inject.ConfigurationInjector;
import org.apache.tamaya.core.properties.PropertySourceBuilder;
import org.apache.tamaya.core.spi.ConfigurationProviderSpi;
import org.apache.tamaya.core.spi.ExpressionEvaluator;
+
- import org.apache.tamaya.spi.ServiceContext;
import org.apache.tamaya.spi.ConfigurationManagerSingletonSpi;
+ import org.apache.tamaya.spi.ServiceContext;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Proxy;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Consumer;
+import java.util.function.Predicate;
+
/**
* Default SPI that implements the behaviour of {@link org.apache.tamaya.spi.ConfigurationManagerSingletonSpi}.
@@@ -72,34 -93,28 +87,20 @@@ public class DefaultConfigurationManage
}
/**
- * Creates a proxy implementing the given target interface.
*
- * @param config the configuration to be used for providing values.
- * @param type the target interface.
- * @param <T> the target interface type.
- * @return the corresponding implementing proxy, never null.
+ * @param instance the instance with configuration annotations, not null.
+ * @param configurations the configurations to be used for evaluating the values for injection into {@code instance}.
+ * If no items are passed, the default configuration is used.
*/
- private <T> T createAdapterProxy(Configuration config, Class<T> type) {
- ClassLoader cl = Optional.ofNullable(Thread.currentThread()
- .getContextClassLoader()).orElse(getClass().getClassLoader());
- return (T) Proxy.newProxyInstance(cl, new Class[]{type}, new ConfigTemplateInvocationHandler(type, config));
- }
-
@Override
- public void configure(Object instance) {
- ConfigurationInjector.configure(instance);
+ public void configure(Object instance, Configuration... configurations) {
+ ConfigurationInjector.configure(instance, configurations);
}
- private String getConfigId(Annotation... qualifiers) {
- if (qualifiers == null || qualifiers.length == 0) {
- return "";
- }
- StringBuilder b = new StringBuilder();
- for (Annotation annot : qualifiers) {
- b.append('[');
- b.append(annot.annotationType().getName());
- b.append(':');
- b.append(annot.toString());
- b.append(']');
- }
- return b.toString();
- }
@Override
- public String evaluateValue(Configuration config, String expression) {
- return expressionEvaluator.evaluate(expression);
+ public String evaluateValue(String expression, Configuration... configurations) {
+ return expressionEvaluator.evaluate(expression, configurations);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/internal/el/SystemPropertyResolver.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/tamaya/core/internal/el/SystemPropertyResolver.java
index ef1ffc6,cf60a52..c384a1d
--- a/core/src/main/java/org/apache/tamaya/core/internal/el/SystemPropertyResolver.java
+++ b/core/src/main/java/org/apache/tamaya/core/internal/el/SystemPropertyResolver.java
@@@ -18,14 -18,13 +18,13 @@@
*/
package org.apache.tamaya.core.internal.el;
+ import java.util.Optional;
+
import org.apache.tamaya.ConfigException;
- import org.apache.tamaya.Configuration;
import org.apache.tamaya.core.spi.ExpressionResolver;
- import java.util.*;
-
/**
- * Created by Anatole on 28.09.2014.
+ * Property resolver implementation that interprets the resolver expression as system property name.
*/
public final class SystemPropertyResolver implements ExpressionResolver{
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfigurationInjector.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/tamaya/core/internal/inject/ConfigurationInjector.java
index 026b4e0,ccc8251..1345625
--- a/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfigurationInjector.java
+++ b/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfigurationInjector.java
@@@ -31,13 -30,8 +32,13 @@@ public final class ConfigurationInjecto
private static final ConfigurationInjector INSTANCE = new ConfigurationInjector();
- private Map<Class, ConfiguredType> configuredTypes = new ConcurrentHashMap<>();
+ private Map<Class, ConfiguredType> configuredTypes = new ConcurrentHashMap<>();
+ /**
+ * Extract the configuration annotation config and registers it per class, for later reuse.
+ * @param type the type to be configured.
+ * @return the configured type registered.
+ */
public static ConfiguredType registerType(Class<?> type){
if (!ConfiguredType.isConfigured(type)) {
return null;
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/internal/resources/io/ClassUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/internal/resources/io/StringUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/properties/AbstractPropertySource.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/properties/PropertySourceBuilder.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/properties/ReplacingPropertySource.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/main/java/org/apache/tamaya/core/resource/Resource.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/test/java/org/apache/tamaya/internal/MutableTestConfigProvider.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/test/java/org/apache/tamaya/samples/annotations/ConfiguredTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/test/java/org/apache/tamaya/ucs/UC1ReadProperties.java
----------------------------------------------------------------------
diff --cc core/src/test/java/org/apache/tamaya/ucs/UC1ReadProperties.java
index d794eff,61785ac..80ec280
--- a/core/src/test/java/org/apache/tamaya/ucs/UC1ReadProperties.java
+++ b/core/src/test/java/org/apache/tamaya/ucs/UC1ReadProperties.java
@@@ -32,8 -23,19 +23,19 @@@ import static org.junit.Assert.assertEq
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
+ import java.util.Map;
+ import java.util.stream.Collectors;
+
+ import org.apache.tamaya.AggregationPolicy;
+ import org.apache.tamaya.Configuration;
+ import org.apache.tamaya.MetaInfo;
+ import org.apache.tamaya.PropertySource;
+ import org.apache.tamaya.core.config.ConfigFunctions;
+ import org.apache.tamaya.core.properties.PropertySourceBuilder;
+ import org.junit.Test;
+
/**
- * Configuration is organized as key/value pairs. This basically can be modeled as {@code Map<String,String>}
+ * Configuration is organized as key/keys pairs. This basically can be modeled as {@code Map<String,String>}
* Configuration should be as simple as possible. A {@code Map<String,String>} instance has methods that may not
* be used in many use cases and/or are not easy to implement. Currently the following functionality
* must be supported:
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f8c91031/core/src/test/java/org/apache/tamaya/ucs/UC2CombineProperties.java
----------------------------------------------------------------------
diff --cc core/src/test/java/org/apache/tamaya/ucs/UC2CombineProperties.java
index ccb4909,73f475f..ba522a7
--- a/core/src/test/java/org/apache/tamaya/ucs/UC2CombineProperties.java
+++ b/core/src/test/java/org/apache/tamaya/ucs/UC2CombineProperties.java
@@@ -22,10 -25,8 +25,8 @@@ import org.apache.tamaya.PropertySource
import org.apache.tamaya.core.properties.PropertySourceBuilder;
import org.junit.Test;
- import static junit.framework.TestCase.assertTrue;
-
/**
- * Configuration is organized as key/value pairs. This basically can be modeled as {@code Map<String,String>}
+ * Configuration is organized as key/keys pairs. This basically can be modeled as {@code Map<String,String>}
* Configuration should be as simple as possible. Advanced use cases can often easily implemented by combining
* multiple property maps and applying hereby some combination policy. This test class demonstrates the different
* options Tamaya is providing and the according mechanisms.