[webbeans-commits] Webbeans SVN: r1287 - examples/trunk/numberguess/src/main/java/org/jboss/webbeans/examples/numberguess and 7 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Thu Jan 29 10:48:43 EST 2009


Author: pete.muir at jboss.org
Date: 2009-01-29 10:48:43 -0500 (Thu, 29 Jan 2009)
New Revision: 1287

Added:
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/proxy/
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/proxy/Foo.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/proxy/ProxyTest.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/FooConsumer.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Generator.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/NumberConsumer.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/SerializableFoo.java
Modified:
   examples/trunk/numberguess/src/main/java/org/jboss/webbeans/examples/numberguess/Game.java
   examples/trunk/readme.txt
   ri/trunk/dist/readme.txt
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java
   ri/trunk/webbeans-ri/unit-tests.xml
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java
Log:
WBRI-122, tests for passivation and associated fixes

Modified: examples/trunk/numberguess/src/main/java/org/jboss/webbeans/examples/numberguess/Game.java
===================================================================
--- examples/trunk/numberguess/src/main/java/org/jboss/webbeans/examples/numberguess/Game.java	2009-01-29 15:31:43 UTC (rev 1286)
+++ examples/trunk/numberguess/src/main/java/org/jboss/webbeans/examples/numberguess/Game.java	2009-01-29 15:48:43 UTC (rev 1287)
@@ -22,7 +22,7 @@
    private int smallest;
    
    @MaxNumber
-   private transient int maxNumber;
+   private int maxNumber;
    
    private int biggest;
    private int remainingGuesses;

