Author: mrdon Date: Thu Apr 26 07:23:02 2007 New Revision: 532755 URL: http://svn.apache.org/viewvc?view=rev&rev=532755 Log: Fixing setter order problem by using constructor injection WW-1753
Modified: struts/struts2/trunk/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java struts/struts2/trunk/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java Modified: struts/struts2/trunk/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java?view=diff&rev=532755&r1=532754&r2=532755 ============================================================================== --- struts/struts2/trunk/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java (original) +++ struts/struts2/trunk/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java Thu Apr 26 07:23:02 2007 @@ -43,22 +43,14 @@ */ public class StrutsSpringObjectFactory extends SpringObjectFactory { private static final Log log = LogFactory.getLog(StrutsSpringObjectFactory.class); - - private String autoWire; - private boolean useClassCache = true; - - @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE,required=false) - public void setAutoWire(String val) { - autoWire = val; - } - - @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_USE_CLASS_CACHE,required=false) - public void setUseClassCache(String val) { - useClassCache = "true".equals(val); - } - + @Inject - public void setServletContext(ServletContext servletContext) { + public StrutsSpringObjectFactory( + @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE,required=false) String autoWire, + @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_USE_CLASS_CACHE,required=false) String useClassCacheStr, + @Inject ServletContext servletContext) { + + boolean useClassCache = "true".equals(useClassCacheStr); log.info("Initializing Struts-Spring integration..."); ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(servletContext); Modified: struts/struts2/trunk/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java?view=diff&rev=532755&r1=532754&r2=532755 ============================================================================== --- struts/struts2/trunk/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java (original) +++ struts/struts2/trunk/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java Thu Apr 26 07:23:02 2007 @@ -38,18 +38,13 @@ public void testNoSpringContext() throws Exception { // to cover situations where there will be logged an error - StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory(); - ServletContext msc = (ServletContext) new MockServletContext(); - fac.setServletContext(msc); + StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory(null, null, new MockServletContext()); assertEquals(AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, fac.getAutowireStrategy()); } public void testWithSpringContext() throws Exception { - StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory(); - - // autowire by constructure, we try a non default setting in this unit test - fac.setAutoWire("constructor"); + ConfigurableWebApplicationContext ac = new XmlWebApplicationContext(); ServletContext msc = (ServletContext) new MockServletContext(); @@ -57,8 +52,7 @@ ac.setServletContext(msc); ac.setConfigLocations(new String[] {"org/apache/struts2/spring/StrutsSpringObjectFactoryTest-applicationContext.xml"}); ac.refresh(); - - fac.setServletContext(msc); + StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory("constructor", null, msc); assertEquals(AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, fac.getAutowireStrategy()); }