Repository: deltaspike
Updated Branches:
  refs/heads/master a8770d46b -> 3b169675e


DELTASPIKE-739 - Fix for @Typed


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/3b169675
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/3b169675
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/3b169675

Branch: refs/heads/master
Commit: 3b169675e0cb65f8ffac8a7d404f8bcd5d3f2f18
Parents: a8770d4
Author: Rafael Benevides <[email protected]>
Authored: Tue Oct 14 12:28:41 2014 -0300
Committer: Rafael Benevides <[email protected]>
Committed: Tue Oct 14 12:28:41 2014 -0300

----------------------------------------------------------------------
 .../deltaspike/core/util/bean/BeanBuilder.java  | 21 +++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/3b169675/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/bean/BeanBuilder.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/bean/BeanBuilder.java
 
b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/bean/BeanBuilder.java
index 0f2813f..aecea93 100644
--- 
a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/bean/BeanBuilder.java
+++ 
b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/bean/BeanBuilder.java
@@ -28,12 +28,14 @@ import 
org.apache.deltaspike.core.util.metadata.builder.DummyInjectionTarget;
 
 import javax.enterprise.context.Dependent;
 import javax.enterprise.inject.Alternative;
+import javax.enterprise.inject.Typed;
 import javax.enterprise.inject.spi.AnnotatedType;
 import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.BeanManager;
 import javax.enterprise.inject.spi.InjectionPoint;
 import javax.enterprise.inject.spi.InjectionTarget;
 import javax.inject.Named;
+
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 import java.util.Arrays;
@@ -151,14 +153,23 @@ public class BeanBuilder<T>
         {
             this.scope = Dependent.class;
         }
-        for (Class<?> c = type.getJavaClass(); c != Object.class && c != null; 
c = c.getSuperclass())
+        if (type.isAnnotationPresent(Typed.class))
         {
-            this.types.add(c);
+            Typed typed = type.getAnnotation(Typed.class);
+            this.types.addAll(Arrays.asList(typed.value()));
+
         }
-        for (Class<?> i : type.getJavaClass().getInterfaces())
+        else
         {
-            this.types.add(i);
-        }
+            for (Class<?> c = type.getJavaClass(); c != Object.class && c != 
null; c = c.getSuperclass())
+            {
+                this.types.add(c);
+            }
+            for (Class<?> i : type.getJavaClass().getInterfaces())
+            {
+                this.types.add(i);
+            }
+        }        
         if (qualifiers.isEmpty())
         {
             qualifiers.add(new DefaultLiteral());

Reply via email to