[seam-commits] Seam SVN: r8918 - in trunk/src/main/org/jboss/seam: intercept and 1 other directory.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Fri Sep 5 06:43:42 EDT 2008
Author: pete.muir at jboss.org
Date: 2008-09-05 06:43:40 -0400 (Fri, 05 Sep 2008)
New Revision: 8918
Added:
trunk/src/main/org/jboss/seam/annotations/intercept/PostActivate.java
trunk/src/main/org/jboss/seam/annotations/intercept/PrePassivate.java
Modified:
trunk/src/main/org/jboss/seam/intercept/Interceptor.java
trunk/src/main/org/jboss/seam/intercept/OptimizedInterceptor.java
Log:
Add pree EE5 synonyms for PostActivate and PrePassivate
Added: trunk/src/main/org/jboss/seam/annotations/intercept/PostActivate.java
===================================================================
--- trunk/src/main/org/jboss/seam/annotations/intercept/PostActivate.java (rev 0)
+++ trunk/src/main/org/jboss/seam/annotations/intercept/PostActivate.java 2008-09-05 10:43:40 UTC (rev 8918)
@@ -0,0 +1,20 @@
+//$Id: AroundInvoke.java 5522 2007-06-25 22:28:50Z gavin $
+package org.jboss.seam.annotations.intercept;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Synonym for {@link javax.ejb.PostActivate}, for
+ * use in a pre Java EE 5 environment.
+ *
+ * @author Pete Muir
+ */
+ at Target(METHOD)
+ at Retention(RUNTIME)
+ at Documented
+public @interface PostActivate {}
Property changes on: trunk/src/main/org/jboss/seam/annotations/intercept/PostActivate.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/org/jboss/seam/annotations/intercept/PrePassivate.java
===================================================================
--- trunk/src/main/org/jboss/seam/annotations/intercept/PrePassivate.java (rev 0)
+++ trunk/src/main/org/jboss/seam/annotations/intercept/PrePassivate.java 2008-09-05 10:43:40 UTC (rev 8918)
@@ -0,0 +1,20 @@
+//$Id: AroundInvoke.java 5522 2007-06-25 22:28:50Z gavin $
+package org.jboss.seam.annotations.intercept;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Synonym for {@link javax.ejb.PrePassivate}, for
+ * use in a pre Java EE 5 environment.
+ *
+ * @author Pete Muir
+ */
+ at Target(METHOD)
+ at Retention(RUNTIME)
+ at Documented
+public @interface PrePassivate {}
Property changes on: trunk/src/main/org/jboss/seam/annotations/intercept/PrePassivate.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/org/jboss/seam/intercept/Interceptor.java
===================================================================
--- trunk/src/main/org/jboss/seam/intercept/Interceptor.java 2008-09-05 10:11:52 UTC (rev 8917)
+++ trunk/src/main/org/jboss/seam/intercept/Interceptor.java 2008-09-05 10:43:40 UTC (rev 8918)
@@ -13,6 +13,8 @@
import org.jboss.seam.Component;
import org.jboss.seam.annotations.intercept.AroundInvoke;
import org.jboss.seam.annotations.intercept.InterceptorType;
+import org.jboss.seam.annotations.intercept.PostActivate;
+import org.jboss.seam.annotations.intercept.PrePassivate;
import org.jboss.seam.util.Reflections;
/**
@@ -137,11 +139,11 @@
{
preDestroyMethod = method;
}
- if ( method.isAnnotationPresent(PRE_PASSIVATE) )
+ if ( method.isAnnotationPresent(PRE_PASSIVATE) || method.isAnnotationPresent(PrePassivate.class) )
{
prePassivateMethod = method;
}
- if ( method.isAnnotationPresent(POST_ACTIVATE) )
+ if ( method.isAnnotationPresent(POST_ACTIVATE) || method.isAnnotationPresent(PostActivate.class) )
{
postActivateMethod = method;
}
@@ -232,7 +234,14 @@
{
Reflections.invokeAndWrap(annotationInjectorMethod, statelessUserInterceptorInstance, annotation);
}
- return ((Boolean) Reflections.invokeAndWrap(interceptorEnabledMethod, statelessUserInterceptorInstance));
+ if (isOptimized())
+ {
+ return ( (OptimizedInterceptor) statelessUserInterceptorInstance ).isInterceptorEnabled();
+ }
+ else
+ {
+ return ((Boolean) Reflections.invokeAndWrap(interceptorEnabledMethod, statelessUserInterceptorInstance));
+ }
}
else
{
Modified: trunk/src/main/org/jboss/seam/intercept/OptimizedInterceptor.java
===================================================================
--- trunk/src/main/org/jboss/seam/intercept/OptimizedInterceptor.java 2008-09-05 10:11:52 UTC (rev 8917)
+++ trunk/src/main/org/jboss/seam/intercept/OptimizedInterceptor.java 2008-09-05 10:43:40 UTC (rev 8918)
@@ -5,9 +5,20 @@
* interceptor, to make the stacktrace smaller.
*
* @author Gavin King
+ * @author Pete Muir
*
*/
public interface OptimizedInterceptor
{
+
public Object aroundInvoke(InvocationContext ic) throws Exception;
+
+ /**
+ * Returns true if this interceptor should be enabled. The component and the
+ * annotation will be injected into the interceptor instance before this
+ * method is called, and can be used to decide whether the interceptor should
+ * be enabled
+ */
+ public boolean isInterceptorEnabled();
+
}
More information about the seam-commits
mailing list