Commit 2841e89f95143a9859e0c5bda50c6439aa19bf1b
1 parent
a866e222
Exists in
master
Correcao do problema descrito no Mantis "0000745: O Método
getReference() da classe "br.gov.frameworkdemoiselle.util.Beans" dá erro quando o bean é do tipo Producer Method". O problema foi corrigido para os seguintes metodos: - public static <T> T getReference(final Class<T> beanClass, Annotation... qualifiers) - public static <T> T getReference(final Class<T> beanClass) Vale ressaltar que este problema ainda pode ocorrer para o metodo: - "public static <T> T getReference(String beanName)". Pois este contina a utilizar o bean.getBeanClass(). Uma solucao definitiva deve utilizar um dos beansTypes retornados pelo metodo bean.getTypes().
Showing
1 changed file
with
5 additions
and
7 deletions
Show diff stats
impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Beans.java
... | ... | @@ -65,26 +65,24 @@ public class Beans { |
65 | 65 | return manager; |
66 | 66 | } |
67 | 67 | |
68 | - @SuppressWarnings("unchecked") | |
69 | 68 | public static <T> T getReference(final Class<T> beanClass, Annotation... qualifiers) { |
70 | 69 | Bean<?> bean = manager.getBeans(beanClass, qualifiers).iterator().next(); |
71 | - return (T) getReference(bean); | |
70 | + return (T) getReference(bean, beanClass); | |
72 | 71 | } |
73 | 72 | |
74 | - @SuppressWarnings("unchecked") | |
75 | 73 | public static <T> T getReference(final Class<T> beanClass) { |
76 | 74 | Bean<?> bean = manager.getBeans(beanClass).iterator().next(); |
77 | - return (T) getReference(bean); | |
75 | + return (T) getReference(bean, beanClass); | |
78 | 76 | } |
79 | 77 | |
80 | 78 | @SuppressWarnings("unchecked") |
81 | 79 | public static <T> T getReference(String beanName) { |
82 | 80 | Bean<?> bean = manager.getBeans(beanName).iterator().next(); |
83 | - return (T) getReference(bean); | |
81 | + return (T) getReference(bean, bean.getBeanClass()); | |
84 | 82 | } |
85 | 83 | |
86 | 84 | @SuppressWarnings("unchecked") |
87 | - private static <T> T getReference(Bean<?> bean) { | |
88 | - return (T) manager.getReference(bean, bean.getBeanClass(), manager.createCreationalContext(bean)); | |
85 | + private static <T> T getReference(Bean<?> bean, final Class<T> beanClass) { | |
86 | + return (T) manager.getReference(bean, beanClass, manager.createCreationalContext(bean)); | |
89 | 87 | } |
90 | 88 | } | ... | ... |