[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