You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mr...@apache.org on 2006/11/13 09:30:46 UTC
svn commit: r474191 [4/4] - in /struts/struts2/trunk:
apps/showcase/src/main/resources/ apps/showcase/src/main/webapp/WEB-INF/
core/src/main/java/org/apache/struts2/
core/src/main/java/org/apache/struts2/components/
core/src/main/java/org/apache/struts...
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:evenisse@apache.org">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"/>