Author: lukaszlenart
Date: Fri Jul 20 20:44:32 2012
New Revision: 1363947

URL: http://svn.apache.org/viewvc?rev=1363947&view=rev
Log:
WW-3843 adds proper extension points

Added:
    
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
    struts/struts2/trunk/core/src/main/resources/struts-default.xml
    
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
    
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java
    
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
    
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkBasicConverter.java
    
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/AliasInterceptor.java
    
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
    
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java
    
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
    
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
    
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/accessor/CompoundRootAccessor.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=1363947&r1=1363946&r2=1363947&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 
Fri Jul 20 20:44:32 2012
@@ -233,4 +233,10 @@ public final class StrutsConstants {
     /** The{@link org.apache.struts2.views.util.UrlHelper} implementation 
class **/
     public static final String STRUTS_URL_HELPER = "struts.view.urlHelper";
 
+    /** {@link com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter} **/
+    public static final String STRUTS_CONVERTER_COLLECTION = 
"struts.converter.collection";
+    public static final String STRUTS_CONVERTER_ARRAY = 
"struts.converter.array";
+    public static final String STRUTS_CONVERTER_DATE = "struts.converter.date";
+    public static final String STRUTS_CONVERTER_NUMBER = 
"struts.converter.number";
+    public static final String STRUTS_CONVERTER_STRING = 
"struts.converter.string";
 }

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?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- 
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
 Fri Jul 20 20:44:32 2012
@@ -27,10 +27,16 @@ import com.opensymphony.xwork2.FileManag
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.TextProvider;
 import com.opensymphony.xwork2.UnknownHandlerManager;
+import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
 import com.opensymphony.xwork2.conversion.ObjectTypeDeterminer;
+import com.opensymphony.xwork2.conversion.impl.ArrayConverter;
+import com.opensymphony.xwork2.conversion.impl.CollectionConverter;
+import com.opensymphony.xwork2.conversion.impl.DateConverter;
+import com.opensymphony.xwork2.conversion.impl.NumberConverter;
+import com.opensymphony.xwork2.conversion.impl.StringConverter;
 import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.ContainerBuilder;
@@ -198,6 +204,35 @@ import java.util.StringTokenizer;
  *     <td>Used to create {@link FileManager} instance to access files on the 
File System as also to monitor if reload is needed,
  *     can be implemented / overwritten to meet specific an application server 
needs
  *     </td>
+ *   <tr>
+ *     <td>com.opensymphony.xwork2.conversion.impl.CollectionConverter</td>
+ *     <td>struts.converter.collection</td>
+ *     <td>singleton</td>
+ *     <td>Converter used to convert any object to Collection and back</td>
+ *   </tr>
+ *   <tr>
+ *     <td>com.opensymphony.xwork2.conversion.impl.ArrayConverter</td>
+ *     <td>struts.converter.array</td>
+ *     <td>singleton</td>
+ *     <td>Converter used to convert any object to Array and back</td>
+ *   </tr>
+ *   <tr>
+ *     <td>com.opensymphony.xwork2.conversion.impl.DateConverter</td>
+ *     <td>struts.converter.date</td>
+ *     <td>singleton</td>
+ *     <td>Converter used to convert any object to Date and back</td>
+ *   </tr>
+ *   <tr>
+ *     <td>com.opensymphony.xwork2.conversion.impl.NumberConverter</td>
+ *     <td>struts.converter.number</td>
+ *     <td>singleton</td>
+ *     <td>Converter used to convert any object to Number and back</td>
+ *   </tr>
+ *   <tr>
+ *     <td>com.opensymphony.xwork2.conversion.impl.StringConverter</td>
+ *     <td>struts.converter.string</td>
+ *     <td>singleton</td>
+ *     <td>Converter used to convert any object to String and back</td>
  *   </tr>
  * </table>
  *
@@ -263,22 +298,28 @@ public class BeanSelectionProvider imple
         alias(UnknownHandlerManager.class, 
StrutsConstants.STRUTS_UNKNOWN_HANDLER_MANAGER, builder, props);
         alias(UrlHelper.class, StrutsConstants.STRUTS_URL_HELPER, builder, 
props);
 
