Commit ee9ed7ecde93cbd47f42653afe67684825ab8109
1 parent
befcc946
Exists in
master
Correção do erro no getReference() quando o bean é do tipo Producer
Method
Showing
1 changed file
with
10 additions
and
7 deletions
Show diff stats
impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Beans.java
... | ... | @@ -74,12 +74,11 @@ public final class Beans { |
74 | 74 | return manager; |
75 | 75 | } |
76 | 76 | |
77 | - @SuppressWarnings("unchecked") | |
78 | 77 | public static <T> T getReference(final Class<T> beanClass, Annotation... qualifiers) { |
79 | 78 | T instance; |
80 | 79 | |
81 | 80 | try { |
82 | - instance = (T) getReference(manager.getBeans(beanClass, qualifiers)); | |
81 | + instance = (T) getReference(manager.getBeans(beanClass, qualifiers), beanClass); | |
83 | 82 | |
84 | 83 | } catch (NoSuchElementException cause) { |
85 | 84 | StringBuffer buffer = new StringBuffer(); |
... | ... | @@ -97,12 +96,11 @@ public final class Beans { |
97 | 96 | return instance; |
98 | 97 | } |
99 | 98 | |
100 | - @SuppressWarnings("unchecked") | |
101 | 99 | public static <T> T getReference(final Class<T> beanClass) { |
102 | 100 | T instance; |
103 | 101 | |
104 | 102 | try { |
105 | - instance = (T) getReference(manager.getBeans(beanClass)); | |
103 | + instance = (T) getReference(manager.getBeans(beanClass), beanClass); | |
106 | 104 | |
107 | 105 | } catch (NoSuchElementException cause) { |
108 | 106 | String message = getBundle().getString("bean-not-found", beanClass.getCanonicalName()); |
... | ... | @@ -128,12 +126,17 @@ public final class Beans { |
128 | 126 | } |
129 | 127 | |
130 | 128 | @SuppressWarnings("unchecked") |
131 | - private static <T> T getReference(Set<Bean<?>> beans) { | |
129 | + private static <T> T getReference(Set<Bean<?>> beans, Class<T> beanClass) { | |
132 | 130 | Bean<?> bean = beans.iterator().next(); |
133 | - return (T) manager.getReference(bean, bean.getBeanClass(), manager.createCreationalContext(bean)); | |
131 | + return (T) manager.getReference(bean, beanClass == null ? bean.getBeanClass() : beanClass, | |
132 | + manager.createCreationalContext(bean)); | |
133 | + } | |
134 | + | |
135 | + private static <T> T getReference(Set<Bean<?>> beans) { | |
136 | + return getReference(beans, null); | |
134 | 137 | } |
135 | 138 | |
136 | 139 | private static ResourceBundle getBundle() { |
137 | 140 | return ResourceBundleProducer.create("demoiselle-core-bundle", Locale.getDefault()); |
138 | 141 | } |
139 | 142 | -} |
143 | +} | |
140 | 144 | \ No newline at end of file | ... | ... |