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


Reply via email to