+        alias(CollectionConverter.class, 
StrutsConstants.STRUTS_CONVERTER_COLLECTION, builder, props);
+        alias(ArrayConverter.class, StrutsConstants.STRUTS_CONVERTER_ARRAY, 
builder, props);
+        alias(DateConverter.class, StrutsConstants.STRUTS_CONVERTER_DATE, 
builder, props);
+        alias(NumberConverter.class, StrutsConstants.STRUTS_CONVERTER_NUMBER, 
builder, props);
+        alias(StringConverter.class, StrutsConstants.STRUTS_CONVERTER_STRING, 
builder, props);
+
         if 
("true".equalsIgnoreCase(props.getProperty(StrutsConstants.STRUTS_DEVMODE))) {
             props.setProperty(StrutsConstants.STRUTS_I18N_RELOAD, "true");
             props.setProperty(StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, 
"true");
             
props.setProperty(StrutsConstants.STRUTS_FREEMARKER_TEMPLATES_CACHE, "false");
             
props.setProperty(StrutsConstants.STRUTS_FREEMARKER_TEMPLATES_CACHE_UPDATE_DELAY,
 "0");
             // Convert struts properties into ones that xwork expects
-            props.setProperty("devMode", "true");
+            props.setProperty(XWorkConstants.DEV_MODE, "true");
         } else {
-            props.setProperty("devMode", "false");
+            props.setProperty(XWorkConstants.DEV_MODE, "false");
         }
 
         // Convert Struts properties into XWork properties
-        convertIfExist(props, StrutsConstants.STRUTS_LOG_MISSING_PROPERTIES, 
"logMissingProperties");
-        convertIfExist(props, 
StrutsConstants.STRUTS_ENABLE_OGNL_EXPRESSION_CACHE, 
"enableOGNLExpressionCache");
-        convertIfExist(props, 
StrutsConstants.STRUTS_ALLOW_STATIC_METHOD_ACCESS, "allowStaticMethodAccess");
-        convertIfExist(props, StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, 
"reloadXmlConfiguration");
+        convertIfExist(props, StrutsConstants.STRUTS_LOG_MISSING_PROPERTIES, 
XWorkConstants.LOG_MISSING_PROPERTIES);
+        convertIfExist(props, 
StrutsConstants.STRUTS_ENABLE_OGNL_EXPRESSION_CACHE, 
XWorkConstants.ENABLE_OGNL_EXPRESSION_CACHE);
+        convertIfExist(props, 
StrutsConstants.STRUTS_ALLOW_STATIC_METHOD_ACCESS, 
XWorkConstants.ALLOW_STATIC_METHOD_ACCESS);
+        convertIfExist(props, StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, 
XWorkConstants.RELOAD_XML_CONFIGURATION);
 
         
LocalizedTextUtil.addDefaultResourceBundle("org/apache/struts2/struts-messages");
         loadCustomResourceBundles(props);

Modified: struts/struts2/trunk/core/src/main/resources/struts-default.xml
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/struts-default.xml?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/struts-default.xml (original)
+++ struts/struts2/trunk/core/src/main/resources/struts-default.xml Fri Jul 20 
20:44:32 2012
@@ -65,16 +65,14 @@
     <bean type="org.apache.struts2.components.template.TemplateEngine" 
name="jsp" class="org.apache.struts2.components.template.JspTemplateEngine" />
 
     <bean type="com.opensymphony.xwork2.conversion.impl.XWorkConverter" 
name="struts" class="com.opensymphony.xwork2.conversion.impl.XWorkConverter" />
-    <bean type="com.opensymphony.xwork2.conversion.impl.XWorkConverter" 
name="xwork1" class="com.opensymphony.xwork2.conversion.impl.XWorkConverter" />
     <bean class="com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter" 
/>
 
