Commit 1b9db5469a08cff42a536cba25b91eb5c27e6940

Authored by Cleverson Sacramento
1 parent 882867ad
Exists in master

FWK-214: Correção do erro java.lang.NoSuchMethodError:

br.gov.frameworkdemoiselle.util.Beans.getReference 

Task-Url: https://demoiselle.atlassian.net/browse/FWK-214
impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Beans.java
@@ -77,6 +77,10 @@ public final class Beans { @@ -77,6 +77,10 @@ public final class Beans {
77 return beanManager; 77 return beanManager;
78 } 78 }
79 79
  80 + public static <T> T getReference(final Class<T> beanClass) {
  81 + return getReference(beanClass, (Annotation[]) null);
  82 + }
  83 +
80 /** 84 /**
81 * Obtains a injectble instance of a bean, which have the given required type and qualifiers, and are available for 85 * Obtains a injectble instance of a bean, which have the given required type and qualifiers, and are available for
82 * injection in the point where this method was call. 86 * injection in the point where this method was call.
@@ -93,15 +97,24 @@ public final class Beans { @@ -93,15 +97,24 @@ public final class Beans {
93 T instance; 97 T instance;
94 98
95 try { 99 try {
96 - instance = (T) getReference(getBeanManager().getBeans(beanClass, qualifiers), beanClass, qualifiers); 100 + Set<Bean<?>> beans;
  101 + if (qualifiers == null) {
  102 + beans = getBeanManager().getBeans(beanClass);
  103 + } else {
  104 + beans = getBeanManager().getBeans(beanClass, qualifiers);
  105 + }
  106 +
  107 + instance = (T) getReference(beans, beanClass, qualifiers);
97 108
98 } catch (NoSuchElementException cause) { 109 } catch (NoSuchElementException cause) {
99 StringBuffer buffer = new StringBuffer(); 110 StringBuffer buffer = new StringBuffer();
100 buffer.append(beanClass.getCanonicalName()); 111 buffer.append(beanClass.getCanonicalName());
101 112
102 - for (Annotation qualifier : qualifiers) {  
103 - buffer.append(", ");  
104 - buffer.append(qualifier.getClass().getCanonicalName()); 113 + if (qualifiers != null) {
  114 + for (Annotation qualifier : qualifiers) {
  115 + buffer.append(", ");
  116 + buffer.append(qualifier.getClass().getCanonicalName());
  117 + }
105 } 118 }
106 119
107 String message = getBundle().getString("bean-not-found", buffer.toString()); 120 String message = getBundle().getString("bean-not-found", buffer.toString());
@@ -146,7 +159,13 @@ public final class Beans { @@ -146,7 +159,13 @@ public final class Beans {
146 Bean<?> bean = beans.iterator().next(); 159 Bean<?> bean = beans.iterator().next();
147 CreationalContext<?> context = getBeanManager().createCreationalContext(bean); 160 CreationalContext<?> context = getBeanManager().createCreationalContext(bean);
148 Type beanType = beanClass == null ? bean.getBeanClass() : beanClass; 161 Type beanType = beanClass == null ? bean.getBeanClass() : beanClass;
149 - InjectionPoint injectionPoint = new CustomInjectionPoint(bean, beanType, qualifiers); 162 + InjectionPoint injectionPoint;
  163 +
  164 + if (qualifiers == null) {
  165 + injectionPoint = new CustomInjectionPoint(bean, beanType);
  166 + } else {
  167 + injectionPoint = new CustomInjectionPoint(bean, beanType, qualifiers);
  168 + }
150 169
151 return (T) getBeanManager().getInjectableReference(injectionPoint, context); 170 return (T) getBeanManager().getInjectableReference(injectionPoint, context);
152 } 171 }