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