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());
