[seam-commits] Seam SVN: r11297 - in modules/trunk: international/src/main/java/org/jboss/seam/international and 2 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Mon Jul 20 18:51:43 EDT 2009


Author: norman.richards at jboss.com
Date: 2009-07-20 18:51:43 -0400 (Mon, 20 Jul 2009)
New Revision: 11297

Added:
   modules/trunk/beans/src/main/java/org/jboss/seam/beans/BeanManagerHelper.java
Modified:
   modules/trunk/beans/src/main/java/org/jboss/seam/beans/RuntimeBeanSelector.java
   modules/trunk/international/src/main/java/org/jboss/seam/international/SeamResourceBundleAdapter.java
   modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessage.java
   modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessages.java
   modules/trunk/resources/src/main/java/org/jboss/seam/resources/ResourceLoadingException.java
   modules/trunk/web/src/main/java/org/jboss/seam/web/SeamFilter.java
Log:
some more api updates

Added: modules/trunk/beans/src/main/java/org/jboss/seam/beans/BeanManagerHelper.java
===================================================================
--- modules/trunk/beans/src/main/java/org/jboss/seam/beans/BeanManagerHelper.java	                        (rev 0)
+++ modules/trunk/beans/src/main/java/org/jboss/seam/beans/BeanManagerHelper.java	2009-07-20 22:51:43 UTC (rev 11297)
@@ -0,0 +1,22 @@
+package org.jboss.seam.beans;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+
+public class BeanManagerHelper {    
+    public static <T> T getInstanceByType(BeanManager manager, Class<T> beanType, Annotation... bindings)
+    {
+       Set<Bean<?>> beans = manager.getBeans(beanType, bindings);
+       Bean<?> bean = manager.resolve(beans);
+       Object reference = manager.getReference(bean, beanType, manager.createCreationalContext(bean));
+       
+       @SuppressWarnings("unchecked")
+       T instance = (T) reference;
+       
+       return instance;
+    }
+    
+}

Modified: modules/trunk/beans/src/main/java/org/jboss/seam/beans/RuntimeBeanSelector.java
===================================================================
--- modules/trunk/beans/src/main/java/org/jboss/seam/beans/RuntimeBeanSelector.java	2009-07-20 15:49:08 UTC (rev 11296)
+++ modules/trunk/beans/src/main/java/org/jboss/seam/beans/RuntimeBeanSelector.java	2009-07-20 22:51:43 UTC (rev 11297)
@@ -55,17 +55,19 @@
          throw new AmbiguousResolutionException("Too many instances active for type " + getType().getTypeParameters()[0]);
       }
    }
+  
    
+   @SuppressWarnings("unchecked")
    protected void registerImplementations()
    {
-      defaultInstance = manager.getInstanceByType(getType(), new AnnotationLiteral<Default>() {});
+      defaultInstance = BeanManagerHelper.getInstanceByType(manager, getType(), new AnnotationLiteral<Default>() {});      
       
-      Set<Bean<T>> implementations = manager.getBeans(getType(), new AnnotationLiteral<RuntimeSelected>() {});
-      for (Bean<T> candidate : implementations)
+      Set<Bean<?>> implementations = manager.getBeans(getType(), new AnnotationLiteral<RuntimeSelected>() {});
+      for (Bean<?> candidate : implementations)
       {
          if (candidate.getTypes().contains(RuntimeSelectedBean.class))
          {
-            instances.add(manager.getInstance(candidate));
+            instances.add((T) manager.getReference(candidate, getType(), null));
          }
       }
    }

Modified: modules/trunk/international/src/main/java/org/jboss/seam/international/SeamResourceBundleAdapter.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/SeamResourceBundleAdapter.java	2009-07-20 15:49:08 UTC (rev 11296)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/SeamResourceBundleAdapter.java	2009-07-20 22:51:43 UTC (rev 11297)
@@ -7,6 +7,7 @@
 import javax.enterprise.inject.AnnotationLiteral;
 import javax.enterprise.inject.spi.BeanManager;
 
