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.opensymphony.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

Reply via email to