You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2012/11/25 21:02:41 UTC
svn commit: r1413396 - in
/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes:
./ beans/ common/
Author: struberg
Date: Sun Nov 25 20:02:38 2012
New Revision: 1413396
URL: http://svn.apache.org/viewvc?rev=1413396&view=rev
Log:
OWB-725 provide test (currently disabled)
Added:
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/DependentModelProducer.java
- copied, changed from r1413190, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/DependentProducer.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/RequestModelProducer.java
- copied, changed from r1413190, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/RequestBean.java
Removed:
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/DependentProducer.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/RequestBean.java
Modified:
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/DependentMethodBeanTest.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/common/DependentModel.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/common/RequestModel.java
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/DependentMethodBeanTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/DependentMethodBeanTest.java?rev=1413396&r1=1413395&r2=1413396&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/DependentMethodBeanTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/DependentMethodBeanTest.java Sun Nov 25 20:02:38 2012
@@ -21,16 +21,14 @@ package org.apache.webbeans.newtests.dis
import java.util.ArrayList;
import java.util.Collection;
+import javax.enterprise.context.RequestScoped;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.Bean;
import junit.framework.Assert;
import org.apache.webbeans.newtests.AbstractUnitTest;
-import org.apache.webbeans.newtests.disposes.beans.AppScopedBean;
-import org.apache.webbeans.newtests.disposes.beans.DependentProducer;
-import org.apache.webbeans.newtests.disposes.beans.DisposerMethodBean;
-import org.apache.webbeans.newtests.disposes.beans.InjectedIntoBean;
-import org.apache.webbeans.newtests.disposes.beans.IntermediateDependentBean;
-import org.apache.webbeans.newtests.disposes.beans.RequestBean;
+import org.apache.webbeans.newtests.disposes.beans.*;
+import org.apache.webbeans.newtests.disposes.beans.DependentModelProducer;
+import org.apache.webbeans.newtests.disposes.common.DependentModel;
import org.apache.webbeans.newtests.disposes.common.RequestModel;
import org.junit.Test;
@@ -44,7 +42,7 @@ public class DependentMethodBeanTest ext
Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
beanClasses.add(AppScopedBean.class);
- beanClasses.add(RequestBean.class);
+ beanClasses.add(RequestModelProducer.class);
startContainer(beanClasses, beanXmls);
@@ -66,23 +64,58 @@ public class DependentMethodBeanTest ext
Collection<String> beanXmls = new ArrayList<String>();
Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
- beanClasses.add(DependentProducer.class);
+ beanClasses.add(DependentModelProducer.class);
beanClasses.add(InjectedIntoBean.class);
beanClasses.add(IntermediateDependentBean.class);
- startContainer(beanClasses, beanXmls);
+ startContainer(beanClasses, beanXmls);
Bean<InjectedIntoBean> bean = (Bean<InjectedIntoBean>)getBeanManager().getBeans("injectedIntoBean").iterator().next();
-
+
CreationalContext<InjectedIntoBean> cc = getBeanManager().createCreationalContext(bean);
-
+
InjectedIntoBean model = (InjectedIntoBean) getBeanManager().getReference(bean, InjectedIntoBean.class, cc);
Assert.assertFalse(model.isBeanNull());
-
+
shutDownContainer();
//Disposer should only be called once
- Assert.assertEquals(1, DependentProducer.disposerCount);
- }
+ Assert.assertEquals(1, DependentModelProducer.disposerCount);
+ }
+
+ //X @Test temporarily disabled
+ @SuppressWarnings("unchecked")
+ public void testDisposerMethodWithRequestScoped()
+ {
+ Collection<String> beanXmls = new ArrayList<String>();
+
+ Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+ beanClasses.add(DependentModelProducer.class);
+ beanClasses.add(DependentModel.class);
+ beanClasses.add(RequestModel.class);
+ beanClasses.add(RequestModelProducer.class);
+
+ startContainer(beanClasses, beanXmls);
+
+ RequestModelProducer.producerGotDestroyed = false;
+ DependentModelProducer.producerGotDestroyed = false;
+ DependentModelProducer.disposerCount = 0;
+
+ RequestModel model = getInstance(RequestModel.class);
+
+ Assert.assertEquals(0, model.getID());
+
+ getLifecycle().getContextService().endContext(RequestScoped.class, null);
+
+ Assert.assertFalse(DependentModelProducer.producerGotDestroyed);
+ Assert.assertFalse(RequestModelProducer.producerGotDestroyed);
+
+ shutDownContainer();
+
+ //Disposer should only be called once
+ Assert.assertEquals(1, DependentModelProducer.disposerCount);
+ }
+
+
}
Copied: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/DependentModelProducer.java (from r1413190, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/DependentProducer.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/DependentModelProducer.java?p2=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/DependentModelProducer.java&p1=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/DependentProducer.java&r1=1413190&r2=1413396&rev=1413396&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/DependentProducer.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/DependentModelProducer.java Sun Nov 25 20:02:38 2012
@@ -18,18 +18,22 @@
*/
package org.apache.webbeans.newtests.disposes.beans;
+import javax.annotation.PreDestroy;
+import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.Dependent;
import javax.enterprise.inject.Disposes;
-import javax.enterprise.inject.New;
import javax.enterprise.inject.Produces;
import org.apache.webbeans.newtests.disposes.common.DependentModel;
import org.apache.webbeans.newtests.disposes.common.HttpHeader;
-public class DependentProducer
+@ApplicationScoped
+public class DependentModelProducer
{
public static int disposerCount = 0;
+ public static boolean producerGotDestroyed = false;
+
@Produces @Dependent @HttpHeader
public static DependentModel dproduce()
{
@@ -40,7 +44,14 @@ public class DependentProducer
public static void ddispose(@Disposes @HttpHeader DependentModel model)
{
- DependentProducer.disposerCount++;
+ DependentModelProducer.disposerCount++;
System.out.println("disposed DependentModel from DependentDisposer");
}
+
+ @PreDestroy
+ public void destroyMe()
+ {
+ producerGotDestroyed = true;
+ }
+
}
Copied: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/RequestModelProducer.java (from r1413190, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/RequestBean.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/RequestModelProducer.java?p2=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/RequestModelProducer.java&p1=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/RequestBean.java&r1=1413190&r2=1413396&rev=1413396&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/RequestBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/RequestModelProducer.java Sun Nov 25 20:02:38 2012
@@ -23,23 +23,34 @@ import javax.enterprise.context.Applicat
import javax.enterprise.inject.Disposes;
import javax.enterprise.inject.New;
import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
import javax.inject.Named;
+import org.apache.webbeans.newtests.disposes.common.DependentModel;
+import org.apache.webbeans.newtests.disposes.common.HttpHeader;
import org.apache.webbeans.newtests.disposes.common.RequestModel;
@ApplicationScoped
@Named("org.apache.webbeans.newtests.disposes.beans.RequestBean")
-public class RequestBean {
+public class RequestModelProducer {
+
+ @Inject @HttpHeader
+ private DependentModel dependentModel;
+
+ public static boolean producerGotDestroyed = false;
@Produces @RequestScoped @Named("rproduce")
- public RequestModel rproduce(@New RequestModel rmodel)
+ public RequestModel rproduce()
{
+ RequestModel rmodel = new RequestModel();
+ rmodel.setDisposeModel(dependentModel);
+
System.out.println("produced RequestModel=" + rmodel);
return rmodel;
}
public void rdispose(@Disposes RequestModel rmodel)
{
- System.out.println("disposed RequestModel=" + rmodel);
+ producerGotDestroyed = true;
}
}
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/common/DependentModel.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/common/DependentModel.java?rev=1413396&r1=1413395&r2=1413396&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/common/DependentModel.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/common/DependentModel.java Sun Nov 25 20:02:38 2012
@@ -18,6 +18,9 @@
*/
package org.apache.webbeans.newtests.disposes.common;
+import javax.enterprise.inject.Typed;
+
+@Typed()
public class DependentModel
{
public boolean value = false;
@@ -25,7 +28,7 @@ public class DependentModel
public int id = 0;
public DependentModel() {
- System.out.println(this.getClass().getSimpleName() + ".DependentModel() is invoked");
+ System.out.println(this.getClass().getSimpleName() + ".DependentModel() is constructed");
}
/**
* @return the value
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/common/RequestModel.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/common/RequestModel.java?rev=1413396&r1=1413395&r2=1413396&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/common/RequestModel.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/common/RequestModel.java Sun Nov 25 20:02:38 2012
@@ -18,13 +18,32 @@
*/
package org.apache.webbeans.newtests.disposes.common;
+import javax.annotation.PreDestroy;
+import javax.enterprise.inject.Typed;
import javax.inject.Inject;
-public class RequestModel {
+@Typed
+public class RequestModel
+{
- @Inject @HttpHeader DependentModel disposeModel;
+ private DependentModel disposeModel;
- public int getID() {
+ public int getID()
+ {
return disposeModel.getId();
}
+
+ public DependentModel getDisposeModel() {
+ return disposeModel;
+ }
+
+ public void setDisposeModel(DependentModel disposeModel) {
+ this.disposeModel = disposeModel;
+ }
+
+ @PreDestroy
+ public void destroyMe()
+ {
+ System.out.println("RequestModel got destroyed");
+ }
}