[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