You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2011/05/18 22:03:17 UTC
svn commit: r1124401 - in /myfaces/extensions/cdi/trunk/core/api/src:
main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java
test/java/org/apache/myfaces/extensions/cdi/core/test/api/provider/BeanManagerProviderTest.java
Author: gpetracek
Date: Wed May 18 20:03:17 2011
New Revision: 1124401
URL: http://svn.apache.org/viewvc?rev=1124401&view=rev
Log:
EXTCDI-188 improved api
Modified:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java
myfaces/extensions/cdi/trunk/core/api/src/test/java/org/apache/myfaces/extensions/cdi/core/test/api/provider/BeanManagerProviderTest.java
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java?rev=1124401&r1=1124400&r2=1124401&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java Wed May 18 20:03:17 2011
@@ -112,36 +112,40 @@ public class BeanManagerProvider impleme
* Get a Contextual Reference by it's type and annotation.
* You can use this method
*
- * @param type the java type it represents. E.g. 'MailService.class'
+ * @param type the type of the bean in question
* @param qualifiers additional qualifiers which further distinct the resolved bean
* @param <T> target type
* @return the resolved Contextual Reference
*/
public <T> T getContextualReference(Class<T> type, Annotation... qualifiers)
{
- BeanManager bm = getBeanManager();
- Set<Bean<?>> beans = bm.getBeans(type, qualifiers);
- Bean<?> bean = bm.resolve(beans);
- CreationalContext<?> cc = bm.createCreationalContext(bean);
+ BeanManager beanManager = getBeanManager();
+ Set<Bean<?>> beans = beanManager.getBeans(type, qualifiers);
+ Bean<?> bean = beanManager.resolve(beans);
+ CreationalContext<?> creationalContext = beanManager.createCreationalContext(bean);
//noinspection unchecked
- return (T) bm.getReference(bean, type, cc);
+ return (T) beanManager.getReference(bean, type, creationalContext);
}
/**
* Get a Contextual Reference by it's EL Name.
* This only works for beans with the @Named annotation.
*
+ * @param type the type of the bean in question - use Object.class if the type is unknown in dyn. use-cases
* @param name the EL name of the bean
+ * @param <T> target type
* @return the resolved Contextual Reference
*/
- public Object getContextualReference(String name)
+ public <T> T getContextualReference(Class<T> type, String name)
{
- BeanManager bm = getBeanManager();
- Set<Bean<?>> beans = bm.getBeans(name);
- Bean<?> bean = bm.resolve(beans);
- CreationalContext<?> cc = bm.createCreationalContext(bean);
- return bm.getReference(bean, Object.class, cc);
+ BeanManager beanManager = getBeanManager();
+ Set<Bean<?>> beans = beanManager.getBeans(name);
+ Bean<?> bean = beanManager.resolve(beans);
+ CreationalContext<?> creationalContext = beanManager.createCreationalContext(bean);
+
+ //noinspection unchecked
+ return (T)beanManager.getReference(bean, Object.class, creationalContext);
}
/**
Modified: myfaces/extensions/cdi/trunk/core/api/src/test/java/org/apache/myfaces/extensions/cdi/core/test/api/provider/BeanManagerProviderTest.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/test/java/org/apache/myfaces/extensions/cdi/core/test/api/provider/BeanManagerProviderTest.java?rev=1124401&r1=1124400&r2=1124401&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/test/java/org/apache/myfaces/extensions/cdi/core/test/api/provider/BeanManagerProviderTest.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/test/java/org/apache/myfaces/extensions/cdi/core/test/api/provider/BeanManagerProviderTest.java Wed May 18 20:03:17 2011
@@ -45,7 +45,7 @@ public class BeanManagerProviderTest
TestBean tb1 = bmp.getContextualReference(TestBean.class);
Assert.assertNotNull(tb1);
- TestBean tb2 = (TestBean) bmp.getContextualReference("extraNameBean");
+ TestBean tb2 = bmp.getContextualReference(TestBean.class, "extraNameBean");
Assert.assertNotNull(tb2);
}
finally