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");
}
}