Modified: examples/trunk/readme.txt
===================================================================
--- examples/trunk/readme.txt	2009-01-29 15:31:43 UTC (rev 1286)
+++ examples/trunk/readme.txt	2009-01-29 15:48:43 UTC (rev 1287)
@@ -1,4 +1,4 @@
-The Web Beans RI currently comes with a two examples, webbeans-numberguess (a 
+Web Beans currently comes with a two examples, webbeans-numberguess (a 
 war example) and webbeans-translator (an EJB example). Before running the 
 examples, you'll need to ensure your server supports Web Beans.
 

Modified: ri/trunk/dist/readme.txt
===================================================================
--- ri/trunk/dist/readme.txt	2009-01-29 15:31:43 UTC (rev 1286)
+++ ri/trunk/dist/readme.txt	2009-01-29 15:48:43 UTC (rev 1287)
@@ -1,14 +1,14 @@
-Web Beans RI
+Web Beans
 ------------
 
-Web Beans (JSR-299) is a new Java standard for dependency injection and 
-contextual lifecycle management.
+Java Contexts and Dependency Injection (JSR-299) is a new Java standard for 
+dependency injection and contextual lifecycle management. Web Beans is the
+reference implementation of JSR-299.
 
 This distribution, as a whole, is licensed under the terms of the FSF Lesser Gnu 
 Public License (see lgpl.txt). Parts of it are licensed under the Apache Public
-License (see apl.txt). In particular, the Web Beans API and the Web Beans RI 
-runtimes are licensed under the APL. At least these parts are licensed under the 
-APL:
+License (see apl.txt). In particular, the API and the Web Beans runtime are 
+licensed under the APL. At least these parts are licensed under the APL:
 
 * src/webbeans-ri/main/**/*
 * src/webbeans-api/main/**/*
@@ -20,12 +20,12 @@
 This distribution consists of:
 
 doc/
-   -- The Web Beans Reference guide, take a look at doc/en/html/index.html for
-      getting started using Web Beans and the Web Beans RI
+   -- The Reference guide, take a look at doc/en/html/index.html for getting 
+      started using Web Beans and the facilities offered by JSR-299. 
  
 examples/
-   -- The Web Beans RI examples, the examples are described in more detail in 
-      the reference guide 
+   -- The Web Beans examples, the examples are described in more detail in the 
+      reference guide 
    
 jboss-as/
    -- Installer for JBoss AS, change into this directory, and run ant update
@@ -35,9 +35,8 @@
    -- Libraries for building the examples
    
 lib/webbeans
-   -- The Web Beans RI and API jars, for use outside of JBoss AS
+   -- The Web Beans and API jars, for use outside of JBoss AS
    
 src/
-   -- The sources of the Web Beans RI, including src/webbeans-api, 
-      src/webbeans-ri and src/reference. To build the sources, just type mvn in
-      the subdirectory.
+   -- The sources of Web Beans, including src/webbeans-api, src/webbeans-ri and 
+      src/reference. To build the sources, just type mvn in the subdirectory.

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-01-29 15:31:43 UTC (rev 1286)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-01-29 15:48:43 UTC (rev 1287)
@@ -17,6 +17,7 @@
 
 package org.jboss.webbeans.bean;
 
+import java.io.Serializable;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 import java.util.Arrays;
@@ -109,6 +110,8 @@
    // The Web Beans manager
    protected ManagerImpl manager;
 
+   protected boolean _serializable;
+
    /**
     * Constructor
     * 
@@ -145,6 +148,7 @@
       checkDeploymentType();
       initScopeType();
       initTypes();
+      initSerializable();
       initProxyable();
       checkRequiredTypesImplemented();
    }
@@ -507,9 +511,13 @@
    @Override
    public boolean isSerializable()
    {
-      // TODO: OK?
-      return true;
+      return _serializable;
    }
+   
+   protected void initSerializable()
+   {
+      _serializable = isPrimitive() || getTypes().contains(Serializable.class);
+   }
 
    /**
     * Gets a string representation

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java	2009-01-29 15:31:43 UTC (rev 1286)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java	2009-01-29 15:48:43 UTC (rev 1287)
@@ -204,7 +204,7 @@
       {
          if (injectionPoint.getMember() instanceof Field)
          {
-            if (!Reflections.isTransient(injectionPoint.getMember()) || !isSerializable())
+            if (!Reflections.isTransient(injectionPoint.getMember()) && !Reflections.isSerializable(instance.getClass()))
             {
                throw new IllegalProductException("Dependent scoped producers cannot produce non-serializable instances for injection into non-transient fields of passivating beans\n\nProducer: " + this.toString() + "\nInjection Point: " + injectionPoint.toString());
             }
@@ -280,6 +280,12 @@
          return;
       }
    }
+   
+   @Override
+   protected void initSerializable()
+   {
+      _serializable = true;
+   }
 
    /**
     * Gets the receiver of the product

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java	2009-01-29 15:31:43 UTC (rev 1286)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java	2009-01-29 15:48:43 UTC (rev 1287)
@@ -555,7 +555,7 @@
 
    public static boolean isSerializable(Class<?> clazz)
    {
-      return getTypeHierachy(clazz).contains(Serializable.class);
+      return getTypeHierachy(clazz).contains(Serializable.class) || clazz.isPrimitive();
    }
 
 }

Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/proxy/Foo.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/proxy/Foo.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/proxy/Foo.java	2009-01-29 15:48:43 UTC (rev 1287)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.test.unit.implementation.proxy;
+
+import java.io.Serializable;
+
+import javax.annotation.Named;
+import javax.context.RequestScoped;
+
+ at Named
+ at RequestScoped
+class Foo implements Serializable
+{
+   
+   public String getMsg()
+   {
+      return "Hi";
+   }
+   
+}
\ No newline at end of file


Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/proxy/Foo.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/proxy/ProxyTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/proxy/ProxyTest.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/proxy/ProxyTest.java	2009-01-29 15:48:43 UTC (rev 1287)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.test.unit.implementation.proxy;
+
+import org.jboss.webbeans.test.unit.AbstractTest;
+import org.testng.annotations.Test;
+
+public class ProxyTest extends AbstractTest
+{
+   
+   @Test(description="WBRI-122")
+   public void testImplementationClassImplementsSerializable()
+   {
+      deployBeans(Foo.class);
+      manager.getInstanceByName("foo");
+   }
+   
+}


Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/proxy/ProxyTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: ri/trunk/webbeans-ri/unit-tests.xml
===================================================================
--- ri/trunk/webbeans-ri/unit-tests.xml	2009-01-29 15:31:43 UTC (rev 1286)
+++ ri/trunk/webbeans-ri/unit-tests.xml	2009-01-29 15:48:43 UTC (rev 1287)
@@ -39,6 +39,8 @@
          <package name="org.jboss.webbeans.test.unit.definition" />
          <package name="org.jboss.webbeans.test.unit.event" />
          <package name="org.jboss.webbeans.test.unit.implementation" />
+         <package name="org.jboss.webbeans.test.unit.implementation.proxy" />
+         <package name="org.jboss.webbeans.test.unit.implementation.exceptions" />
          <package name="org.jboss.webbeans.test.unit.lookup" />
          <package name="org.jboss.webbeans.test.unit.lookup.circular" />
       </packages>

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/FooConsumer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/FooConsumer.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/FooConsumer.java	2009-01-29 15:48:43 UTC (rev 1287)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.context.RequestScoped;
+import javax.inject.Current;
+
+ at RequestScoped
+class FooConsumer
+{
+   
+   @Current SerializableFoo foo;
+   
+   public void ping(){};
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/FooConsumer.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Generator.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Generator.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Generator.java	2009-01-29 15:48:43 UTC (rev 1287)
@@ -0,0 +1,27 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+
+import java.io.Serializable;
+
+import javax.context.ApplicationScoped;
+import javax.inject.Produces;
+
+ at ApplicationScoped
+class Generator implements Serializable 
+{
+   
+   private static final long serialVersionUID = -7213673465118041882L;
+   
+   private int number = 100;
+   
+   @Produces int getNumber()
+   {
+      return number;
+   }
+   
+   @Produces SerializableFoo getFoo()
+   {
+      return new SerializableFoo();
+   }
+
+} 


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Generator.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/NumberConsumer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/NumberConsumer.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/NumberConsumer.java	2009-01-29 15:48:43 UTC (rev 1287)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.context.RequestScoped;
+import javax.inject.Current;
+
+ at RequestScoped
+class NumberConsumer
+{
+   
+   @Current int number;
+   
+   public void ping(){};
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/NumberConsumer.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java	2009-01-29 15:31:43 UTC (rev 1286)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java	2009-01-29 15:48:43 UTC (rev 1287)
@@ -47,6 +47,20 @@
    {
       createSimpleBean(Jyvaskyla.class);
    }
+   
+   @Test @SpecAssertion(section="8.4")
+   public void testInjectionOfDependentSerializableProductIntoNormalBean()
+   {
+      deployBeans(Generator.class, NumberConsumer.class);
+      manager.getInstanceByType(NumberConsumer.class).ping();
+   }
+   
+   @Test @SpecAssertion(section="8.4")
+   public void testInjectionOfDependentPrimitiveProductIntoNormalBean()
+   {
+      deployBeans(Generator.class, FooConsumer.class);
+      manager.getInstanceByType(FooConsumer.class).ping();
+   }
 
    /**
     * the Web Bean declares a passivating scope type, and context passivation

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/SerializableFoo.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/SerializableFoo.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/SerializableFoo.java	2009-01-29 15:48:43 UTC (rev 1287)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+public class SerializableFoo implements Serializable
+{
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/SerializableFoo.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain




More information about the weld-commits mailing list