[jboss-cvs] JBossAS SVN: r61025 - in trunk/ejb3/src/main/org/jboss/ejb3: interceptor and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Mar 1 07:51:45 EST 2007


Author: thomas.diesler at jboss.com
Date: 2007-03-01 07:51:44 -0500 (Thu, 01 Mar 2007)
New Revision: 61025

Modified:
   trunk/ejb3/src/main/org/jboss/ejb3/AbstractPool.java
   trunk/ejb3/src/main/org/jboss/ejb3/Container.java
   trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java
   trunk/ejb3/src/main/org/jboss/ejb3/interceptor/LifecycleInterceptorHandler.java
   trunk/ejb3/src/main/org/jboss/ejb3/interceptor/LifecycleInvocationContextImpl.java
   trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceContainer.java
Log:
Fix postCostruct for ejb21 SFSB with partameters in ejbCreate

Modified: trunk/ejb3/src/main/org/jboss/ejb3/AbstractPool.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/AbstractPool.java	2007-03-01 09:50:26 UTC (rev 61024)
+++ trunk/ejb3/src/main/org/jboss/ejb3/AbstractPool.java	2007-03-01 12:51:44 UTC (rev 61025)
@@ -118,7 +118,7 @@
       //TODO This needs to be reimplemented as replacement for create() on home interface
       container.invokeInit(bean);
 
-      container.invokePostConstruct(ctx);
+      container.invokePostConstruct(ctx, new Object[0]);
       return ctx;
    }
 
@@ -180,7 +180,7 @@
       //TODO This needs to be reimplemented as replacement for create() on home interface
       container.invokeInit(bean, initTypes, initValues);
 
-      container.invokePostConstruct(ctx);
+      container.invokePostConstruct(ctx, initValues);
       return ctx;
    }
 

Modified: trunk/ejb3/src/main/org/jboss/ejb3/Container.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/Container.java	2007-03-01 09:50:26 UTC (rev 61024)
+++ trunk/ejb3/src/main/org/jboss/ejb3/Container.java	2007-03-01 12:51:44 UTC (rev 61025)
@@ -56,7 +56,7 @@
 
    Object construct();
 
-   void invokePostConstruct(BeanContext beanContext);
+   void invokePostConstruct(BeanContext beanContext, Object[] params);
 
    void invokePreDestroy(BeanContext beanContext);
 

Modified: trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java	2007-03-01 09:50:26 UTC (rev 61024)
+++ trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java	2007-03-01 12:51:44 UTC (rev 61025)
@@ -548,9 +548,9 @@
       pool.setInjectors(injectors.toArray(new Injector[injectors.size()]));
    }
 
-   public void invokePostConstruct(BeanContext beanContext)
+   public void invokePostConstruct(BeanContext beanContext, Object[] params)
    {
-      callbackHandler.postConstruct(beanContext);
+      callbackHandler.postConstruct(beanContext, params);
    }
 
    public void invokePreDestroy(BeanContext beanContext)

Modified: trunk/ejb3/src/main/org/jboss/ejb3/interceptor/LifecycleInterceptorHandler.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/interceptor/LifecycleInterceptorHandler.java	2007-03-01 09:50:26 UTC (rev 61024)
+++ trunk/ejb3/src/main/org/jboss/ejb3/interceptor/LifecycleInterceptorHandler.java	2007-03-01 12:51:44 UTC (rev 61025)
@@ -97,15 +97,12 @@
       return timeoutCalllbackHash;
    }
 
-   public void postConstruct(BeanContext ctx)
+   public void postConstruct(BeanContext ctx, Object[] params)
    {
       try
       {
-         InvocationContext ic = LifecycleInvocationContextImpl.getLifecycleInvocationContext(
-               PostConstruct.class,
-               ctx,
-               postConstructs,
-               beanPostConstructs);
+         InvocationContext ic = LifecycleInvocationContextImpl.getLifecycleInvocationContext(PostConstruct.class, ctx, postConstructs, beanPostConstructs);
+         ic.setParameters(params);
          ic.proceed();
       }
       catch (Exception e)

Modified: trunk/ejb3/src/main/org/jboss/ejb3/interceptor/LifecycleInvocationContextImpl.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/interceptor/LifecycleInvocationContextImpl.java	2007-03-01 09:50:26 UTC (rev 61024)
+++ trunk/ejb3/src/main/org/jboss/ejb3/interceptor/LifecycleInvocationContextImpl.java	2007-03-01 12:51:44 UTC (rev 61025)
@@ -32,6 +32,7 @@
 import javax.ejb.PrePassivate;
 
 import org.jboss.ejb3.BeanContext;
+import org.jboss.logging.Logger;
 
 /**
  * 
@@ -40,6 +41,7 @@
  */
 public abstract class LifecycleInvocationContextImpl implements InvocationContext
 {
+   private static final Logger log = Logger.getLogger(LifecycleInvocationContextImpl.class);
    
    private int currentInterceptor;
    private int currentMethod;
@@ -48,6 +50,7 @@
    Object[] instances;
    private Method[] beanMethods;
    private HashMap metadata;
+   private Object[] parameters;
 
    protected LifecycleInvocationContextImpl()
    {
@@ -87,12 +90,15 @@
 
    public Object[] getParameters()
    {
-      return new Object[0];
+      if (parameters == null)
+         parameters = new Object[0];
+      
+      return parameters;
    }
 
    public void setParameters(Object[] params)
    {
-      //Do nothing
+      this.parameters = params;
    }
 
 
@@ -156,7 +162,10 @@
          {
             for (Method beanMethod : beanMethods)
             {
-               beanMethod.invoke(getTarget(), new Object[0]);
+               if (beanMethod.getParameterAnnotations().length == getParameters().length)
+                  beanMethod.invoke(getTarget(), getParameters());
+               else
+                  log.error ("Skip attempt of invalid lifecycle method invocation: " + beanMethod);
             }
          }
          catch (InvocationTargetException e)

Modified: trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceContainer.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceContainer.java	2007-03-01 09:50:26 UTC (rev 61024)
+++ trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceContainer.java	2007-03-01 12:51:44 UTC (rev 61025)
@@ -244,7 +244,7 @@
       */
    }
    
-   public void invokePostConstruct(BeanContext beanContext)
+   public void invokePostConstruct(BeanContext beanContext, Object[] params)
    {
       //Ignore
    }




More information about the jboss-cvs-commits mailing list