[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