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 2006/11/14 22:38:25 UTC

svn commit: r474996 - /struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java

Author: mrdon
Date: Tue Nov 14 13:38:24 2006
New Revision: 474996

URL: http://svn.apache.org/viewvc?view=rev&rev=474996
Log:
Adding javadocs to bean selection provider
WW-1483

Modified:
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java?view=diff&rev=474996&r1=474995&r2=474996
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java Tue Nov 14 13:38:24 2006
@@ -46,6 +46,86 @@
 import com.opensymphony.xwork2.util.ObjectTypeDeterminer;
 import com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory;
 
+/**
+ * Selects the implementations of key framework extension points, using the loaded
+ * property constants.  The implementations are selected from the container builder
+ * using the name defined in its associated property.  The default implementation name will
+ * always be "struts".
+ *
+ * <p>
+ * The following is a list of the allowed extension points:
+ *
+ * <!-- START SNIPPET: extensionPoints -->
+ * <table border="1">
+ *   <tr>
+ *     <th>Type</th>
+ *     <th>Property</th>
+ *     <th>Scope</th>
+ *     <th>Description</th>
+ *   </tr>
+ *   <tr>
+ *     <td>com.opensymphony.xwork2.ObjectFactory</td>
+ *     <td>struts.objectFactory</td>
+ *     <td>singleton</td>
+ *     <td>Creates actions, results, and interceptors</td>
+ *   </tr>
+ *   <tr>
+ *     <td>com.opensymphony.xwork2.ActionProxyFactory</td>
+ *     <td>struts.actionProxyFactory</td>
+ *     <td>singleton</td>
+ *     <td>Creates the ActionProxy</td>
+ *   </tr>
+ *   <tr>
+ *     <td>com.opensymphony.xwork2.util.ObjectTypeDeterminer</td>
+ *     <td>struts.objectTypeDeterminer</td>
+ *     <td>singleton</td>
+ *     <td>Determines what the key and and element class of a Map or Collection should be</td>
+ *   </tr>
+ *   <tr>
+ *     <td>org.apache.struts2.dispatcher.mapper.ActionMapper</td>
+ *     <td>struts.mapper.class</td>
+ *     <td>singleton</td>
+ *     <td>Determines the ActionMapping from a request and a URI from an ActionMapping</td>
+ *   </tr>
+ *   <tr>
+ *     <td>org.apache.struts2.dispatcher.multipart.MultiPartRequest</td>
+ *     <td>struts.multipart.parser</td>
+ *     <td>per request</td>
+ *     <td>Parses a multipart request (file upload)</td>
+ *   </tr>
+ *   <tr>
+ *     <td>org.apache.struts2.views.freemarker.FreemarkerManager</td>
+ *     <td>struts.freemarker.manager.classname</td>
+ *     <td>singleton</td>
+ *     <td>Loads and processes Freemarker templates</td>
+ *   </tr>
+ *   <tr>
+ *     <td>org.apache.struts2.views.velocity.VelocityManager</td>
+ *     <td>struts.velocity.manager.classname</td>
+ *     <td>singleton</td>
+ *     <td>Loads and processes Velocity templates</td>
+ *   </tr>
+ * </table>
+ *
+ * <!-- END SNIPPET: extensionPoints -->
+ * </p>
+ * <p>
+ * Implementations are selected using the value of its associated property.  That property is
+ * used to determine the implementation by:
+ * </p>
+ * <ol>
+ *   <li>Trying to find an existing bean by that name in the container</li>
+ *   <li>Trying to find a class by that name, then creating a new bean factory for it</li>
+ *   <li>Creating a new delegation bean factory that delegates to the configured ObjectFactory at runtime</li>
+ * </ol>
+ * <p>
+ * Finally, this class overrides certain properties if dev mode is enabled:
+ * </p>
+ * <ul>
+ *   <li><code>struts.i18n.reload = true</code></li>
+ *   <li><code>struts.configuration.xml.reload = true</code></li>
+ * </ul>
+ */
 public class BeanSelectionProvider implements ConfigurationProvider {
     public static final String DEFAULT_BEAN_NAME = "struts";
     private static final Log LOG = LogFactory.getLog(BeanSelectionProvider.class);