You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jo...@apache.org on 2017/07/29 21:41:19 UTC
svn commit: r1803394 -
/geronimo/components/config/trunk/impl/src/main/java/org/apache/geronimo/config/cdi/ConfigExtension.java
Author: johndament
Date: Sat Jul 29 21:41:19 2017
New Revision: 1803394
URL: http://svn.apache.org/viewvc?rev=1803394&view=rev
Log:
GERONIMO-6575 - Replace primitive type injection with the object wrapper, or else duplicate beans in OWB.
Modified:
geronimo/components/config/trunk/impl/src/main/java/org/apache/geronimo/config/cdi/ConfigExtension.java
Modified: geronimo/components/config/trunk/impl/src/main/java/org/apache/geronimo/config/cdi/ConfigExtension.java
URL: http://svn.apache.org/viewvc/geronimo/components/config/trunk/impl/src/main/java/org/apache/geronimo/config/cdi/ConfigExtension.java?rev=1803394&r1=1803393&r2=1803394&view=diff
==============================================================================
--- geronimo/components/config/trunk/impl/src/main/java/org/apache/geronimo/config/cdi/ConfigExtension.java (original)
+++ geronimo/components/config/trunk/impl/src/main/java/org/apache/geronimo/config/cdi/ConfigExtension.java Sat Jul 29 21:41:19 2017
@@ -39,6 +39,7 @@ import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -63,6 +64,15 @@ public class ConfigExtension implements
private Set<Injection> injections = new HashSet<>();
private List<Throwable> deploymentProblems = new ArrayList<>();
+ private static final Map<Type, Type> REPLACED_TYPES = new HashMap<>();
+
+ static {
+ REPLACED_TYPES.put(double.class, Double.class);
+ REPLACED_TYPES.put(int.class, Integer.class);
+ REPLACED_TYPES.put(float.class, Float.class);
+ REPLACED_TYPES.put(long.class, Long.class);
+ REPLACED_TYPES.put(boolean.class, Boolean.class);
+ }
void init(@Observes final BeforeBeanDiscovery beforeBeanDiscovery, final BeanManager bm) {
resolver = ConfigProviderResolver.instance();
@@ -73,7 +83,8 @@ public class ConfigExtension implements
final InjectionPoint injectionPoint = pip.getInjectionPoint();
final ConfigProperty configProperty = injectionPoint.getAnnotated().getAnnotation(ConfigProperty.class);
if (configProperty != null) {
- Injection injection = new Injection(injectionPoint.getType());
+ Type replacedType = REPLACED_TYPES.getOrDefault(injectionPoint.getType(), injectionPoint.getType());
+ Injection injection = new Injection(replacedType);
final String key = getConfigKey(injectionPoint, configProperty);
final boolean defaultUnset = isDefaultUnset(configProperty.defaultValue());
if (!injections.add(injection)) {