[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