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