-    <bean type="com.opensymphony.xwork2.conversion.TypeConverter" 
name="collection" 
class="com.opensymphony.xwork2.conversion.impl.CollectionConverter" 
scope="singleton"/>
-    <bean type="com.opensymphony.xwork2.conversion.TypeConverter" name="array" 
class="com.opensymphony.xwork2.conversion.impl.ArrayConverter" 
scope="singleton"/>
-    <bean type="com.opensymphony.xwork2.conversion.TypeConverter" name="date" 
class="com.opensymphony.xwork2.conversion.impl.DateConverter" 
scope="singleton"/>
-    <bean type="com.opensymphony.xwork2.conversion.TypeConverter" 
name="number" class="com.opensymphony.xwork2.conversion.impl.NumberConverter" 
scope="singleton"/>
-    <bean type="com.opensymphony.xwork2.conversion.TypeConverter" 
name="string" class="com.opensymphony.xwork2.conversion.impl.StringConverter" 
scope="singleton"/>
+    <bean type="com.opensymphony.xwork2.conversion.impl.CollectionConverter" 
name="struts" 
class="com.opensymphony.xwork2.conversion.impl.CollectionConverter" 
scope="singleton"/>
+    <bean type="com.opensymphony.xwork2.conversion.impl.ArrayConverter" 
name="struts" class="com.opensymphony.xwork2.conversion.impl.ArrayConverter" 
scope="singleton"/>
+    <bean type="com.opensymphony.xwork2.conversion.impl.DateConverter" 
name="struts" class="com.opensymphony.xwork2.conversion.impl.DateConverter" 
scope="singleton"/>
+    <bean type="com.opensymphony.xwork2.conversion.impl.NumberConverter" 
name="struts" class="com.opensymphony.xwork2.conversion.impl.NumberConverter" 
scope="singleton"/>
+    <bean type="com.opensymphony.xwork2.conversion.impl.StringConverter" 
name="struts" class="com.opensymphony.xwork2.conversion.impl.StringConverter" 
scope="singleton"/>
 
-    <bean type="com.opensymphony.xwork2.TextProvider" name="xwork1" 
class="com.opensymphony.xwork2.TextProviderSupport" scope="default" />
     <bean type="com.opensymphony.xwork2.TextProvider" name="struts" 
class="com.opensymphony.xwork2.TextProviderSupport" scope="default" />
 
     <bean type="org.apache.struts2.components.UrlRenderer" name="struts" 
class="org.apache.struts2.components.ServletUrlRenderer"/>

Added: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java?rev=1363947&view=auto
==============================================================================
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
 (added)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
 Fri Jul 20 20:44:32 2012
@@ -0,0 +1,18 @@
+package com.opensymphony.xwork2;
+
+/**
+ * Constants used across framework
+ */
+public final class XWorkConstants {
+
+    public static final String COLLECTION_CONVERTER = "collectionConverter";
+    public static final String DATE_CONVERTER = "dateConverter";
+    public static final String NUMBER_CONVERTER = "numberConverter";
+    public static final String STRING_CONVERTER = "stringConverter";
+    public static final String ARRAY_CONVERTER = "arrayConverter";
+    public static final String DEV_MODE = "devMode";
+    public static final String LOG_MISSING_PROPERTIES = "logMissingProperties";
+    public static final String ENABLE_OGNL_EXPRESSION_CACHE = 
"enableOGNLExpressionCache";
+    public static final String RELOAD_XML_CONFIGURATION = 
"reloadXmlConfiguration";
+    public static final String ALLOW_STATIC_METHOD_ACCESS = 
"allowStaticMethodAccess";
+}

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
 Fri Jul 20 20:44:32 2012
@@ -21,6 +21,7 @@ import com.opensymphony.xwork2.FileManag
 import com.opensymphony.xwork2.FileManagerFactory;
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.TextProvider;
+import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
@@ -289,18 +290,18 @@ public class DefaultConfiguration implem
         builder.factory(ValueStackFactory.class, OgnlValueStackFactory.class, 
Scope.SINGLETON);
         builder.factory(XWorkConverter.class, Scope.SINGLETON);
         builder.factory(XWorkBasicConverter.class, Scope.SINGLETON);
-        builder.factory(TypeConverter.class, "collection",  
CollectionConverter.class, Scope.SINGLETON);
-        builder.factory(TypeConverter.class, "array", ArrayConverter.class, 
Scope.SINGLETON);
-        builder.factory(TypeConverter.class, "date", DateConverter.class, 
Scope.SINGLETON);
-        builder.factory(TypeConverter.class, "number",  NumberConverter.class, 
Scope.SINGLETON);
-        builder.factory(TypeConverter.class, "string", StringConverter.class, 
Scope.SINGLETON);
+        builder.factory(TypeConverter.class, 
XWorkConstants.COLLECTION_CONVERTER,  CollectionConverter.class, 
Scope.SINGLETON);
+        builder.factory(TypeConverter.class, XWorkConstants.ARRAY_CONVERTER, 
ArrayConverter.class, Scope.SINGLETON);
+        builder.factory(TypeConverter.class, XWorkConstants.DATE_CONVERTER, 
DateConverter.class, Scope.SINGLETON);
+        builder.factory(TypeConverter.class, XWorkConstants.NUMBER_CONVERTER,  
NumberConverter.class, Scope.SINGLETON);
+        builder.factory(TypeConverter.class, XWorkConstants.STRING_CONVERTER, 
StringConverter.class, Scope.SINGLETON);
         builder.factory(TextProvider.class, "system", 
DefaultTextProvider.class, Scope.SINGLETON);
         builder.factory(ObjectTypeDeterminer.class, 
DefaultObjectTypeDeterminer.class, Scope.SINGLETON);
         builder.factory(PropertyAccessor.class, CompoundRoot.class.getName(), 
CompoundRootAccessor.class, Scope.SINGLETON);
         builder.factory(OgnlUtil.class, Scope.SINGLETON);
