diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Beans.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Beans.java index 8419d89..7d4d700 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Beans.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Beans.java @@ -74,12 +74,11 @@ public final class Beans { return manager; } - @SuppressWarnings("unchecked") public static T getReference(final Class beanClass, Annotation... qualifiers) { T instance; try { - instance = (T) getReference(manager.getBeans(beanClass, qualifiers)); + instance = (T) getReference(manager.getBeans(beanClass, qualifiers), beanClass); } catch (NoSuchElementException cause) { StringBuffer buffer = new StringBuffer(); @@ -97,12 +96,11 @@ public final class Beans { return instance; } - @SuppressWarnings("unchecked") public static T getReference(final Class beanClass) { T instance; try { - instance = (T) getReference(manager.getBeans(beanClass)); + instance = (T) getReference(manager.getBeans(beanClass), beanClass); } catch (NoSuchElementException cause) { String message = getBundle().getString("bean-not-found", beanClass.getCanonicalName()); @@ -128,12 +126,17 @@ public final class Beans { } @SuppressWarnings("unchecked") - private static T getReference(Set> beans) { + private static T getReference(Set> beans, Class beanClass) { Bean bean = beans.iterator().next(); - return (T) manager.getReference(bean, bean.getBeanClass(), manager.createCreationalContext(bean)); + return (T) manager.getReference(bean, beanClass == null ? bean.getBeanClass() : beanClass, + manager.createCreationalContext(bean)); + } + + private static T getReference(Set> beans) { + return getReference(beans, null); } private static ResourceBundle getBundle() { return ResourceBundleProducer.create("demoiselle-core-bundle", Locale.getDefault()); } -} +} \ No newline at end of file -- libgit2 0.21.2