01: /*
02: * $Id: StrutsActionProxy.java 506198 2007-02-12 00:57:44Z husted $
03: *
04: * Licensed to the Apache Software Foundation (ASF) under one
05: * or more contributor license agreements. See the NOTICE file
06: * distributed with this work for additional information
07: * regarding copyright ownership. The ASF licenses this file
08: * to you under the Apache License, Version 2.0 (the
09: * "License"); you may not use this file except in compliance
10: * with the License. You may obtain a copy of the License at
11: *
12: * http://www.apache.org/licenses/LICENSE-2.0
13: *
14: * Unless required by applicable law or agreed to in writing,
15: * software distributed under the License is distributed on an
16: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17: * KIND, either express or implied. See the License for the
18: * specific language governing permissions and limitations
19: * under the License.
20: */
21: // Copyright 2006 Google Inc. All Rights Reserved.
22: package org.apache.struts2.impl;
23:
24: import com.opensymphony.xwork2.ActionContext;
25: import com.opensymphony.xwork2.DefaultActionProxy;
26:
27: import java.util.Map;
28:
29: public class StrutsActionProxy extends DefaultActionProxy {
30:
31: private static final long serialVersionUID = -2434901249671934080L;
32:
33: public StrutsActionProxy(String namespace, String actionName,
34: Map extraContext, boolean executeResult,
35: boolean cleanupContext) throws Exception {
36: super (namespace, actionName, extraContext, executeResult,
37: cleanupContext);
38: }
39:
40: public String execute() throws Exception {
41: ActionContext previous = ActionContext.getContext();
42: ActionContext.setContext(invocation.getInvocationContext());
43: try {
44: // This is for the new API:
45: // return RequestContextImpl.callInContext(invocation, new Callable<String>() {
46: // public String call() throws Exception {
47: // return invocation.invoke();
48: // }
49: // });
50:
51: return invocation.invoke();
52: } finally {
53: if (cleanupContext)
54: ActionContext.setContext(previous);
55: }
56: }
57: }
|