01: /*
02: * Copyright (c) 2002-2006 by OpenSymphony
03: * All rights reserved.
04: */
05: package com.opensymphony.xwork.interceptor.component;
06:
07: import com.opensymphony.xwork.ActionContext;
08: import com.opensymphony.xwork.ActionInvocation;
09: import com.opensymphony.xwork.interceptor.AroundInterceptor;
10: import org.apache.commons.logging.Log;
11: import org.apache.commons.logging.LogFactory;
12:
13: /**
14: * <!-- START SNIPPET: description -->
15: *
16: * A simple interceptor that applies the WebWork IOC container {@link ComponentManager} against the executing action. Note, WebWork IOC is deprecated and it is highly recommended that you look at alternative solutions, such as Spring.
17: *
18: * <!-- END SNIPPET: description -->
19: *
20: * <p/> <u>Interceptor parameters:</u>
21: *
22: * <!-- START SNIPPET: parameters -->
23: *
24: * <ul>
25: *
26: * <li>None</li>
27: *
28: * </ul>
29: *
30: * <!-- END SNIPPET: parameters -->
31: *
32: * <p/> <u>Extending the interceptor:</u>
33: *
34: * <p/>
35: *
36: * <!-- START SNIPPET: extending -->
37: *
38: * There are no known extension points to this interceptor.
39: *
40: * <!-- END SNIPPET: extending -->
41: *
42: * <p/> <u>Example code:</u>
43: *
44: * <pre>
45: * <!-- START SNIPPET: example -->
46: * <action name="someAction" class="com.examples.SomeAction">
47: * <interceptor-ref name="componentStack"/>
48: * <interceptor-ref name="basicStack"/>
49: * <result name="success">good_result.ftl</result>
50: * </action>
51: * <!-- END SNIPPET: example -->
52: * </pre>
53: *
54: * @author joew@thoughtworks.com
55: * @author plightbo
56: * @deprecated WebWork's IoC has been deprecated, please use an alternative such as Spring.
57: * @version $Revision: 860 $
58: */
59: public class ComponentInterceptor extends AroundInterceptor {
60: public static final String COMPONENT_MANAGER = "com.opensymphony.xwork.interceptor.component.ComponentManager";
61: private static final Log LOG = LogFactory
62: .getLog(ComponentInterceptor.class);
63: private static boolean deprecationLogged = false;
64:
65: public void init() {
66: }
67:
68: protected void after(ActionInvocation dispatcher, String result)
69: throws Exception {
70: }
71:
72: protected void before(ActionInvocation dispatcher) throws Exception {
73: if (!deprecationLogged) {
74: LOG
75: .info("WebWork's IoC has been deprecated, please use an alternative such as Spring");
76: deprecationLogged = true;
77: }
78: ComponentManager container = (ComponentManager) ActionContext
79: .getContext().get(COMPONENT_MANAGER);
80:
81: if (container != null) {
82: container.initializeObject(dispatcher.getAction());
83: }
84: }
85: }
|