I would think that only 1 abstract interceptor is required, though the one
that is provided doesn't allow the after method to respond if there is an
exception.

Its your call.

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On 
> Behalf Of Pat Lightbody
> Sent: Thursday, 17 July 2003 1:19 AM
> To: [EMAIL PROTECTED]
> Subject: Re: [OS-webwork] BeforeAfterInterceptor
> 
> 
> This looks fine, but why is it called ContainerInterceptor?
> 
> This might be yet another example of why interceptor 
> configurations are a good thing... couldn't this just be a 
> paramter in xwork.xml? Also, couldn't subclasses also just 
> define the behavior they want by toggling a switch. I'd 
> rather have one base/abstract interceptor in XWork.
> 
> -Pat
> 
> ----- Original Message -----
> From: "Cameron Braid" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, July 15, 2003 10:23 PM
> Subject: RE: [OS-webwork] BeforeAfterInterceptor
> 
> 
> I have implemented a ContainerInterceptor that always 
> executed the after method, though it still allows the after 
> processing to be conditional on an exception being thrown.
> 
> Shall I add it to xwork ?
> 
> 01 /*
> 02  * Created on 15/07/2003
> 03  *
> 04  */
> 05 package interceptor;
> 06
> 07 import com.opensymphony.xwork.ActionInvocation;
> 08 import com.opensymphony.xwork.interceptor.Interceptor;
> 09
> 10 /**
> 11  *
> 12  * An interceptor that executes an operation before and 
> after the invocation, irrespective of whether or not 13  * an 
> exception is thrown. 14  * 15  * @author CameronBraid 16  * 
> 17  */ 18 public abstract class ContainerInterceptor 
> implements Interceptor 19 { 20
> 21   /**
> 22    *
> 23    */
> 24   public ContainerInterceptor()
> 25   {
> 26     super();
> 27   }
> 28
> 29   /* (non-Javadoc)
> 30    * @see com.opensymphony.xwork.interceptor.Interceptor#destroy()
> 31    */
> 32   public abstract void destroy();
> 33
> 34   /* (non-Javadoc)
> 35    * @see com.opensymphony.xwork.interceptor.Interceptor#init()
> 36    */
> 37   public abstract void init();
> 38
> 39   public abstract void before(ActionInvocation invocation) throws
> Exception;
> 40   public abstract void after(ActionInvocation invocation, 
> String result,
> Exception exception) throws Exception;
> 41
> 42   /* (non-Javadoc)
> 43    * @see
> com.opensymphony.xwork.interceptor.Interceptor#intercept(com.o
> pensymphony.xw
> ork.ActionInvocation)
> 44    */
> 45   public String intercept(ActionInvocation invocation) 
> throws Exception
> 46   {
> 47     before(invocation);
> 48
> 49     Exception exception = null;
> 50     String result = null;
> 51
> 52     try
> 53     {
> 54       result = invocation.invoke();
> 55     }
> 56     catch (Exception e)
> 57     {
> 58       exception = e;
> 59     }
> 60
> 61     after(invocation, result, exception);
> 62
> 63     if (exception == null)
> 64     {
> 65       return result;
> 66     }
> 67     else
> 68     {
> 69       throw exception;
> 70     }
> 71
> 72   }
> 73
> 74 }
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On 
> Behalf Of Jason Carreira
> Sent: Tuesday, 15 July 2003 10:48 PM
> To: [EMAIL PROTECTED]
> Subject: RE: [OS-webwork] BeforeAfterInterceptor
> 
> 
> I don't think this is good to do as a general rule. Most 
> times you want to stop processing when an exception occurs. 
> You could implement this behavior with a couple of carefully 
> placed interceptors.
> 
> -----Original Message-----
> From: Cameron Braid [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, July 15, 2003 5:08 AM
> To: [EMAIL PROTECTED]
> Subject: [OS-webwork] BeforeAfterInterceptor
> 
> 
> When extending the BeforeAfterInterceptor, if the invocation 
> throws an exception, the after method isn't called.
> 
> Should the BeforeAfterInterceptor catch the exception, run 
> the after() and then re-throw the exception ?
> 
> Any thoughts anyone ?
> 
> 
> 
> 
> -------------------------------------------------------
> This SF.net email is sponsored by: VM Ware
> With VMware you can run multiple operating systems on a 
> single machine. WITHOUT REBOOTING! Mix Linux / Windows / 
> Novell virtual machines at the same time. Free trial click 
> here: http://www.vmware.com/wl/offer/345/0
> _______________________________________________
> Opensymphony-webwork mailing list 
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> 



-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

Reply via email to