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 2018/07/10 14:32:06 UTC
incubator-tamaya-extensions git commit: TAMAYA-336 Now forwarding
target config instance.
Repository: incubator-tamaya-extensions
Updated Branches:
refs/heads/master 396f1a738 -> 54351ccb3
TAMAYA-336 Now forwarding target config instance.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/commit/54351ccb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/54351ccb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/54351ccb
Branch: refs/heads/master
Commit: 54351ccb3df31da60db456b18491533bd2b8b5b6
Parents: 396f1a7
Author: Anatole Tresch <at...@gmail.com>
Authored: Tue Jul 10 16:31:56 2018 +0200
Committer: Anatole Tresch <at...@gmail.com>
Committed: Tue Jul 10 16:31:56 2018 +0200
----------------------------------------------------------------------
.../ConfigTemplateInvocationHandler.java | 5 ++--
.../internal/DefaultConfigurationInjector.java | 2 +-
.../tamaya/inject/TamayaInjectionTest.java | 30 +++++++++++++++++++-
3 files changed, 33 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/54351ccb/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfigTemplateInvocationHandler.java
----------------------------------------------------------------------
diff --git a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfigTemplateInvocationHandler.java b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfigTemplateInvocationHandler.java
index fd9f7be..e7a9318 100644
--- a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfigTemplateInvocationHandler.java
+++ b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfigTemplateInvocationHandler.java
@@ -37,23 +37,24 @@ public final class ConfigTemplateInvocationHandler implements InvocationHandler
* The configured type.
*/
private final ConfiguredType type;
+ private Configuration config;
/**
* Creates a new handler instance.
*
* @param type the target type, not null.
*/
- public ConfigTemplateInvocationHandler(Class<?> type) {
+ public ConfigTemplateInvocationHandler(Class<?> type, Configuration config) {
this.type = new ConfiguredTypeImpl(Objects.requireNonNull(type));
if (!type.isInterface()) {
throw new IllegalArgumentException("Can only proxy interfaces as configuration templates.");
}
+ this.config = Objects.requireNonNull(config);
InjectionHelper.sendConfigurationEvent(this.type);
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
- Configuration config = ConfigurationProvider.getConfiguration();
if ("toString".equals(method.getName())) {
return "Configured Proxy -> " + this.type.getType().getName();
} else if ("hashCode".equals(method.getName())) {
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/54351ccb/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
----------------------------------------------------------------------
diff --git a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
index 7b3fb61..01a09e9 100644
--- a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
+++ b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
@@ -162,7 +162,7 @@ public class DefaultConfigurationInjector implements ConfigurationInjector {
cl = this.getClass().getClassLoader();
}
return templateType.cast(Proxy.newProxyInstance(cl, new Class[]{Supplier.class, Objects.requireNonNull(templateType)},
- new ConfigTemplateInvocationHandler(templateType)));
+ new ConfigTemplateInvocationHandler(templateType, config)));
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/54351ccb/modules/injection/standalone/src/test/java/org/apache/tamaya/inject/TamayaInjectionTest.java
----------------------------------------------------------------------
diff --git a/modules/injection/standalone/src/test/java/org/apache/tamaya/inject/TamayaInjectionTest.java b/modules/injection/standalone/src/test/java/org/apache/tamaya/inject/TamayaInjectionTest.java
index b95d491..61e3d43 100644
--- a/modules/injection/standalone/src/test/java/org/apache/tamaya/inject/TamayaInjectionTest.java
+++ b/modules/injection/standalone/src/test/java/org/apache/tamaya/inject/TamayaInjectionTest.java
@@ -22,8 +22,14 @@ import annottext.AnnotatedConfigBean;
import annottext.AnnotatedConfigTemplate;
import annottext.InheritedAnnotatedConfigBean;
import annottext.NonAnnotatedConfigBean;
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.apache.tamaya.spisupport.propertysource.MapPropertySource;
import org.junit.Test;
+import java.util.HashMap;
+import java.util.Map;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -105,7 +111,29 @@ public class TamayaInjectionTest {
assertTrue(testInstance.getDynamicValue().isPresent());
assertEquals(testInstance.getDynamicValue().get(), "tamaya01.incubator.apache.org");
assertEquals(testInstance.hostName(), testInstance.getDynamicValue().get());
-// assertEquals(testInstance.simplestValue(), "HALLO!");
+ }
+
+ @Test
+ public void testConfigTemplate_WithCustomConfig(){
+ Map<String,String> properties = new HashMap<>();
+ properties.put("env.stage", "custom-stage");
+ properties.put("simple_value", "custom-value");
+ properties.put("host.name", "custom-hostname");
+ properties.put("anotherValue", "custom-HALLO!");
+ properties.put("foo.bar.myprop", "custom-parameter");
+ MapPropertySource ps = new MapPropertySource("test", properties);
+ Configuration customConfig = ConfigurationProvider.getConfigurationBuilder()
+ .addPropertySources(ps).build();
+ assertNotNull(ConfigurationInjection.getConfigurationInjector());
+ AnnotatedConfigTemplate testInstance = ConfigurationInjection.getConfigurationInjector()
+ .createTemplate(AnnotatedConfigTemplate.class, customConfig);
+ assertEquals(testInstance.hostName(), "custom-hostname");
+ assertEquals(testInstance.myParameter(), "custom-parameter");
+ assertEquals(testInstance.simpleValue(), "custom-value");
+ assertNotNull(testInstance.getDynamicValue());
+ assertTrue(testInstance.getDynamicValue().isPresent());
+ assertEquals(testInstance.getDynamicValue().get(), "custom-hostname");
+ assertEquals(testInstance.hostName(), testInstance.getDynamicValue().get());
}
}