[jboss-cvs] JBossAS SVN: r102271 - in projects/ejb3/trunk: testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Mar 11 05:02:24 EST 2010
Author: jaikiran
Date: 2010-03-11 05:02:23 -0500 (Thu, 11 Mar 2010)
New Revision: 102271
Modified:
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/Base.java
projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/Stateful.java
projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/StatefulBean.java
projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/StatelessBean.java
projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/unit/EjbContextUnitTestCase.java
Log:
EJBTHREE-2038 Pushed/popped the context while invoking the postconstruct
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java 2010-03-11 09:59:53 UTC (rev 102270)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java 2010-03-11 10:02:23 UTC (rev 102271)
@@ -1123,14 +1123,17 @@
AllowedOperationsAssociation.pushInMethodFlag(AllowedOperationsAssociation.IN_EJB_CREATE);
try
{
+ this.pushContext(beanContext);
+
invokeCallback(beanContext, PostConstruct.class);
}
finally
{
+ this.popContext();
AllowedOperationsAssociation.popInMethodFlag();
}
}
-
+
@Deprecated
public void invokePostConstruct(BeanContext beanContext, Object[] params)
{
Modified: projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/Base.java
===================================================================
--- projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/Base.java 2010-03-11 09:59:53 UTC (rev 102270)
+++ projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/Base.java 2010-03-11 10:02:23 UTC (rev 102271)
@@ -30,4 +30,6 @@
public interface Base
{
<T> T testBusinessObject(Class<T> businessInterface);
+
+ boolean wasEJBContextAvailableInPostConstruct();
}
Modified: projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/Stateful.java
===================================================================
--- projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/Stateful.java 2010-03-11 09:59:53 UTC (rev 102270)
+++ projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/Stateful.java 2010-03-11 10:02:23 UTC (rev 102271)
@@ -51,4 +51,5 @@
EJBObject getEJBObject();
+ public boolean wasEJBContextAvailableInPostConstruct();
}
Modified: projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/StatefulBean.java
===================================================================
--- projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/StatefulBean.java 2010-03-11 09:59:53 UTC (rev 102270)
+++ projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/StatefulBean.java 2010-03-11 10:02:23 UTC (rev 102271)
@@ -58,6 +58,9 @@
EJBObject ejbObject;
String state = "";
+ private boolean ejbContextAvailableInPostConstruct = false;
+
+
public void testEjbContext() throws Exception
{
InitialContext jndiContext = new InitialContext();
@@ -118,15 +121,28 @@
}
@PostConstruct
- public void postConstruct()
+ public void postConstruct() throws Exception
{
ejbLocalObject = sessionContext.getEJBLocalObject();
ejbObject = sessionContext.getEJBObject();
+
+ InitialContext jndiContext = new InitialContext();
+ EJBContext ejbContext = (EJBContext) jndiContext.lookup("java:comp/EJBContext");
+ log.debug("EJBContext in postconstruct of bean " + this.getClass() + " is " + ejbContext);
+ this.ejbContextAvailableInPostConstruct = true;
}
public Object testLocalOnlyGetBusinessObject() throws Exception
{
return statefulLocalOnly.getBusinessObject();
}
+
+ /**
+ * @see org.jboss.ejb3.test.ejbcontext.Stateful#wasEJBContextAvailableInPostConstruct()
+ */
+ public boolean wasEJBContextAvailableInPostConstruct()
+ {
+ return this.ejbContextAvailableInPostConstruct;
+ }
}
Modified: projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/StatelessBean.java
===================================================================
--- projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/StatelessBean.java 2010-03-11 09:59:53 UTC (rev 102270)
+++ projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/StatelessBean.java 2010-03-11 10:02:23 UTC (rev 102271)
@@ -23,6 +23,7 @@
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
+import javax.ejb.EJBContext;
import javax.ejb.EJBLocalObject;
import javax.ejb.EJBObject;
import javax.ejb.Local;
@@ -59,6 +60,8 @@
StatelessLocal ejbLocalObject;
StatelessRemote ejbObject;
+ private boolean ejbContextAvailableInPostConstruct;
+
public void noop()
{
@@ -112,10 +115,23 @@
}
@PostConstruct
- public void postConstruct()
+ public void postConstruct() throws Exception
{
ejbLocalObject = (StatelessLocal)sessionContext.getEJBLocalObject();
ejbObject = (StatelessRemote)sessionContext.getEJBObject();
+
+ InitialContext jndiContext = new InitialContext();
+ EJBContext ejbContext = (EJBContext) jndiContext.lookup("java:comp/EJBContext");
+ log.debug("EJBContext in postconstruct of bean " + this.getClass() + " is " + ejbContext);
+ this.ejbContextAvailableInPostConstruct = true;
}
+ /**
+ * @see org.jboss.ejb3.test.ejbcontext.Base#wasEJBContextAvailableInPostConstruct()
+ */
+ public boolean wasEJBContextAvailableInPostConstruct()
+ {
+ return this.ejbContextAvailableInPostConstruct;
+ }
+
}
Modified: projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/unit/EjbContextUnitTestCase.java
===================================================================
--- projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/unit/EjbContextUnitTestCase.java 2010-03-11 09:59:53 UTC (rev 102270)
+++ projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/ejbcontext/unit/EjbContextUnitTestCase.java 2010-03-11 10:02:23 UTC (rev 102271)
@@ -231,6 +231,20 @@
Object o = sfsb.testLocalOnlyGetBusinessObject();
assertNotNull(o);
}
+
+ public void testEJBContextInPostConstructOfSFSB() throws Exception
+ {
+ Stateful stateful = (Stateful) getInitialContext().lookup(StatefulBean.class.getSimpleName() + "/remote");
+ assertTrue("EJBContext was *not* available in @PostConstruct of stateful bean", stateful
+ .wasEJBContextAvailableInPostConstruct());
+ }
+
+ public void testEJBContextInPostConstructOfSLSB() throws Exception
+ {
+ StatelessBusinessRemote stateless = (StatelessBusinessRemote) getInitialContext().lookup(
+ StatelessBusinessRemote.JNDI_NAME);
+ assertTrue("EJBContext was *not* available in @PostConstruct of stateless bean", stateless.wasEJBContextAvailableInPostConstruct());
+ }
public static Test suite() throws Exception
{
More information about the jboss-cvs-commits
mailing list