Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java Mon Nov 13 00:30:40 2006 @@ -22,6 +22,7 @@ import java.io.File; import java.io.StringWriter; +import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletResponse; @@ -30,14 +31,15 @@ import org.apache.struts2.ServletActionContext; import org.apache.struts2.StrutsTestCase; import org.apache.struts2.TestAction; -import org.apache.struts2.config.Settings; import org.apache.struts2.dispatcher.ApplicationMap; import org.apache.struts2.dispatcher.Dispatcher; import org.apache.struts2.dispatcher.RequestMap; import org.apache.struts2.dispatcher.SessionMap; +import com.mockobjects.dynamic.Mock; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; +import com.opensymphony.xwork2.inject.Container; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.ValueStackFactory; @@ -60,6 +62,8 @@ protected StrutsMockPageContext pageContext; protected HttpServletResponse response; protected StrutsMockServletContext servletContext; + + protected Mock mockContainer; /** * Constructs the action that we're going to test against. For most UI tests, this default action should be enough. @@ -102,7 +106,8 @@ pageContext.setJspWriter(jspWriter); pageContext.setServletContext(servletContext); - Dispatcher du = new Dispatcher(pageContext.getServletContext()); + mockContainer = new Mock(Container.class); + Dispatcher du = new Dispatcher(pageContext.getServletContext(), new HashMap()); Dispatcher.setInstance(du); du.setConfigurationManager(configurationManager); session = new SessionMap(request); @@ -123,8 +128,6 @@ context.put(ServletActionContext.SERVLET_CONTEXT, servletContext); ActionContext.setContext(new ActionContext(context)); - - Settings.setInstance(null); } protected void tearDown() throws Exception {
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java Mon Nov 13 00:30:40 2006 @@ -20,6 +20,8 @@ */ package org.apache.struts2.views.jsp; +import java.util.HashMap; + import javax.servlet.jsp.JspException; import javax.servlet.jsp.PageContext; @@ -241,9 +243,7 @@ protected void setUp() throws Exception { super.setUp(); - configurationManager.clearConfigurationProviders(); - configurationManager.addConfigurationProvider(new TestConfigurationProvider()); - configurationManager.reload(); + initDispatcher(new HashMap() {{ put("configProviders", TestConfigurationProvider.class.getName()); }}); ActionContext actionContext = new ActionContext(context); actionContext.setValueStack(stack); Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ElseIfTagTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ElseIfTagTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ElseIfTagTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ElseIfTagTest.java Mon Nov 13 00:30:40 2006 @@ -25,6 +25,7 @@ import junit.framework.TestCase; import org.apache.struts2.ServletActionContext; +import org.apache.struts2.StrutsTestCase; import org.apache.struts2.components.If; import com.mockobjects.servlet.MockJspWriter; @@ -35,7 +36,7 @@ /** * */ -public class ElseIfTagTest extends TestCase { +public class ElseIfTagTest extends StrutsTestCase { protected MockPageContext pageContext; protected MockJspWriter jspWriter; @@ -96,6 +97,7 @@ protected void setUp() throws Exception { + super.setUp(); stack = ValueStackFactory.getFactory().createValueStack(); jspWriter = new MockJspWriter(); Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ElseTagTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ElseTagTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ElseTagTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ElseTagTest.java Mon Nov 13 00:30:40 2006 @@ -90,6 +90,7 @@ } protected void setUp() throws Exception { + super.setUp(); // create the needed objects elseTag = new ElseTag(); stack = ValueStackFactory.getFactory().createValueStack(); Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IfTagTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IfTagTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IfTagTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IfTagTest.java Mon Nov 13 00:30:40 2006 @@ -26,6 +26,7 @@ import junit.framework.TestCase; import org.apache.struts2.ServletActionContext; +import org.apache.struts2.StrutsTestCase; import com.mockobjects.servlet.MockJspWriter; import com.mockobjects.servlet.MockPageContext; @@ -36,7 +37,7 @@ /** */ -public class IfTagTest extends TestCase { +public class IfTagTest extends StrutsTestCase { IfTag tag; MockPageContext pageContext; @@ -320,6 +321,7 @@ protected void setUp() throws Exception { + super.setUp(); // create the needed objects tag = new IfTag(); stack = ValueStackFactory.getFactory().createValueStack(); Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java Mon Nov 13 00:30:40 2006 @@ -39,7 +39,6 @@ import junit.textui.TestRunner; -import org.apache.struts2.config.Settings; import org.apache.struts2.dispatcher.Dispatcher; import org.apache.struts2.portlet.PortletActionConstants; import org.apache.struts2.portlet.util.PortletUrlHelper; @@ -81,8 +80,7 @@ public void setUp() throws Exception { super.setUp(); - Settings.reset(); - Dispatcher.setInstance(new Dispatcher(null)); + Dispatcher.setInstance(new Dispatcher(null, new HashMap())); mockPortletApiAvailable(); Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/PropertyTagTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/PropertyTagTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/PropertyTagTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/PropertyTagTest.java Mon Nov 13 00:30:40 2006 @@ -20,12 +20,13 @@ */ package org.apache.struts2.views.jsp; +import java.util.HashMap; + import javax.servlet.jsp.JspException; import org.apache.struts2.ServletActionContext; import org.apache.struts2.StrutsConstants; import org.apache.struts2.StrutsTestCase; -import org.apache.struts2.config.Settings; import com.mockobjects.servlet.MockJspWriter; import com.mockobjects.servlet.MockPageContext; @@ -165,8 +166,7 @@ public void testWithAltSyntax1() throws Exception { // setups - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "true"); - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "true"); + initDispatcher(new HashMap() {{ put(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "true");}}); Foo foo = new Foo(); foo.setTitle("tm_jee"); @@ -194,8 +194,7 @@ public void testWithAltSyntax2() throws Exception { // setups - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "true"); - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "true"); + initDispatcher(new HashMap() {{ put(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "true");}}); Foo foo = new Foo(); foo.setTitle("tm_jee"); @@ -223,8 +222,7 @@ public void testWithoutAltSyntax1() throws Exception { // setups - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "false"); - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "false"); + initDispatcher(new HashMap() {{ put(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "false");}}); Foo foo = new Foo(); foo.setTitle("tm_jee"); @@ -253,8 +251,7 @@ public void testWithoutAltSyntax2() throws Exception { // setups - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "false"); - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "false"); + initDispatcher(new HashMap() {{ put(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "false");}}); Foo foo = new Foo(); foo.setTitle("tm_jee"); Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java Mon Nov 13 00:30:40 2006 @@ -21,23 +21,32 @@ package org.apache.struts2.views.jsp.ui; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.struts2.StrutsConstants; import org.apache.struts2.TestAction; import org.apache.struts2.TestConfigurationProvider; -import org.apache.struts2.config.Settings; +import org.apache.struts2.components.Component; +import org.apache.struts2.components.Form; +import org.apache.struts2.components.template.TemplateEngineManager; +import org.apache.struts2.dispatcher.mapper.ActionMapper; import org.apache.struts2.dispatcher.mapper.DefaultActionMapper; import org.apache.struts2.views.jsp.AbstractUITagTest; import org.apache.struts2.views.jsp.ActionTag; +import com.mockobjects.dynamic.Mock; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ObjectFactory; import com.opensymphony.xwork2.config.RuntimeConfiguration; import com.opensymphony.xwork2.config.entities.ActionConfig; import com.opensymphony.xwork2.config.entities.InterceptorMapping; +import com.opensymphony.xwork2.config.impl.DefaultConfiguration; +import com.opensymphony.xwork2.inject.Container; +import com.opensymphony.xwork2.inject.Inject; +import com.opensymphony.xwork2.inject.Scope.Strategy; import com.opensymphony.xwork2.validator.ValidationInterceptor; @@ -117,8 +126,26 @@ ObjectFactory originalObjectFactory = ObjectFactory.getObjectFactory(); try { + final Container cont = container; // used to determined if the form action needs js validation configurationManager.setConfiguration(new com.opensymphony.xwork2.config.impl.DefaultConfiguration() { + private DefaultConfiguration self = this; + public Container getContainer() { + return new Container() { + public <T> T inject(Class<T> implementation) {return null;} + public void removeScopeStrategy() {} + public void setScopeStrategy(Strategy scopeStrategy) {} + public <T> T getInstance(Class<T> type, String name) {return null;} + public <T> T getInstance(Class<T> type) {return null;} + + public void inject(Object o) { + cont.inject(o); + if (o instanceof Form) { + ((Form)o).setConfiguration(self); + } + } + }; + } public RuntimeConfiguration getRuntimeConfiguration() { return new RuntimeConfiguration() { public ActionConfig getActionConfig(String namespace, String name) { @@ -199,9 +226,27 @@ com.opensymphony.xwork2.config.Configuration originalConfiguration = configurationManager.getConfiguration(); ObjectFactory originalObjectFactory = ObjectFactory.getObjectFactory(); + final Container cont = container; try { // used to determined if the form action needs js validation - configurationManager.setConfiguration(new com.opensymphony.xwork2.config.impl.DefaultConfiguration() { + configurationManager.setConfiguration(new DefaultConfiguration() { + private DefaultConfiguration self = this; + public Container getContainer() { + return new Container() { + public <T> T inject(Class<T> implementation) {return null;} + public void removeScopeStrategy() {} + public void setScopeStrategy(Strategy scopeStrategy) {} + public <T> T getInstance(Class<T> type, String name) {return null;} + public <T> T getInstance(Class<T> type) {return null;} + + public void inject(Object o) { + cont.inject(o); + if (o instanceof Form) { + ((Form)o).setConfiguration(self); + } + } + }; + } public RuntimeConfiguration getRuntimeConfiguration() { return new RuntimeConfiguration() { public ActionConfig getActionConfig(String namespace, String name) { @@ -307,9 +352,11 @@ * config property is set to "jspa". */ public void testFormTagWithDifferentActionExtension() throws Exception { + initDispatcher(new HashMap<String,String>(){{ + put(StrutsConstants.STRUTS_ACTION_EXTENSION, "jspa"); + put("configProviders", TestConfigurationProvider.class.getName()); + }}); request.setupGetServletPath("/testNamespace/testNamespaceAction"); - String oldConfiguration = (String) Settings.get(StrutsConstants.STRUTS_ACTION_EXTENSION); - Settings.set(StrutsConstants.STRUTS_ACTION_EXTENSION, "jspa"); FormTag tag = new FormTag(); tag.setPageContext(pageContext); @@ -321,12 +368,7 @@ tag.doStartTag(); tag.doEndTag(); - Settings.set(StrutsConstants.STRUTS_ACTION_EXTENSION, oldConfiguration); - verify(FormTag.class.getResource("Formtag-5.txt")); - - // set it back to the default - Settings.set(StrutsConstants.STRUTS_ACTION_EXTENSION, "action"); } /** @@ -519,9 +561,7 @@ public void testFormWithActionAndExtension() throws Exception { request.setupGetServletPath("/BLA"); - String oldConfiguration = (String) Settings.get(StrutsConstants.STRUTS_ACTION_EXTENSION); - Settings.set(StrutsConstants.STRUTS_ACTION_EXTENSION, "jspa"); - + FormTag tag = new FormTag(); tag.setPageContext(pageContext); tag.setAction("/testNamespace/testNamespaceAction.jspa"); @@ -530,19 +570,17 @@ tag.doStartTag(); tag.doEndTag(); - Settings.set(StrutsConstants.STRUTS_ACTION_EXTENSION, oldConfiguration); verify(FormTag.class.getResource("Formtag-8.txt")); - // set it back to the default - Settings.set(StrutsConstants.STRUTS_ACTION_EXTENSION, "action"); - } + @Override protected void setUp() throws Exception { super.setUp(); - configurationManager.clearConfigurationProviders(); - configurationManager.addConfigurationProvider(new TestConfigurationProvider()); + initDispatcher(new HashMap<String,String>(){{ + put("configProviders", TestConfigurationProvider.class.getName()); + }}); ActionContext.getContext().setValueStack(stack); } } Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/TooltipTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/TooltipTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/TooltipTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/TooltipTest.java Mon Nov 13 00:30:40 2006 @@ -20,6 +20,8 @@ */ package org.apache.struts2.views.jsp.ui; +import java.util.HashMap; + import org.apache.struts2.TestConfigurationProvider; import org.apache.struts2.views.jsp.AbstractUITagTest; import org.apache.struts2.views.jsp.ParamTag; @@ -34,9 +36,6 @@ public void testWithoutFormOverriding() throws Exception { - configurationManager.clearConfigurationProviders(); - configurationManager.addConfigurationProvider(new TestConfigurationProvider()); - // we test it on textfield component, but since the tooltip are common to // all components, it will be the same for other components as well. FormTag formTag = new FormTag(); @@ -71,9 +70,6 @@ public void testWithFormOverriding() throws Exception { - configurationManager.clearConfigurationProviders(); - configurationManager.addConfigurationProvider(new TestConfigurationProvider()); - FormTag formTag = new FormTag(); formTag.setPageContext(pageContext); formTag.setName("myForm"); @@ -106,9 +102,6 @@ public void testWithPartialFormOverriding() throws Exception { - configurationManager.clearConfigurationProviders(); - configurationManager.addConfigurationProvider(new TestConfigurationProvider()); - FormTag formTag = new FormTag(); formTag.setName("myForm"); formTag.setPageContext(pageContext); @@ -147,9 +140,6 @@ public void testUsingParamValueToSetConfigurations() throws Exception { - configurationManager.clearConfigurationProviders(); - configurationManager.addConfigurationProvider(new TestConfigurationProvider()); - FormTag formTag = new FormTag(); formTag.setName("myForm"); formTag.setPageContext(pageContext); @@ -199,8 +189,6 @@ public void testUsingParamBodyValueToSetConfigurations() throws Exception { - configurationManager.clearConfigurationProviders(); - configurationManager.addConfigurationProvider(new TestConfigurationProvider()); FormTag formTag = new FormTag(); formTag.setName("myForm"); @@ -249,5 +237,16 @@ System.out.println(writer.toString()); verify(TooltipTest.class.getResource("tooltip-3.txt")); + } + + /** + * @throws Exception + * + */ + public void setUp() throws Exception { + super.setUp(); + initDispatcher(new HashMap<String,String>(){{ + put("configProviders", TestConfigurationProvider.class.getName()); + }}); } } Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/ContextUtilTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/ContextUtilTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/ContextUtilTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/ContextUtilTest.java Mon Nov 13 00:30:40 2006 @@ -23,7 +23,6 @@ import junit.framework.TestCase; import org.apache.struts2.StrutsConstants; -import org.apache.struts2.config.Settings; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.ValueStackFactory; @@ -38,10 +37,7 @@ ValueStack stack = ValueStackFactory.getFactory().createValueStack(); stack.getContext().put("useAltSyntax", "true"); - Settings.reset(); - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "true"); - - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "true"); + ContextUtil.setAltSyntax("true"); assertTrue(ContextUtil.isUseAltSyntax(stack.getContext())); } @@ -49,10 +45,7 @@ ValueStack stack = ValueStackFactory.getFactory().createValueStack(); stack.getContext().put("useAltSyntax", "false"); - Settings.reset(); - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "true"); - - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "true"); + ContextUtil.setAltSyntax("true"); assertTrue(ContextUtil.isUseAltSyntax(stack.getContext())); } @@ -60,10 +53,7 @@ ValueStack stack = ValueStackFactory.getFactory().createValueStack(); stack.getContext().put("useAltSyntax", "true"); - Settings.reset(); - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "false"); - - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "false"); + ContextUtil.setAltSyntax("false"); assertTrue(ContextUtil.isUseAltSyntax(stack.getContext())); } @@ -71,10 +61,7 @@ ValueStack stack = ValueStackFactory.getFactory().createValueStack(); stack.getContext().put("useAltSyntax", "false"); - Settings.reset(); - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "false"); - - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "false"); + ContextUtil.setAltSyntax("false"); assertFalse(ContextUtil.isUseAltSyntax(stack.getContext())); } @@ -84,40 +71,28 @@ ValueStack stack = ValueStackFactory.getFactory().createValueStack(); stack.getContext().put("useAltSyntax", Boolean.TRUE); - Settings.reset(); - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "true"); - - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "true"); + ContextUtil.setAltSyntax("true"); assertTrue(ContextUtil.isUseAltSyntax(stack.getContext())); } public void testAltSyntaxMethod6() throws Exception { ValueStack stack = ValueStackFactory.getFactory().createValueStack(); stack.getContext().put("useAltSyntax", Boolean.FALSE); - Settings.reset(); - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "true"); - - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "true"); + ContextUtil.setAltSyntax("true"); assertTrue(ContextUtil.isUseAltSyntax(stack.getContext())); } public void testAltSyntaxMethod7() throws Exception { ValueStack stack = ValueStackFactory.getFactory().createValueStack(); stack.getContext().put("useAltSyntax", Boolean.TRUE); - Settings.reset(); - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "false"); - - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "false"); + ContextUtil.setAltSyntax("false"); assertTrue(ContextUtil.isUseAltSyntax(stack.getContext())); } public void testAltSyntaxMethod8() throws Exception { ValueStack stack = ValueStackFactory.getFactory().createValueStack(); stack.getContext().put("useAltSyntax", Boolean.FALSE); - Settings.reset(); - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "false"); - - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "false"); + ContextUtil.setAltSyntax("false"); assertFalse(ContextUtil.isUseAltSyntax(stack.getContext())); } @@ -126,10 +101,7 @@ ValueStack stack = ValueStackFactory.getFactory().createValueStack(); stack.getContext().put("useAltSyntax", null); - Settings.reset(); - Settings.set(StrutsConstants.STRUTS_TAG_ALTSYNTAX, "true"); - - assertEquals(Settings.get(StrutsConstants.STRUTS_TAG_ALTSYNTAX), "true"); + ContextUtil.setAltSyntax("true"); assertTrue(ContextUtil.isUseAltSyntax(stack.getContext())); } } Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java Mon Nov 13 00:30:40 2006 @@ -30,7 +30,6 @@ import org.apache.struts2.StrutsConstants; import org.apache.struts2.StrutsTestCase; -import org.apache.struts2.config.Settings; import com.mockobjects.dynamic.Mock; @@ -201,8 +200,8 @@ String expectedString = "https://www.mydomain.com:7002/mywebapp/MyAction.action?foo=bar&hello=earth&hello=mars"; - Settings.set(StrutsConstants.STRUTS_URL_HTTP_PORT, "7001"); - Settings.set(StrutsConstants.STRUTS_URL_HTTPS_PORT, "7002"); + UrlHelper.setHttpPort("7001"); + UrlHelper.setHttpsPort("7002"); Mock mockHttpServletRequest = new Mock(HttpServletRequest.class); mockHttpServletRequest.expectAndReturn("getServerName", "www.mydomain.com"); @@ -230,8 +229,8 @@ String expectedString = "http://www.mydomain.com:7001/mywebapp/MyAction.action?foo=bar&hello=earth&hello=mars"; - Settings.set(StrutsConstants.STRUTS_URL_HTTP_PORT, "7001"); - Settings.set(StrutsConstants.STRUTS_URL_HTTPS_PORT, "7002"); + UrlHelper.setHttpPort("7001"); + UrlHelper.setHttpsPort("7002"); Mock mockHttpServletRequest = new Mock(HttpServletRequest.class); mockHttpServletRequest.expectAndReturn("getServerName", "www.mydomain.com"); @@ -303,30 +302,18 @@ public void testTranslateAndEncode() throws Exception { - String defaultI18nEncoding = Settings.get(StrutsConstants.STRUTS_I18N_ENCODING); - try { - Settings.set(StrutsConstants.STRUTS_I18N_ENCODING, "UTF-8"); - String result = UrlHelper.translateAndEncode("\u65b0\u805e"); - String expectedResult = "%E6%96%B0%E8%81%9E"; - - assertEquals(result, expectedResult); - } - finally { - Settings.set(StrutsConstants.STRUTS_I18N_ENCODING, defaultI18nEncoding); - } + UrlHelper.setCustomEncoding("UTF-8"); + String result = UrlHelper.translateAndEncode("\u65b0\u805e"); + String expectedResult = "%E6%96%B0%E8%81%9E"; + + assertEquals(result, expectedResult); } public void testTranslateAndDecode() throws Exception { - String defaultI18nEncoding = Settings.get(StrutsConstants.STRUTS_I18N_ENCODING); - try { - Settings.set(StrutsConstants.STRUTS_I18N_ENCODING, "UTF-8"); - String result = UrlHelper.translateAndDecode("%E6%96%B0%E8%81%9E"); - String expectedResult = "\u65b0\u805e"; - - assertEquals(result, expectedResult); - } - finally { - Settings.set(StrutsConstants.STRUTS_I18N_ENCODING, defaultI18nEncoding); - } + UrlHelper.setCustomEncoding("UTF-8"); + String result = UrlHelper.translateAndDecode("%E6%96%B0%E8%81%9E"); + String expectedResult = "\u65b0\u805e"; + + assertEquals(result, expectedResult); } } Modified: struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java (original) +++ struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java Mon Nov 13 00:30:40 2006 @@ -24,10 +24,10 @@ import java.util.TreeSet; import org.apache.struts2.StrutsConstants; -import org.apache.struts2.config.Settings; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.config.entities.ActionConfig; +import com.opensymphony.xwork2.inject.Inject; /** * ActionNamesAction @@ -53,6 +53,11 @@ public void setNamespace(String namespace) { this.namespace = namespace; } + + @Inject(StrutsConstants.STRUTS_ACTION_EXTENSION) + public void setExtension(String ext) { + this.extension = ext; + } public ActionConfig getConfig(String actionName) { return ConfigurationHelper.getActionConfig(namespace, actionName); @@ -64,12 +69,7 @@ public String getExtension() { if ( extension == null) { - String ext = (String) Settings.get(StrutsConstants.STRUTS_ACTION_EXTENSION); - if ( ext == null || ext.equals("")) { - extension = "action"; - } else { - extension = ext; - } + extension = "action"; } return extension; } Modified: struts/struts2/trunk/plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java (original) +++ struts/struts2/trunk/plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java Mon Nov 13 00:30:40 2006 @@ -20,8 +20,12 @@ */ package org.apache.struts2.dispatcher.multipart; -import org.apache.struts2.config.Settings; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.struts2.StrutsConstants; + +import com.opensymphony.xwork2.inject.Inject; + import http.utils.multipartrequest.ServletMultipartRequest; import javax.servlet.http.HttpServletRequest; @@ -38,11 +42,18 @@ * Multipart form data request adapter for Jason Pell's multipart utils package. * */ -public class PellMultiPartRequest extends MultiPartRequest { +public class PellMultiPartRequest implements MultiPartRequest { + private static final Log LOG = LogFactory.getLog(PellMultiPartRequest.class); private ServletMultipartRequest multi; - + private String defaultEncoding; + + @Inject(StrutsConstants.STRUTS_I18N_ENCODING) + public void setDefaultEncoding(String enc) { + this.defaultEncoding = enc; + } + /** * Creates a new request wrapper to handle multi-part data using methods adapted from Jason Pell's * multipart classes (see class description). @@ -51,16 +62,15 @@ * @param saveDir the directory to save off the file * @param servletRequest the request containing the multipart */ - public PellMultiPartRequest(HttpServletRequest servletRequest, String saveDir, int maxSize) throws IOException { + public void parse(HttpServletRequest servletRequest, String saveDir) throws IOException { //this needs to be synchronised, as we should not change the encoding at the same time as //calling the constructor. See javadoc for MultipartRequest.setEncoding(). synchronized (this) { setEncoding(); - multi = new ServletMultipartRequest(servletRequest, saveDir, maxSize); + multi = new ServletMultipartRequest(servletRequest, saveDir); } } - - + public Enumeration getFileParameterNames() { return multi.getFileParameterNames(); } @@ -120,11 +130,11 @@ * The encoding is looked up from the configuration setting 'struts.i18n.encoding'. This is usually set in * default.properties & struts.properties. */ - private static void setEncoding() { + private void setEncoding() { String encoding = null; try { - encoding = Settings.get(StrutsConstants.STRUTS_I18N_ENCODING); + encoding = defaultEncoding; if (encoding != null) { //NB: This should never be called at the same time as the constructor for @@ -135,9 +145,9 @@ http.utils.multipartrequest.MultipartRequest.setEncoding("UTF-8"); } } catch (IllegalArgumentException e) { - log.info("Could not get encoding property 'struts.i18n.encoding' for file upload. Using system default"); + LOG.info("Could not get encoding property 'struts.i18n.encoding' for file upload. Using system default"); } catch (UnsupportedEncodingException e) { - log.error("Encoding " + encoding + " is not a valid encoding. Please check your struts.properties file."); + LOG.error("Encoding " + encoding + " is not a valid encoding. Please check your struts.properties file."); } } } Added: struts/struts2/trunk/plugins/pell-multipart/src/main/resources/struts-plugin.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/pell-multipart/src/main/resources/struts-plugin.xml?view=auto&rev=474191 ============================================================================== --- struts/struts2/trunk/plugins/pell-multipart/src/main/resources/struts-plugin.xml (added) +++ struts/struts2/trunk/plugins/pell-multipart/src/main/resources/struts-plugin.xml Mon Nov 13 00:30:40 2006 @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!DOCTYPE struts PUBLIC + "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" + "http://struts.apache.org/dtds/struts-2.0.dtd"> + +<struts> + <bean type="org.apache.struts2.dispatcher.MultiPartRequest" name="pell" class="org.apache.struts2.dispatcher.PellMultiPartRequest" /> +</struts> Modified: struts/struts2/trunk/plugins/plexus/src/main/java/org/apache/struts2/plexus/PlexusObjectFactory.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/plexus/src/main/java/org/apache/struts2/plexus/PlexusObjectFactory.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/plexus/src/main/java/org/apache/struts2/plexus/PlexusObjectFactory.java (original) +++ struts/struts2/trunk/plugins/plexus/src/main/java/org/apache/struts2/plexus/PlexusObjectFactory.java Mon Nov 13 00:30:40 2006 @@ -27,7 +27,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.struts2.util.ObjectFactoryInitializable; import org.codehaus.plexus.PlexusContainer; import com.opensymphony.xwork2.Action; @@ -37,6 +36,7 @@ import com.opensymphony.xwork2.config.entities.ActionConfig; import com.opensymphony.xwork2.config.entities.InterceptorConfig; import com.opensymphony.xwork2.config.entities.ResultConfig; +import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.interceptor.Interceptor; import com.opensymphony.xwork2.util.OgnlUtil; import com.opensymphony.xwork2.validator.Validator; @@ -70,17 +70,17 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Emmanuel Venisse</a> */ -public class PlexusObjectFactory extends ObjectFactory implements ObjectFactoryInitializable { +public class PlexusObjectFactory extends ObjectFactory { private static final Log log = LogFactory.getLog(PlexusObjectFactory.class); private static final String PLEXUS_COMPONENT_TYPE = "plexus.component.type"; private PlexusContainer base; + + - /* (non-Javadoc) - * @see org.apache.struts2.util.ObjectFactoryInitializable#init(javax.servlet.ServletContext) - */ - public void init(ServletContext servletContext) { + @Inject + public void setServletConfig(ServletContext servletContext) { if (!PlexusLifecycleListener.isLoaded() || !PlexusFilter.isLoaded()) { // uh oh! looks like the lifecycle listener wasn't installed. Let's inform the user String message = "********** FATAL ERROR STARTING UP PLEXUS-STRUTS INTEGRATION **********\n" + Added: struts/struts2/trunk/plugins/plexus/src/main/resources/struts-plugin.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/plexus/src/main/resources/struts-plugin.xml?view=auto&rev=474191 ============================================================================== --- struts/struts2/trunk/plugins/plexus/src/main/resources/struts-plugin.xml (added) +++ struts/struts2/trunk/plugins/plexus/src/main/resources/struts-plugin.xml Mon Nov 13 00:30:40 2006 @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!DOCTYPE struts PUBLIC + "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" + "http://struts.apache.org/dtds/struts-2.0.dtd"> + +<struts> + <bean type="com.opensymphony.xwork.ObjectFactory" name="plexus" class="org.apache.struts2.plexus.PlexusObjectFactory" /> + + <!-- Make the Plexus object factory the automatic default --> + <constant name="struts.objectFactory" value="plexus" /> +</struts> Modified: struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/StrutsConfigRetriever.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/StrutsConfigRetriever.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/StrutsConfigRetriever.java (original) +++ struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/StrutsConfigRetriever.java Mon Nov 13 00:30:40 2006 @@ -12,6 +12,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.struts2.config.BeanSelectionProvider; +import org.apache.struts2.config.LegacyPropertiesConfigurationProvider; import org.apache.struts2.config.StrutsXmlConfigurationProvider; import org.apache.struts2.sitegraph.entities.FreeMarkerView; import org.apache.struts2.sitegraph.entities.JspView; @@ -50,9 +52,12 @@ String configFilePath = configDir + "/struts.xml"; File configFile = new File(configFilePath); try { - ConfigurationProvider configProvider = new StrutsXmlConfigurationProvider(configFile.getCanonicalPath(), true); + ConfigurationProvider configProvider = new StrutsXmlConfigurationProvider(configFile.getCanonicalPath(), true, null); cm = new ConfigurationManager(); + cm.addConfigurationProvider(new StrutsXmlConfigurationProvider("struts-default.xml", false, null)); cm.addConfigurationProvider(configProvider); + cm.addConfigurationProvider(new LegacyPropertiesConfigurationProvider()); + cm.addConfigurationProvider(new BeanSelectionProvider()); isXWorkStarted = true; } catch (IOException e) { LOG.error("IOException", e); Modified: struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/entities/FileBasedView.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/entities/FileBasedView.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/entities/FileBasedView.java (original) +++ struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/entities/FileBasedView.java Mon Nov 13 00:30:40 2006 @@ -33,7 +33,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.StrutsConstants; -import org.apache.struts2.config.Settings; import org.apache.struts2.sitegraph.model.Link; /** @@ -70,7 +69,9 @@ } protected Pattern getLinkPattern() { - Object ext = Settings.get(StrutsConstants.STRUTS_ACTION_EXTENSION); + // FIXME: work with new configuration style + //Object ext = Settings.get(StrutsConstants.STRUTS_ACTION_EXTENSION); + String ext = "action"; String actionRegex = "([A-Za-z0-9\\._\\-\\!]+\\." + ext + ")"; return Pattern.compile(actionRegex); } Modified: struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/renderers/DOTRenderer.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/renderers/DOTRenderer.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/renderers/DOTRenderer.java (original) +++ struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/renderers/DOTRenderer.java Mon Nov 13 00:30:40 2006 @@ -31,7 +31,6 @@ import java.util.TreeMap; import org.apache.struts2.StrutsConstants; -import org.apache.struts2.config.Settings; import org.apache.struts2.sitegraph.StrutsConfigRetriever; import org.apache.struts2.sitegraph.entities.Target; import org.apache.struts2.sitegraph.entities.View; @@ -106,7 +105,8 @@ } String location = getViewLocation((String) resultConfig.getParams().get("location"), namespace); - if (location.endsWith((String) Settings.get(StrutsConstants.STRUTS_ACTION_EXTENSION))) { + // FIXME: work with new configuration style + if (location.endsWith("action")) { addTempLink(action, location, Link.TYPE_RESULT, resultConfig.getName()); } else { ViewNode view = new ViewNode(stripLocation(location)); @@ -126,7 +126,8 @@ } else if (resultClassName.indexOf("Redirect") != -1) { // check if the redirect is to an action -- if so, link it String location = getViewLocation((String) resultConfig.getParams().get("location"), namespace); - if (location.endsWith((String) Settings.get(StrutsConstants.STRUTS_ACTION_EXTENSION))) { + // FIXME: work with new configuration style + if (location.endsWith("action")) { addTempLink(action, location, Link.TYPE_REDIRECT, resultConfig.getName()); } else { ViewNode view = new ViewNode(stripLocation(location)); @@ -161,8 +162,10 @@ for (Iterator iterator = links.iterator(); iterator.hasNext();) { TempLink temp = (TempLink) iterator.next(); String location = temp.location; - if (location.endsWith((String) Settings.get(StrutsConstants.STRUTS_ACTION_EXTENSION))) { - location = location.substring(0, location.indexOf((String) Settings.get(StrutsConstants.STRUTS_ACTION_EXTENSION)) - 1); + + // FIXME: work with new configuration style + if (location.endsWith("action")) { + location = location.substring(0, location.indexOf("action") - 1); if (location.indexOf('!') != -1) { temp.label = temp.label + "\\n(" + location.substring(location.indexOf('!')) + ")"; Modified: struts/struts2/trunk/plugins/sitegraph/src/test/java/org/apache/struts2/sitegraph/SiteGraphTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/sitegraph/src/test/java/org/apache/struts2/sitegraph/SiteGraphTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/sitegraph/src/test/java/org/apache/struts2/sitegraph/SiteGraphTest.java (original) +++ struts/struts2/trunk/plugins/sitegraph/src/test/java/org/apache/struts2/sitegraph/SiteGraphTest.java Mon Nov 13 00:30:40 2006 @@ -34,7 +34,6 @@ */ public class SiteGraphTest extends StrutsTestCase { public void testWebFlow() throws Exception { - Dispatcher.getInstance().getConfigurationManager().clearConfigurationProviders(); // use the classloader rather than relying on the // working directory being an assumed value when // running the test: so let's get this class's parent dir Modified: struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/FreeMarkerPageFilter.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/FreeMarkerPageFilter.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/FreeMarkerPageFilter.java (original) +++ struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/FreeMarkerPageFilter.java Mon Nov 13 00:30:40 2006 @@ -38,6 +38,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.LocaleProvider; +import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.util.profiling.UtilTimerStack; import freemarker.template.Configuration; @@ -106,6 +107,13 @@ */ public class FreeMarkerPageFilter extends TemplatePageFilter { private static final Log LOG = LogFactory.getLog(FreeMarkerPageFilter.class); + + private static FreemarkerManager freemarkerManager; + + @Inject + public void setFreemarkerManager(FreemarkerManager mgr) { + freemarkerManager = mgr; + } /** * Applies the decorator, using the relevent contexts @@ -126,14 +134,13 @@ try { UtilTimerStack.push(timerKey); - FreemarkerManager fmm = FreemarkerManager.getInstance(); // get the configuration and template - Configuration config = fmm.getConfiguration(servletContext); + Configuration config = freemarkerManager.getConfiguration(servletContext); Template template = config.getTemplate(decorator.getPage(), getLocale(ctx.getActionInvocation(), config)); // WW-1181 // get the main hash - SimpleHash model = fmm.buildTemplateModel(ctx.getValueStack(), null, servletContext, req, res, config.getObjectWrapper()); + SimpleHash model = freemarkerManager.buildTemplateModel(ctx.getValueStack(), null, servletContext, req, res, config.getObjectWrapper()); // populate the hash with the page model.put("page", page); Modified: struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/TemplatePageFilter.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/TemplatePageFilter.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/TemplatePageFilter.java (original) +++ struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/TemplatePageFilter.java Mon Nov 13 00:30:40 2006 @@ -30,7 +30,6 @@ import org.apache.struts2.ServletActionContext; import org.apache.struts2.StrutsConstants; -import org.apache.struts2.config.Settings; import org.apache.struts2.dispatcher.Dispatcher; import com.opensymphony.module.sitemesh.Decorator; @@ -41,6 +40,7 @@ import com.opensymphony.xwork2.ActionProxy; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.Result; +import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.interceptor.PreResultListener; import com.opensymphony.xwork2.util.OgnlValueStack; @@ -52,6 +52,13 @@ public abstract class TemplatePageFilter extends PageFilter { private FilterConfig filterConfig; + + private static String customEncoding; + + @Inject(StrutsConstants.STRUTS_I18N_ENCODING) + public static void setCustomEncoding(String enc) { + customEncoding = enc; + } public void init(FilterConfig filterConfig) { super.init(filterConfig); @@ -110,7 +117,7 @@ * Gets the L18N encoding of the system. The default is UTF-8. */ protected String getEncoding() { - String encoding = (String) Settings.get(StrutsConstants.STRUTS_I18N_ENCODING); + String encoding = customEncoding; if (encoding == null) { encoding = System.getProperty("file.encoding"); } Modified: struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/VelocityPageFilter.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/VelocityPageFilter.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/VelocityPageFilter.java (original) +++ struts/struts2/trunk/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/VelocityPageFilter.java Mon Nov 13 00:30:40 2006 @@ -30,6 +30,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.struts2.views.freemarker.FreemarkerManager; import org.apache.struts2.views.velocity.VelocityManager; import org.apache.velocity.Template; import org.apache.velocity.context.Context; @@ -38,6 +39,7 @@ import com.opensymphony.module.sitemesh.HTMLPage; import com.opensymphony.module.sitemesh.Page; import com.opensymphony.xwork2.ActionContext; +import com.opensymphony.xwork2.inject.Inject; /** @@ -47,6 +49,13 @@ public class VelocityPageFilter extends TemplatePageFilter { private static final Log LOG = LogFactory.getLog(VelocityPageFilter.class); + private static VelocityManager velocityManager; + + @Inject + public void setVelocityManager(VelocityManager mgr) { + velocityManager = mgr; + } + /** * Applies the decorator, using the relevent contexts * @@ -62,17 +71,16 @@ ServletContext servletContext, ActionContext ctx) throws ServletException, IOException { try { - VelocityManager vm = VelocityManager.getInstance(); // init (if needed) - vm.init(servletContext); + velocityManager.init(servletContext); // get encoding String encoding = getEncoding(); // get the template and context - Template template = vm.getVelocityEngine().getTemplate(decorator.getPage(), encoding); - Context context = vm.createContext(ctx.getValueStack(), req, res); + Template template = velocityManager.getVelocityEngine().getTemplate(decorator.getPage(), encoding); + Context context = velocityManager.createContext(ctx.getValueStack(), req, res); // put the page in the context context.put("page", page); Added: struts/struts2/trunk/plugins/sitemesh/src/main/resources/struts-plugin.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/sitemesh/src/main/resources/struts-plugin.xml?view=auto&rev=474191 ============================================================================== --- struts/struts2/trunk/plugins/sitemesh/src/main/resources/struts-plugin.xml (added) +++ struts/struts2/trunk/plugins/sitemesh/src/main/resources/struts-plugin.xml Mon Nov 13 00:30:40 2006 @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!DOCTYPE struts PUBLIC + "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" + "http://struts.apache.org/dtds/struts-2.0.dtd"> + +<struts> + <bean class="org.apache.struts2.sitemesh.FreeMarkerTemplatePageFilter" static="true" optional="true"/> + <bean class="org.apache.struts2.sitemesh.VelocityTemplatePageFilter" static="true" optional="true"/> +</struts> Modified: struts/struts2/trunk/plugins/struts1/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/struts1/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/struts1/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java (original) +++ struts/struts2/trunk/plugins/struts1/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java Mon Nov 13 00:30:40 2006 @@ -15,6 +15,7 @@ import org.apache.struts2.config.StrutsXmlConfigurationProvider; import com.opensymphony.xwork2.ActionSupport; +import com.opensymphony.xwork2.ObjectFactory; import com.opensymphony.xwork2.config.Configuration; import com.opensymphony.xwork2.config.ConfigurationManager; import com.opensymphony.xwork2.config.ConfigurationProvider; @@ -46,7 +47,7 @@ */ public void setUp() { ConfigurationManager manager = new ConfigurationManager(); - ConfigurationProvider provider = new StrutsXmlConfigurationProvider(PACKAGE_NAME + "/test-struts-factory.xml", true); + StrutsXmlConfigurationProvider provider = new StrutsXmlConfigurationProvider(PACKAGE_NAME + "/test-struts-factory.xml", true, null); manager.addConfigurationProvider(provider); config = manager.getConfiguration(); factory = new Struts1Factory(config); Modified: struts/struts2/trunk/plugins/struts1/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/struts1/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml?view=diff&rev=474191&r1=474190&r2=474191 ============================================================================== --- struts/struts2/trunk/plugins/struts1/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml (original) +++ struts/struts2/trunk/plugins/struts1/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml Mon Nov 13 00:30:40 2006 @@ -6,6 +6,9 @@ <!-- Used by the TestStrutsFactory TestCase. --> <struts> + <bean class="com.opensymphony.xwork2.ObjectFactory" name="default" /> + <bean type="com.opensymphony.xwork2.ActionProxyFactory" name="default" class="com.opensymphony.xwork2.DefaultActionProxyFactory"/> + <constant name="devMode" value="false" /> <package name="org/apache/struts2/s1" namespace="/org/apache/struts2/s1"> <result-types> <result-type class="org.apache.struts2.dispatcher.ServletDispatcherResult" name="servletDispatcherResult"/>