-        builder.constant("devMode", "false");
-        builder.constant("logMissingProperties", "false");
-        builder.constant("reloadXmlConfiguration", "false");
+        builder.constant(XWorkConstants.DEV_MODE, "false");
+        builder.constant(XWorkConstants.LOG_MISSING_PROPERTIES, "false");
+        builder.constant(XWorkConstants.RELOAD_XML_CONFIGURATION, "false");
         return builder.create(true);
     }
 

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java
 Fri Jul 20 20:44:32 2012
@@ -15,6 +15,7 @@
  */
 package com.opensymphony.xwork2.config.impl;
 
+import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
@@ -56,8 +57,8 @@ public class MockConfiguration implement
         builder.factory(Configuration.class, MockConfiguration.class, 
Scope.SINGLETON);
         LocatableProperties props = new LocatableProperties();
         new XWorkConfigurationProvider().register(builder, props);
-        builder.constant("devMode", "false");
-        builder.constant("reloadXmlConfiguration", "true");
+        builder.constant(XWorkConstants.DEV_MODE, "false");
+        builder.constant(XWorkConstants.RELOAD_XML_CONFIGURATION, "true");
         container = builder.create(true);
     }
 

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
 Fri Jul 20 20:44:32 2012
@@ -9,12 +9,12 @@ import com.opensymphony.xwork2.FileManag
 import com.opensymphony.xwork2.TextProvider;
 import com.opensymphony.xwork2.TextProviderSupport;
 import com.opensymphony.xwork2.UnknownHandlerManager;
+import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
 import com.opensymphony.xwork2.conversion.NullHandler;
 import com.opensymphony.xwork2.conversion.ObjectTypeDeterminer;
-import com.opensymphony.xwork2.conversion.TypeConverter;
 import com.opensymphony.xwork2.conversion.impl.ArrayConverter;
 import com.opensymphony.xwork2.conversion.impl.CollectionConverter;
 import com.opensymphony.xwork2.conversion.impl.DateConverter;
@@ -124,15 +124,15 @@ public class XWorkConfigurationProvider 
                 .factory(TextProvider.class, TextProviderSupport.class, 
Scope.SINGLETON)
                 .factory(OgnlUtil.class, Scope.SINGLETON)
                 .factory(XWorkBasicConverter.class, Scope.SINGLETON)
-                .factory(TypeConverter.class, "collection", 
CollectionConverter.class, Scope.SINGLETON)
-                .factory(TypeConverter.class, "array", ArrayConverter.class, 
Scope.SINGLETON)
-                .factory(TypeConverter.class, "date", DateConverter.class, 
Scope.SINGLETON)
-                .factory(TypeConverter.class, "number", NumberConverter.class, 
Scope.SINGLETON)
-                .factory(TypeConverter.class, "string", StringConverter.class, 
Scope.SINGLETON);
-        props.setProperty("devMode", Boolean.FALSE.toString());
-        props.setProperty("logMissingProperties", Boolean.FALSE.toString());
-        props.setProperty("enableOGNLExpressionCache", 
Boolean.TRUE.toString());
-        props.setProperty("reloadXmlConfiguration", Boolean.FALSE.toString());
+                .factory(CollectionConverter.class, Scope.SINGLETON)
+                .factory(ArrayConverter.class, Scope.SINGLETON)
+                .factory(DateConverter.class, Scope.SINGLETON)
+                .factory(NumberConverter.class, Scope.SINGLETON)
+                .factory(StringConverter.class, Scope.SINGLETON);
+        props.setProperty(XWorkConstants.DEV_MODE, Boolean.FALSE.toString());
+        props.setProperty(XWorkConstants.LOG_MISSING_PROPERTIES, 
Boolean.FALSE.toString());
+        props.setProperty(XWorkConstants.ENABLE_OGNL_EXPRESSION_CACHE, 
Boolean.TRUE.toString());
+        props.setProperty(XWorkConstants.RELOAD_XML_CONFIGURATION, 
Boolean.FALSE.toString());
     }
 
 }

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkBasicConverter.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkBasicConverter.java?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkBasicConverter.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkBasicConverter.java
 Fri Jul 20 20:44:32 2012