+import org.jboss.seam.beans.BeanManagerHelper;
 import org.jboss.seam.bridge.ManagerBridge;
 
 /**
@@ -39,7 +40,7 @@
 
    protected ResourceBundle getMessages()
    {
-      return getCurrentManager().getInstanceByType(ResourceBundle.class, new AnnotationLiteral<AutoInterpolatedMessages>(){});
+       return BeanManagerHelper.getInstanceByType(getCurrentManager(), ResourceBundle.class, new AnnotationLiteral<AutoInterpolatedMessages>(){});      
    }
 
    protected BeanManager getCurrentManager()

Modified: modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessage.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessage.java	2009-07-20 15:49:08 UTC (rev 11296)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessage.java	2009-07-20 22:51:43 UTC (rev 11297)
@@ -37,6 +37,8 @@
  */
 public class StatusMessage implements Serializable
 {
+    private static final long serialVersionUID = -177606761939586298L;
+
    /**
     * The severity of the status message
     */

Modified: modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessages.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessages.java	2009-07-20 15:49:08 UTC (rev 11296)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessages.java	2009-07-20 22:51:43 UTC (rev 11297)
@@ -42,6 +42,7 @@
 import javax.enterprise.inject.spi.BeanManager;
 import javax.validation.ConstraintViolation;
 
+import org.jboss.seam.beans.BeanManagerHelper;
 import org.jboss.seam.international.StatusMessage.Severity;
 import org.jboss.webbeans.log.Log;
 import org.jboss.webbeans.log.Logger;
@@ -457,7 +458,10 @@
          // FIXME this is a hack because I can't inject it since ResourceBundle is not proxyable
          if (manager.getBeans(ResourceBundle.class, new AnnotationLiteral<Messages>() {}).size() == 1)
          {
-            ResourceBundle resourceBundle = manager.getInstanceByType(ResourceBundle.class, new AnnotationLiteral<Messages>() {});
+            ResourceBundle resourceBundle = 
+                BeanManagerHelper.getInstanceByType(manager, 
+                                                    ResourceBundle.class, 
+                                                    new AnnotationLiteral<Messages>() {});
             try
             {
                String bundleMessage = resourceBundle.getString(key);

Modified: modules/trunk/resources/src/main/java/org/jboss/seam/resources/ResourceLoadingException.java
===================================================================
--- modules/trunk/resources/src/main/java/org/jboss/seam/resources/ResourceLoadingException.java	2009-07-20 15:49:08 UTC (rev 11296)
+++ modules/trunk/resources/src/main/java/org/jboss/seam/resources/ResourceLoadingException.java	2009-07-20 22:51:43 UTC (rev 11297)
@@ -3,14 +3,14 @@
  */
 package org.jboss.seam.resources;
 
-import javax.inject.ExecutionException;
+//import javax.inject.ExecutionException;
 
 /**
  * Exception thrown when errors occur while loading resource
  * 
  * @author Pete Muir
  */
-public class ResourceLoadingException extends ExecutionException
+public class ResourceLoadingException extends RuntimeException // extends ExecutionException
 {
    private static final long serialVersionUID = 1L;
 

Modified: modules/trunk/web/src/main/java/org/jboss/seam/web/SeamFilter.java
===================================================================
--- modules/trunk/web/src/main/java/org/jboss/seam/web/SeamFilter.java	2009-07-20 15:49:08 UTC (rev 11296)
+++ modules/trunk/web/src/main/java/org/jboss/seam/web/SeamFilter.java	2009-07-20 22:51:43 UTC (rev 11297)
@@ -2,6 +2,7 @@
 
 import java.io.IOException;
 
+import javax.enterprise.inject.spi.BeanManager;
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
@@ -12,6 +13,7 @@
 import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpSession;
 
+import org.jboss.seam.beans.BeanManagerHelper;
 import org.jboss.seam.bridge.ManagerBridge;
 
 /**
@@ -60,7 +62,9 @@
             
             private void registerSession(HttpSession session)
             {
-               ManagerBridge.getProvider().getCurrentManager().getInstanceByType(HttpSessionManager.class).setSession(session);
+               BeanManager manager = ManagerBridge.getProvider().getCurrentManager();
+               HttpSessionManager sessionManager = BeanManagerHelper.getInstanceByType(manager, HttpSessionManager.class);               
+               sessionManager.setSession(session);
                registeredSession = session;
             }
             



More information about the seam-commits mailing list