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)) {