@@ -16,6 +16,7 @@
 package com.opensymphony.xwork2.conversion.impl;
 
 import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.XWorkException;
 import com.opensymphony.xwork2.conversion.TypeConverter;
 import com.opensymphony.xwork2.inject.Inject;
@@ -46,19 +47,6 @@ import java.util.Map;
  * <p/> Note that with arrays the type conversion will defer to the type of 
the array elements and try to convert each
  * item individually. As with any other type conversion, if the conversion 
can't be performed the standard type
  * conversion error reporting is used to indicate a problem occurred while 
processing the type conversion.
- * <p/> As from version 2.3.2 you can override default converters by 
implementting {@link TypeConverter} interface
- * and specifying beans in struts.xml as follow:
- * &lt;bean type=&quot;com.opensymphony.xwork2.conversion.TypeConverter&quot; 
name=&quot;collection&quot; class="com.application.MyCollectionConverter&quot; 
scope=&quot;singleton&quot;/&gt;
- * <p/>
- * There are five types of converters defined:
- * <ul>
- * <li>collection</li>
- * <li>array</li>
- * <li>date</li>
- * <li>number</li>
- * <li>string</li>
- * </ul>
- * <p/>
  * <!-- END SNIPPET: javadoc -->
  *
  * @author <a href="mailto:pligh...@gmail.com";>Pat Lightbody</a>
@@ -153,14 +141,6 @@ public class XWorkBasicConverter extends
         return result;
     }
 
