[weld-commits] Weld SVN: r5255 - in core/trunk/tests/src: test/java/org/jboss/weld/tests/scope and 1 other directory.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Wed Dec 9 13:52:30 EST 2009


Author: pete.muir at jboss.org
Date: 2009-12-09 13:52:30 -0500 (Wed, 09 Dec 2009)
New Revision: 5255

Added:
   core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Special.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Temp.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/TempConsumer.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/TempProducer.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Useless.java
Modified:
   core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/ScopeTest.java
Log:
WELD-311

Modified: core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java
===================================================================
--- core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java	2009-12-09 17:10:51 UTC (rev 5254)
+++ core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java	2009-12-09 18:52:30 UTC (rev 5255)
@@ -180,13 +180,13 @@
    @SuppressWarnings("unchecked")
    public <T> T createContextualInstance(Class<T> beanType, Annotation... bindings)
    {
-      return (T) createContextualInstance((Type) beanType, bindings);
+      Bean<?> bean = getBean(beanType, bindings);
+      return (T) getCurrentManager().getReference(bean, beanType, getCurrentManager().createCreationalContext(bean));
    }
-
-   public Object createContextualInstance(Type beanType, Annotation... bindings)
+   
+   public <T> T getReference(Bean<T> bean)
    {
-      Bean<?> bean = getBean(beanType, bindings);
-      return getCurrentManager().getReference(bean, beanType, getCurrentManager().createCreationalContext(bean));
+      return (T) getCurrentManager().getReference(bean, bean.getBeanClass(), getCurrentManager().createCreationalContext(bean));
    }
 
    @SuppressWarnings("unchecked")

Modified: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/ScopeTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/ScopeTest.java	2009-12-09 17:10:51 UTC (rev 5254)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/ScopeTest.java	2009-12-09 18:52:30 UTC (rev 5255)
@@ -1,8 +1,16 @@
 package org.jboss.weld.tests.scope;
 
+import java.lang.annotation.Annotation;
+
 import javax.enterprise.context.Dependent;
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.util.AnnotationLiteral;
 
 import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.weld.Container;
+import org.jboss.weld.context.ContextLifecycle;
+import org.jboss.weld.context.beanstore.HashMapBeanStore;
 import org.jboss.weld.test.AbstractWeldTest;
 import org.testng.annotations.Test;
 
@@ -10,10 +18,46 @@
 public class ScopeTest extends AbstractWeldTest
 {
    
+   private static Annotation USELESS_LITERAL = new AnnotationLiteral<Useless>() {};
+   private static Annotation SPECIAL_LITERAL = new AnnotationLiteral<Special>() {};
+   
    @Test(description="WELD-322")
    public void testScopeDeclaredOnSubclassOverridesScopeOnSuperClass()
    {
       assert getCurrentManager().resolve(getCurrentManager().getBeans(Bar.class)).getScope().equals(Dependent.class);
    }
+   @Test(description="WELD-311")
+   public void testScopeOfProducerMethod()
+   {
+      Bean<Temp> specialTempBean = getBean(Temp.class, SPECIAL_LITERAL);
+      Bean<Temp> uselessTempBean = getBean(Temp.class, USELESS_LITERAL);
+      assert specialTempBean.getScope().equals(RequestScoped.class);
+      assert uselessTempBean.getScope().equals(RequestScoped.class);
+      assert getReference(specialTempBean).getNumber() == 10;
+      assert getReference(uselessTempBean).getNumber() == 11;
+      
+      TempConsumer tempConsumer = createContextualInstance(TempConsumer.class);
+      tempConsumer.getSpecialTemp().setNumber(101);
+      tempConsumer.getUselessTemp().setNumber(102);
+      
+      assert tempConsumer.getSpecialTemp().getNumber() == 101;
+      assert tempConsumer.getUselessTemp().getNumber() == 102;
+      assert getReference(specialTempBean).getNumber() == 101;
+      assert getReference(uselessTempBean).getNumber() == 102;
+      
+      newRequest();
+      
+      assert tempConsumer.getSpecialTemp().getNumber() == 10;
+      assert tempConsumer.getUselessTemp().getNumber() == 102;
+      assert getReference(specialTempBean).getNumber() == 10;
+      assert getReference(uselessTempBean).getNumber() == 102;
+   }
+   
+   private void newRequest()
+   {
+      ContextLifecycle lifecycle = Container.instance().deploymentServices().get(ContextLifecycle.class);
+      lifecycle.endRequest("test", lifecycle.getRequestContext().getBeanStore());
+      lifecycle.beginRequest("test", new HashMapBeanStore());
+   }
 
 }

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Special.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Special.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Special.java	2009-12-09 18:52:30 UTC (rev 5255)
@@ -0,0 +1,20 @@
+package org.jboss.weld.tests.scope;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+ at Qualifier
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target({FIELD, METHOD, TYPE, PARAMETER})
+public @interface Special
+{
+
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Special.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Temp.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Temp.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Temp.java	2009-12-09 18:52:30 UTC (rev 5255)
@@ -0,0 +1,28 @@
+package org.jboss.weld.tests.scope;
+
+public class Temp
+{
+   
+   private int number;
+   
+   public Temp(int number)
+   {
+      this.number = number;
+   }
+   
+   public Temp()
+   {
+      number = 0;
+   }
+   
+   public int getNumber()
+   {
+      return number;
+   }
+   
+   public void setNumber(int number)
+   {
+      this.number = number;
+   }
+
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Temp.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/TempConsumer.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/TempConsumer.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/TempConsumer.java	2009-12-09 18:52:30 UTC (rev 5255)
@@ -0,0 +1,24 @@
+package org.jboss.weld.tests.scope;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+
+ at ApplicationScoped
+public class TempConsumer
+{
+
+   @Inject @Special Temp specialTemp;
+   @Inject @Useless Temp uselessTemp;
+   
+   public Temp getSpecialTemp()
+   {
+      return specialTemp;
+   }
+   
+   public Temp getUselessTemp()
+   {
+      return uselessTemp;
+   }
+   
+   
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/TempConsumer.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/TempProducer.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/TempProducer.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/TempProducer.java	2009-12-09 18:52:30 UTC (rev 5255)
@@ -0,0 +1,28 @@
+package org.jboss.weld.tests.scope;
+
+import java.io.Serializable;
+
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.context.SessionScoped;
+import javax.enterprise.inject.Produces;
+import javax.inject.Named;
+
+ at Named
+ at SessionScoped
+public class TempProducer implements Serializable
+{
+
+   @Produces
+   @RequestScoped
+   @Special
+   public Temp getTemp()
+   {
+      return new Temp(10);
+   }
+
+   @Produces
+   @RequestScoped
+   @Useless
+   Temp t = new Temp(11);
+
+}
\ No newline at end of file


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/TempProducer.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Useless.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Useless.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Useless.java	2009-12-09 18:52:30 UTC (rev 5255)
@@ -0,0 +1,20 @@
+package org.jboss.weld.tests.scope;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+ at Qualifier
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target({FIELD, METHOD, TYPE, PARAMETER})
+public @interface Useless
+{
+
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/scope/Useless.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native



More information about the weld-commits mailing list