Author: gerdogdu
Date: Tue May 18 15:01:19 2010
New Revision: 945687
URL: http://svn.apache.org/viewvc?rev=945687&view=rev
Log:
[OWB-371] no lifecycle interceptors for non-contextual EJB
Modified:
openwebbeans/trunk/samples/ejb-sample/src/main/java/org/apache/webbeans/sample/ejb/EchoBean.java
openwebbeans/trunk/samples/ejb-sample/src/main/java/org/apache/webbeans/sample/ejb/LogInterceptor.java
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
Modified:
openwebbeans/trunk/samples/ejb-sample/src/main/java/org/apache/webbeans/sample/ejb/EchoBean.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/samples/ejb-sample/src/main/java/org/apache/webbeans/sample/ejb/EchoBean.java?rev=945687&r1=945686&r2=945687&view=diff
==============================================================================
---
openwebbeans/trunk/samples/ejb-sample/src/main/java/org/apache/webbeans/sample/ejb/EchoBean.java
(original)
+++
openwebbeans/trunk/samples/ejb-sample/src/main/java/org/apache/webbeans/sample/ejb/EchoBean.java
Tue May 18 15:01:19 2010
@@ -13,6 +13,8 @@
*/
package org.apache.webbeans.sample.ejb;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
import javax.ejb.Stateless;
import javax.enterprise.context.Dependent;
import javax.interceptor.Interceptors;
@@ -30,4 +32,15 @@ public class EchoBean implements Echo
return "Hello " + name;
}
+ @PostConstruct
+ public void postConstruct()
+ {
+ System.out.println("Post construct call in " +
EchoBean.class.getName() + " via EJB interceptor");
+ }
+
+ @PreDestroy
+ public void preDestroy()
+ {
+ System.out.println("PreDestroy construct call in " +
EchoBean.class.getName() + " via EJB interceptor");
+ }
}
Modified:
openwebbeans/trunk/samples/ejb-sample/src/main/java/org/apache/webbeans/sample/ejb/LogInterceptor.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/samples/ejb-sample/src/main/java/org/apache/webbeans/sample/ejb/LogInterceptor.java?rev=945687&r1=945686&r2=945687&view=diff
==============================================================================
---
openwebbeans/trunk/samples/ejb-sample/src/main/java/org/apache/webbeans/sample/ejb/LogInterceptor.java
(original)
+++
openwebbeans/trunk/samples/ejb-sample/src/main/java/org/apache/webbeans/sample/ejb/LogInterceptor.java
Tue May 18 15:01:19 2010
@@ -40,13 +40,13 @@ public class LogInterceptor
@PostConstruct
public void postConstruct(InvocationContext context)
{
- System.out.println("Post Construct");
+ System.out.println("Post Construct with OWB interceptor");
}
@PreDestroy
public void preDestroy(InvocationContext context)
{
- System.out.println("Pre Destroy");
+ System.out.println("Pre Destroy with OWB interceptor");
}
}
Modified:
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java?rev=945687&r1=945686&r2=945687&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
(original)
+++
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
Tue May 18 15:01:19 2010
@@ -224,15 +224,21 @@ public class OpenWebBeansEjbInterceptor
impl.setCreationalContext(threadLocalCreationalContext.get());
try
{
+ //run OWB interceptors
impl.proceed();
+
+ //run EJB interceptors
+ context.proceed();
}
catch (Exception e)
{
- logger.error(OWBLogConst.ERROR_0008, new
Object[]{"@PostConstruct."}, e);
+ logger.error(OWBLogConst.ERROR_0008, new
Object[]{"@PostConstruct."}, e);
+ throw new RuntimeException(e);
}
}
}
- else {
+ else
+ {
runPrePostForNonContextual(context,
InterceptorType.POST_CONSTRUCT);
}
@@ -269,15 +275,21 @@ public class OpenWebBeansEjbInterceptor
impl.setCreationalContext(threadLocalCreationalContext.get());
try
{
+ //Call OWB interceptord
impl.proceed();
+
+ //Call EJB interceptors
+ context.proceed();
}
catch (Exception e)
{
logger.error(OWBLogConst.ERROR_0008, new
Object[]{"@PreDestroy."}, e);
+ throw new RuntimeException(e);
}
}
}
- else {
+ else
+ {
runPrePostForNonContextual(context, InterceptorType.PRE_DESTROY);
}
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java?rev=945687&r1=945686&r2=945687&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
Tue May 18 15:01:19 2010
@@ -383,10 +383,21 @@ public final class WebBeansInterceptorCo
while (it.hasNext())
{
WebBeansInterceptor<?> interceptor =
(WebBeansInterceptor<?>) it.next();
-
- WebBeansUtil.configureInterceptorMethods(interceptor,
annotatedType, AroundInvoke.class, true, true, stack, method);
- WebBeansUtil.configureInterceptorMethods(interceptor,
annotatedType, PostConstruct.class, true, true, stack, method);
- WebBeansUtil.configureInterceptorMethods(interceptor,
annotatedType, PreDestroy.class, true, true, stack, method);
+
+ AnnotatedType<?> interAnnoType =
interceptor.getAnnotatedType();
+
+ if(interAnnoType == null)
+ {
+ WebBeansUtil.configureInterceptorMethods(interceptor,
interceptor.getClazz(), AroundInvoke.class, true, true, stack, method, true);
+ WebBeansUtil.configureInterceptorMethods(interceptor,
interceptor.getClazz(), PostConstruct.class, true, true, stack, method, true);
+ WebBeansUtil.configureInterceptorMethods(interceptor,
interceptor.getClazz(), PreDestroy.class, true, true, stack, method, true);
+ }
+ else
+ {
+ WebBeansUtil.configureInterceptorMethods(interceptor,
interAnnoType, AroundInvoke.class, true, true, stack, method);
+ WebBeansUtil.configureInterceptorMethods(interceptor,
interAnnoType, PostConstruct.class, true, true, stack, method);
+ WebBeansUtil.configureInterceptorMethods(interceptor,
interAnnoType, PreDestroy.class, true, true, stack, method);
+ }
}
}
}