diff --git a/plugins/spring/pom.xml b/plugins/spring/pom.xml index 4c61088a8..1a4781092 100644 --- a/plugins/spring/pom.xml +++ b/plugins/spring/pom.xml @@ -84,7 +84,13 @@ test 3.8.2 - + + + org.easymock + easymock + 2.3 + test + diff --git a/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java b/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java index 13f13a2ea..84f3081af 100644 --- a/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java +++ b/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java @@ -21,6 +21,7 @@ package org.apache.struts2.spring; +import com.opensymphony.xwork2.inject.Container; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.spring.SpringObjectFactory; import com.opensymphony.xwork2.util.logging.Logger; @@ -68,9 +69,7 @@ public class StrutsSpringObjectFactory extends SpringObjectFactory { @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_USE_CLASS_CACHE,required=false) String useClassCacheStr, @Inject ServletContext servletContext, @Inject(StrutsConstants.STRUTS_DEVMODE) String devMode, - @Inject(value = "struts.class.reloading.watchList", required = false) String watchList, - @Inject(value = "struts.class.reloading.acceptClasses", required = false) String acceptClasses, - @Inject(value = "struts.class.reloading.reloadConfig", required = false) String reloadConfig) { + @Inject Container container) { super(); boolean useClassCache = "true".equals(useClassCacheStr); @@ -97,6 +96,10 @@ public class StrutsSpringObjectFactory extends SpringObjectFactory { LOG.fatal(message); return; } + + String watchList = container.getInstance(String.class, "struts.class.reloading.watchList"); + String acceptClasses = container.getInstance(String.class, "struts.class.reloading.acceptClasses"); + String reloadConfig = container.getInstance(String.class, "struts.class.reloading.reloadConfig"); if ("true".equals(devMode) && StringUtils.isNotBlank(watchList) diff --git a/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java b/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java index 423f0789b..0bb7294de 100644 --- a/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java +++ b/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java @@ -25,12 +25,15 @@ import javax.servlet.ServletContext; import junit.framework.TestCase; import org.apache.struts2.StrutsConstants; +import org.easymock.EasyMock; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.mock.web.MockServletContext; import org.springframework.web.context.ConfigurableWebApplicationContext; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.XmlWebApplicationContext; +import com.opensymphony.xwork2.inject.Container; + /** * Unit test for {@link StrutsSpringObjectFactory}. * @@ -39,13 +42,17 @@ public class StrutsSpringObjectFactoryTest extends TestCase { public void testNoSpringContext() throws Exception { // to cover situations where there will be logged an error - StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory(null, null, null, new MockServletContext(), null, "false", null, null); + Container container = EasyMock.createNiceMock(Container.class); + EasyMock.replay(container); + + StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory(null, null, null, new MockServletContext(), null, container); assertEquals(AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, fac.getAutowireStrategy()); } public void testWithSpringContext() throws Exception { - + Container container = EasyMock.createNiceMock(Container.class); + EasyMock.replay(container); ConfigurableWebApplicationContext ac = new XmlWebApplicationContext(); ServletContext msc = (ServletContext) new MockServletContext(); @@ -53,7 +60,7 @@ public class StrutsSpringObjectFactoryTest extends TestCase { ac.setServletContext(msc); ac.setConfigLocations(new String[] {"org/apache/struts2/spring/StrutsSpringObjectFactoryTest-applicationContext.xml"}); ac.refresh(); - StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory("constructor", null, null, msc, null, "true", null, null); + StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory("constructor", null, null, msc, null, container); assertEquals(AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, fac.getAutowireStrategy()); }