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/11/18 21:20:35 UTC
[17/20] incubator-tamaya-extensions git commit: TAMAYA-358 Possible
fix for failing injection of Optional.
TAMAYA-358 Possible fix for failing injection of Optional.
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/e729bd0f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/e729bd0f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/e729bd0f
Branch: refs/heads/master
Commit: e729bd0f7d8a3510a353674f45ae159101029a85
Parents: c8ba9c4
Author: Anatole Tresch <at...@gmail.com>
Authored: Fri Nov 16 01:06:46 2018 +0100
Committer: Anatole Tresch <at...@gmail.com>
Committed: Fri Nov 16 01:06:46 2018 +0100
----------------------------------------------------------------------
.../org/apache/tamaya/cdi/ConfigurationProducer.java | 2 +-
.../java/org/apache/tamaya/cdi/ConfiguredBTest.java | 5 +++++
.../java/org/apache/tamaya/cdi/ConfiguredClass.java | 15 +++++++++++++++
.../tamaya/inject/internal/ConfiguredFieldImpl.java | 2 +-
.../tamaya/inject/internal/InjectionHelper.java | 10 +++++-----
5 files changed, 27 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/e729bd0f/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ConfigurationProducer.java
----------------------------------------------------------------------
diff --git a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ConfigurationProducer.java b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ConfigurationProducer.java
index 16b3608..ee0f592 100644
--- a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ConfigurationProducer.java
+++ b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ConfigurationProducer.java
@@ -85,7 +85,7 @@ public class ConfigurationProducer {
}
String keyFound = null;
for(String key:keys) {
- textValue = config.get(key);
+ textValue = config.getOrDefault(key, null);
if(textValue!=null) {
keyFound = key;
break;
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/e729bd0f/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredBTest.java
----------------------------------------------------------------------
diff --git a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredBTest.java b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredBTest.java
index abb0721..34bfd95 100644
--- a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredBTest.java
+++ b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredBTest.java
@@ -34,6 +34,7 @@ import javax.enterprise.inject.spi.CDI;
import javax.enterprise.inject.spi.Extension;
import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -50,5 +51,9 @@ public class ConfiguredBTest extends BaseTestConfiguration {
System.out.println("********************************************");
double actual = 1234.5678;
MatcherAssert.assertThat(item.getDoubleValue(), is(actual));
+ assertTrue(item.getExistingDouble()!=null);
+ assertTrue(item.getNonExistingDouble()!=null);
+ assertTrue(item.getExistingDouble().isPresent());
+ assertFalse(item.getNonExistingDouble().isPresent());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/e729bd0f/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredClass.java
----------------------------------------------------------------------
diff --git a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredClass.java b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredClass.java
index 5d71d5d..a2dc7ce 100644
--- a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredClass.java
+++ b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredClass.java
@@ -24,6 +24,7 @@ import org.apache.tamaya.inject.api.Config;
import javax.inject.Singleton;
import java.math.BigDecimal;
+import java.util.Optional;
/**
* Class to be loaded from CDI to ensure fields are correctly configured using CDI injection mechanisms.
@@ -61,6 +62,12 @@ public class ConfiguredClass{
@Config("double1")
private double doubleValue;
+ @Config("double1")
+ private Optional<Double> existingDouble;
+
+ @Config("foo-bar")
+ private Optional<Double> nonExistingDouble;
+
public String getTestProperty() {
return testProperty;
}
@@ -101,6 +108,14 @@ public class ConfiguredClass{
return doubleValue;
}
+ public Optional<Double> getExistingDouble() {
+ return existingDouble;
+ }
+
+ public Optional<Double> getNonExistingDouble() {
+ return nonExistingDouble;
+ }
+
@Override
public String toString(){
return super.toString() + ": testProperty="+testProperty+", value1="+value1+", value2="+value2
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/e729bd0f/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredFieldImpl.java
----------------------------------------------------------------------
diff --git a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredFieldImpl.java b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredFieldImpl.java
index 6655643..32bbb89 100644
--- a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredFieldImpl.java
+++ b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredFieldImpl.java
@@ -114,7 +114,7 @@ public class ConfiguredFieldImpl implements ConfiguredField{
// Check for adapter/filter
Object value = InjectionHelper.adaptValue(this.annotatedField,
- TypeLiteral.of(this.annotatedField.getType()), retKey[0], evaluatedValue);
+ TypeLiteral.of(this.annotatedField.getGenericType()), retKey[0], evaluatedValue);
AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
@Override
public Object run() throws Exception {
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/e729bd0f/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java
----------------------------------------------------------------------
diff --git a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java
index a143498..e207819 100644
--- a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java
+++ b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java
@@ -147,7 +147,7 @@ final class InjectionHelper {
private static String evaluteConfigValue(List<String> keys, String[] retKey, Configuration config) {
String configValue = null;
for (String key : keys) {
- configValue = config.get(key);
+ configValue = config.getOrDefault(key, null);
if (configValue != null) {
if(retKey!=null && retKey.length>0){
retKey[0] = key;
@@ -184,9 +184,6 @@ final class InjectionHelper {
if (String.class == targetType.getType()) {
return (T) configValue;
} else{
- if(configValue==null) {
- return null;
- }
ConfigurationContext configContext = Configuration.current().getContext();
List<PropertyConverter<T>> converters = configContext
.getPropertyConverters(targetType);
@@ -199,7 +196,10 @@ final class InjectionHelper {
}
}
}
- throw new ConfigException("Non convertible property type: " + element);
+ if(configValue!=null) {
+ throw new ConfigException("Non convertible property type: " + element);
+ }
+ return null;
}
/**