-    private Object doConvertToArray(Map<String, Object> context, Object o, 
Member member, String prop, Object value, Class toType) {
-        TypeConverter converter = objectFactory.buildConverter("array");
-        if (converter == null) {
-            throw new XWorkException("TypeConverter with name [array] must be 
registered first!");
-        }
-        return converter.convertValue(context, o, member, prop, value, toType);
-    }
-
     private Object doConvertToCharacter(Object value) {
         if (value instanceof String) {
             String cStr = (String) value;
@@ -190,33 +170,41 @@ public class XWorkBasicConverter extends
     }
 
     private Object doConvertToCollection(Map<String, Object> context, Object 
o, Member member, String prop, Object value, Class toType) {
-        TypeConverter converter = objectFactory.buildConverter("collection");
+        TypeConverter converter = 
objectFactory.buildConverter(CollectionConverter.class);
+        if (converter == null) {
+            throw new XWorkException("TypeConverter with name [#0] must be 
registered first!", XWorkConstants.COLLECTION_CONVERTER);
+        }
+        return converter.convertValue(context, o, member, prop, value, toType);
+    }
+
+    private Object doConvertToArray(Map<String, Object> context, Object o, 
Member member, String prop, Object value, Class toType) {
+        TypeConverter converter = 
objectFactory.buildConverter(ArrayConverter.class);
         if (converter == null) {
-            throw new XWorkException("TypeConverter with name [collection] 
must be registered first!");
+            throw new XWorkException("TypeConverter with name [#0] must be 
registered first!", XWorkConstants.ARRAY_CONVERTER);
         }
         return converter.convertValue(context, o, member, prop, value, toType);
     }
 
     private Object doConvertToDate(Map<String, Object> context, Object value, 
Class toType) {
-        TypeConverter converter = objectFactory.buildConverter("date");
+        TypeConverter converter = 
objectFactory.buildConverter(DateConverter.class);
         if (converter == null) {
-            throw new XWorkException("TypeConverter with name [date] must be 
registered first!");
+            throw new XWorkException("TypeConverter with name [#0] must be 
registered first!", XWorkConstants.DATE_CONVERTER);
         }
         return converter.convertValue(context, null, null, null, value, 
toType);
     }
 
     private Object doConvertToNumber(Map<String, Object> context, Object 
value, Class toType) {
-        TypeConverter converter = objectFactory.buildConverter("number");
+        TypeConverter converter = 
objectFactory.buildConverter(NumberConverter.class);
         if (converter == null) {
-            throw new XWorkException("TypeConverter with name [number] must be 
registered first!");
+            throw new XWorkException("TypeConverter with name [#0] must be 
registered first!", XWorkConstants.NUMBER_CONVERTER);
         }
         return converter.convertValue(context, null, null, null, value, 
toType);
     }
 
     private Object doConvertToString(Map<String, Object> context, Object 
value) {
-        TypeConverter converter = objectFactory.buildConverter("string");
+        TypeConverter converter = 
objectFactory.buildConverter(StringConverter.class);
         if (converter == null) {
-            throw new XWorkException("TypeConverter with name [string] must be 
registered first!");
+            throw new XWorkException("TypeConverter with name [#0] must be 
registered first!", XWorkConstants.STRING_CONVERTER);
         }
         return converter.convertValue(context, null, null, null, value, null);
     }

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/AliasInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/AliasInterceptor.java?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/AliasInterceptor.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/AliasInterceptor.java
 Fri Jul 20 20:44:32 2012
@@ -19,6 +19,7 @@ package com.opensymphony.xwork2.intercep
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.ValidationAware;
+import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.util.ValueStack;
@@ -95,7 +96,7 @@ public class AliasInterceptor extends Ab
     protected ValueStackFactory valueStackFactory;
     static boolean devMode = false;
 
-    @Inject("devMode")
+    @Inject(XWorkConstants.DEV_MODE)
     public static void setDevMode(String mode) {
         devMode = "true".equals(mode);
     }   

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
 Fri Jul 20 20:44:32 2012
@@ -18,6 +18,7 @@ package com.opensymphony.xwork2.intercep
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.ValidationAware;
+import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler;
 import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
 import com.opensymphony.xwork2.inject.Inject;
@@ -145,7 +146,7 @@ public class ParametersInterceptor exten
         this.valueStackFactory = valueStackFactory;
     }
 
-    @Inject("devMode")
+    @Inject(XWorkConstants.DEV_MODE)
     public static void setDevMode(String mode) {
         devMode = "true".equals(mode);
     }

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java
 Fri Jul 20 20:44:32 2012
@@ -18,6 +18,7 @@ package com.opensymphony.xwork2.intercep
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.ValidationAware;
+import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.config.entities.Parameterizable;
@@ -95,7 +96,7 @@ public class StaticParametersInterceptor
         this.valueStackFactory = valueStackFactory;
     }
 
-    @Inject("devMode")
+    @Inject(XWorkConstants.DEV_MODE)
     public static void setDevMode(String mode) {
         devMode = "true".equals(mode);
     }    

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
 Fri Jul 20 20:44:32 2012
@@ -15,6 +15,7 @@
  */
 package com.opensymphony.xwork2.ognl;
 
+import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.CompoundRoot;
@@ -55,7 +56,7 @@ public class OgnlUtil {
         this.defaultConverter = new OgnlTypeConverterWrapper(conv);
     }
 
-    @Inject("devMode")
+    @Inject(XWorkConstants.DEV_MODE)
     public static void setDevMode(String mode) {
         devMode = "true".equals(mode);
     }

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
 Fri Jul 20 20:44:32 2012
@@ -17,6 +17,7 @@ package com.opensymphony.xwork2.ognl;
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.TextProvider;
+import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.XWorkException;
 import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
 import com.opensymphony.xwork2.inject.Container;
@@ -95,7 +96,7 @@ public class OgnlValueStack implements S
         ((OgnlContext) context).setKeepLastEvaluation(false);
     }
 
-    @Inject("devMode")
+    @Inject(XWorkConstants.DEV_MODE)
     public void setDevMode(String mode) {
         devMode = "true".equalsIgnoreCase(mode);
     }

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/accessor/CompoundRootAccessor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/accessor/CompoundRootAccessor.java?rev=1363947&r1=1363946&r2=1363947&view=diff
==============================================================================
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/accessor/CompoundRootAccessor.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/accessor/CompoundRootAccessor.java
 Fri Jul 20 20:44:32 2012
@@ -15,6 +15,7 @@
  */
 package com.opensymphony.xwork2.ognl.accessor;
 
+import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.XWorkException;
 import com.opensymphony.xwork2.ognl.OgnlValueStack;
 import com.opensymphony.xwork2.inject.Inject;
@@ -58,7 +59,7 @@ public class CompoundRootAccessor implem
 
     static boolean devMode = false;
 
-    @Inject("devMode")
+    @Inject(XWorkConstants.DEV_MODE)
     public static void setDevMode(String mode) {
         devMode = "true".equals(mode);
     }


Reply via email to