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 2008/06/17 15:09:10 UTC
svn commit: r668645 - in /struts/struts2/trunk:
core/src/main/java/org/apache/struts2/StrutsConstants.java
plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java
Author: mrdon
Date: Tue Jun 17 06:09:09 2008
New Revision: 668645
URL: http://svn.apache.org/viewvc?rev=668645&view=rev
Log:
Adding new setting to force spring object factory to use configured
autowire strategy
WW-2479
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java
struts/struts2/trunk/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java?rev=668645&r1=668644&r2=668645&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java Tue Jun 17 06:09:09 2008
@@ -118,9 +118,15 @@
*/
public static final String STRUTS_MULTIPART_PARSER = "struts.multipart.parser";
- /** Whether Spring should autoWire or not */
+ /** How Spring should autowire. Valid values are 'name', 'type', 'auto', and 'constructor' */
public static final String STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE = "struts.objectFactory.spring.autoWire";
+ /** Whether the autowire strategy chosen by STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE is always respected. Defaults
+ * to false, which is the legacy behavior that tries to determine the best strategy for the situation.
+ * @since 2.1.3
+ */
+ public static final String STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE_ALWAYS_RESPECT = "struts.objectFactory.spring.autoWire.alwaysRespect";
+
/** Whether Spring should use its class cache or not */
public static final String STRUTS_OBJECTFACTORY_SPRING_USE_CLASS_CACHE = "struts.objectFactory.spring.useClassCache";
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?rev=668645&r1=668644&r2=668645&view=diff
==============================================================================
--- 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 Tue Jun 17 06:09:09 2008
@@ -50,6 +50,23 @@
@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) {
+ this(autoWire, "false", useClassCacheStr, servletContext);
+ }
+
+ /**
+ * Constructs the spring object factory
+ * @param autoWire The type of autowiring to use
+ * @param alwaysAutoWire Whether to always respect the autowiring or not
+ * @param useClassCacheStr Whether to use the class cache or not
+ * @param servletContext The servlet context
+ * @since 2.1.3
+ */
+ @Inject
+ public StrutsSpringObjectFactory(
+ @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE,required=false) String autoWire,
+ @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE_ALWAYS_RESPECT,required=false) String alwaysAutoWire,
+ @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_USE_CLASS_CACHE,required=false) String useClassCacheStr,
+ @Inject ServletContext servletContext) {
super();
boolean useClassCache = "true".equals(useClassCacheStr);
@@ -85,6 +102,8 @@
this.setUseClassCache(useClassCache);
+ this.setAlwaysRespectAutowireStrategy("true".equalsIgnoreCase(alwaysAutoWire));
+
LOG.info("... initialized Struts-Spring integration successfully");
}
}