| /* |
| * Copyright 2002-2006,2009 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package com.opensymphony.xwork2; |
| |
| import com.opensymphony.xwork2.config.Configuration; |
| import com.opensymphony.xwork2.config.ConfigurationManager; |
| import com.opensymphony.xwork2.util.logging.LoggerFactory; |
| |
| import java.util.Collections; |
| import java.util.Map; |
| |
| /** |
| * Simple facade to make using XWork standalone easier |
| */ |
| public class XWork { |
| |
| ConfigurationManager configurationManager; |
| |
| public XWork() { |
| this(new ConfigurationManager()); |
| } |
| |
| public XWork(ConfigurationManager mgr) { |
| this.configurationManager = mgr; |
| } |
| |
| public void setLoggerFactory(LoggerFactory factory) { |
| LoggerFactory.setLoggerFactory(factory); |
| } |
| |
| /** |
| * Executes an action |
| * |
| * @param namespace The namespace |
| * @param name The action name |
| * @param method The method name |
| * @throws Exception If anything goes wrong |
| */ |
| public void executeAction(String namespace, String name, String method) throws XWorkException { |
| Map<String, Object> extraContext = Collections.emptyMap(); |
| executeAction(namespace, name, method, extraContext); |
| } |
| |
| /** |
| * Executes an action with extra context information |
| * |
| * @param namespace The namespace |
| * @param name The action name |
| * @param method The method name |
| * @param extraContext A map of extra context information |
| * @throws Exception If anything goes wrong |
| */ |
| public void executeAction(String namespace, String name, String method, Map<String, Object> extraContext) throws XWorkException { |
| Configuration config = configurationManager.getConfiguration(); |
| try { |
| ActionProxy proxy = config.getContainer().getInstance(ActionProxyFactory.class).createActionProxy( |
| namespace, name, method, extraContext, true, false); |
| |
| proxy.execute(); |
| } catch (Exception e) { |
| throw new XWorkException(e); |
| } finally { |
| ActionContext.setContext(null); |
| } |
| } |
| } |