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 &#064;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