diff --git a/core/src/main/java/com/opensymphony/xwork2/XWorkTestCase.java b/core/src/main/java/com/opensymphony/xwork2/XWorkTestCase.java
index 21442dabc..bc6b0a8e5 100644
--- a/core/src/main/java/com/opensymphony/xwork2/XWorkTestCase.java
+++ b/core/src/main/java/com/opensymphony/xwork2/XWorkTestCase.java
@@ -27,6 +27,7 @@ import com.opensymphony.xwork2.test.StubConfigurationProvider;
import com.opensymphony.xwork2.util.XWorkTestCaseHelper;
import com.opensymphony.xwork2.util.location.LocatableProperties;
import junit.framework.TestCase;
+import org.apache.commons.lang3.ClassUtils;
/**
* Base JUnit TestCase to extend for XWork specific JUnit tests. Uses
@@ -78,16 +79,20 @@ public abstract class XWorkTestCase extends TestCase {
@Override
public void register(ContainerBuilder builder,
LocatableProperties props) throws ConfigurationException {
- builder.factory(type, name, new Factory() {
- public Object create(Context context) throws Exception {
- return impl;
- }
+ if (impl instanceof String || ClassUtils.isPrimitiveOrWrapper(impl.getClass())) {
+ props.setProperty(name, "" + impl);
+ } else {
+ builder.factory(type, name, new Factory() {
+ public Object create(Context context) throws Exception {
+ return impl;
+ }
- @Override
- public Class type() {
- return impl.getClass();
- }
- }, Scope.SINGLETON);
+ @Override
+ public Class type() {
+ return impl.getClass();
+ }
+ }, Scope.SINGLETON);
+ }
}
});
}
diff --git a/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java b/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java
index 81308f0f1..c226bb82d 100644
--- a/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java
@@ -19,19 +19,19 @@
package com.opensymphony.xwork2.ognl;
import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionProxyFactory;
import com.opensymphony.xwork2.XWorkException;
import com.opensymphony.xwork2.XWorkTestCase;
-import com.opensymphony.xwork2.config.ConfigurationManager;
-import com.opensymphony.xwork2.config.ConfigurationProvider;
-import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import com.opensymphony.xwork2.config.ConfigurationException;
import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
-import com.opensymphony.xwork2.inject.Container;
+import com.opensymphony.xwork2.inject.ContainerBuilder;
import com.opensymphony.xwork2.interceptor.ChainingInterceptor;
+import com.opensymphony.xwork2.test.StubConfigurationProvider;
import com.opensymphony.xwork2.test.User;
import com.opensymphony.xwork2.util.*;
+import com.opensymphony.xwork2.util.location.LocatableProperties;
import com.opensymphony.xwork2.util.reflection.ReflectionContextState;
import ognl.*;
+import org.apache.struts2.StrutsConstants;
import java.lang.reflect.Method;
import java.text.DateFormat;
@@ -1312,61 +1312,25 @@ public class OgnlUtilTest extends XWorkTestCase {
}
private void reloadTestContainerConfiguration(boolean devMode, boolean allowStaticMethod) throws Exception {
- super.tearDown();
-
- ConfigurationProvider configurationProvider;
- if (devMode == true && allowStaticMethod == true) {
- configurationProvider = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-devmode-true.xml", true);
- }
- else if (devMode == true && allowStaticMethod == false) {
- configurationProvider = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-devmode-true.xml", true);
- }
- else if (devMode == false && allowStaticMethod == true) {
- configurationProvider = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-true.xml", true);
- }
- else { // devMode, allowStatic both false
- configurationProvider = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-devmode-false.xml", true);
- }
-
- configurationManager = new ConfigurationManager(Container.DEFAULT_NAME);
- configurationManager.addContainerProvider(configurationProvider);
- configuration = configurationManager.getConfiguration();
- container = configuration.getContainer();
- container.inject(configurationProvider);
- configurationProvider.init(configuration);
- actionProxyFactory = container.getInstance(ActionProxyFactory.class);
-
- // Reset the value stack
- ValueStack stack = container.getInstance(ValueStackFactory.class).createValueStack();
- stack.getContext().put(ActionContext.CONTAINER, container);
- ActionContext.setContext(new ActionContext(stack.getContext()));
-
+ loadConfigurationProviders(new StubConfigurationProvider() {
+ @Override
+ public void register(ContainerBuilder builder,
+ LocatableProperties props) throws ConfigurationException {
+ props.setProperty(StrutsConstants.STRUTS_DEVMODE, "" + devMode);
+ props.setProperty(StrutsConstants.STRUTS_ALLOW_STATIC_METHOD_ACCESS, "" + allowStaticMethod);
+ }
+ });
ognlUtil = container.getInstance(OgnlUtil.class);
}
private void reloadTestContainerConfiguration(boolean allowStaticField) throws Exception {
- super.tearDown();
-
- ConfigurationProvider configurationProvider;
- if (allowStaticField) {
- configurationProvider = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-staticfield-true.xml", true);
- } else {
- configurationProvider = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-staticfield-false.xml", true);
- }
-
- configurationManager = new ConfigurationManager(Container.DEFAULT_NAME);
- configurationManager.addContainerProvider(configurationProvider);
- configuration = configurationManager.getConfiguration();
- container = configuration.getContainer();
- container.inject(configurationProvider);
- configurationProvider.init(configuration);
- actionProxyFactory = container.getInstance(ActionProxyFactory.class);
-
- // Reset the value stack
- ValueStack stack = container.getInstance(ValueStackFactory.class).createValueStack();
- stack.getContext().put(ActionContext.CONTAINER, container);
- ActionContext.setContext(new ActionContext(stack.getContext()));
-
+ loadConfigurationProviders(new StubConfigurationProvider() {
+ @Override
+ public void register(ContainerBuilder builder,
+ LocatableProperties props) throws ConfigurationException {
+ props.setProperty(StrutsConstants.STRUTS_ALLOW_STATIC_FIELD_ACCESS, "" + allowStaticField);
+ }
+ });
ognlUtil = container.getInstance(OgnlUtil.class);
}
diff --git a/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java b/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
index c7fd3686f..9209e73bf 100644
--- a/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
@@ -980,39 +980,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
assertEquals(null, stack.findValue("address.country.name", String.class));
}
- private void reloadTestContainerConfiguration(boolean devMode, boolean allowStatic) throws Exception {
- super.tearDown();
-
- ConfigurationProvider configurationProvider;
- if (devMode == true && allowStatic == true) {
- configurationProvider = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-devmode-true.xml", true);
- }
- else if (devMode == true && allowStatic == false) {
- configurationProvider = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-devmode-true.xml", true);
- }
- else if (devMode == false && allowStatic == true) {
- configurationProvider = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-true.xml", true);
- }
- else { // devMode, allowStatic both false
- configurationProvider = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-devmode-false.xml", true);
- }
-
- configurationManager = new ConfigurationManager(Container.DEFAULT_NAME);
- configurationManager.addContainerProvider(configurationProvider);
- configuration = configurationManager.getConfiguration();
- container = configuration.getContainer();
- container.inject(configurationProvider);
- configurationProvider.init(configuration);
- actionProxyFactory = container.getInstance(ActionProxyFactory.class);
-
- // Reset the value stack
- ValueStack stack = container.getInstance(ValueStackFactory.class).createValueStack();
- stack.getContext().put(ActionContext.CONTAINER, container);
- ActionContext.setContext(new ActionContext(stack.getContext()));
-
- ognlUtil = container.getInstance(OgnlUtil.class);
- }
-
class BadJavaBean {
private int count;
private int count2;
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-devmode-false.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-devmode-false.xml
deleted file mode 100644
index b2779461d..000000000
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-devmode-false.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-devmode-true.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-devmode-true.xml
deleted file mode 100644
index c04dc9eb9..000000000
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-devmode-true.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-true.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-true.xml
deleted file mode 100644
index 816d65407..000000000
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowstatic-true.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-devmode-true.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-devmode-true.xml
deleted file mode 100644
index 0a2f09d1d..000000000
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-devmode-true.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-staticfield-false.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-staticfield-false.xml
deleted file mode 100644
index c6aeb4ad5..000000000
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-staticfield-false.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-staticfield-true.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-staticfield-true.xml
deleted file mode 100644
index 8cde06537..000000000
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-staticfield-true.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file