You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2011/12/22 07:51:15 UTC

svn commit: r1222068 - in /struts/struts2/trunk/xwork-core/src: main/java/com/opensymphony/xwork2/ main/java/com/opensymphony/xwork2/conversion/impl/ main/java/com/opensymphony/xwork2/util/ test/java/com/opensymphony/xwork2/util/

Author: lukaszlenart
Date: Thu Dec 22 06:51:14 2011
New Revision: 1222068

URL: http://svn.apache.org/viewvc?rev=1222068&view=rev
Log:
WW-3414 removes not serializable field from XWorkList and uses Object Factory to obtain instance o XWorkBasicConverter

Modified:
    struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ObjectFactory.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/util/XWorkList.java
    struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/XWorkListTest.java

Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java?rev=1222068&r1=1222067&r2=1222068&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java Thu Dec 22 06:51:14 2011
@@ -19,6 +19,7 @@ import com.opensymphony.xwork2.config.Co
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.config.entities.InterceptorConfig;
 import com.opensymphony.xwork2.config.entities.ResultConfig;
+import com.opensymphony.xwork2.conversion.TypeConverter;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.interceptor.Interceptor;
@@ -256,6 +257,10 @@ public class ObjectFactory implements Se
         return validator;
     }
 
+    public TypeConverter buildConverter(Class<? extends TypeConverter> converterClass) {
+        return container.getInstance(converterClass);
+    }
+
     static class ContinuationsClassLoader extends ClassLoader {
         
     }

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=1222068&r1=1222067&r2=1222068&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 Thu Dec 22 06:51:14 2011
@@ -22,16 +22,29 @@ import com.opensymphony.xwork2.conversio
 import com.opensymphony.xwork2.conversion.TypeConverter;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.XWorkList;
+import org.apache.commons.lang.StringUtils;
 
 import java.lang.reflect.Array;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Member;
 import java.math.BigDecimal;
 import java.math.BigInteger;
-import java.text.*;
-import java.util.*;
-
-import org.apache.commons.lang.StringUtils;
+import java.text.DateFormat;
+import java.text.NumberFormat;
+import java.text.ParseException;
+import java.text.ParsePosition;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
 
 
 /**
@@ -66,7 +79,6 @@ public class XWorkBasicConverter extends
     private static String MILLISECOND_FORMAT = ".SSS";
     
     private ObjectTypeDeterminer objectTypeDeterminer;
-    private XWorkConverter xworkConverter;
     private ObjectFactory objectFactory;
 
     @Inject
@@ -75,11 +87,6 @@ public class XWorkBasicConverter extends
     }
     
     @Inject
-    public void setXWorkConverter(XWorkConverter conv) {
-        this.xworkConverter = conv;
-    }
-    
-    @Inject
     public void setObjectFactory(ObjectFactory fac) {
         this.objectFactory = fac;
     }
@@ -204,9 +211,9 @@ public class XWorkBasicConverter extends
             result = new TreeSet();
         } else {
             if (size > 0) {
-                result = new XWorkList(objectFactory, xworkConverter, memberType, size);
+                result = new XWorkList(objectFactory, memberType, size);
             } else {
-                result = new XWorkList(objectFactory, xworkConverter, memberType);
+                result = new XWorkList(objectFactory, memberType);
             }
         }
 

Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/XWorkList.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/XWorkList.java?rev=1222068&r1=1222067&r2=1222068&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/XWorkList.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/XWorkList.java Thu Dec 22 06:51:14 2011
@@ -18,6 +18,7 @@ package com.opensymphony.xwork2.util;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.XWorkException;
+import com.opensymphony.xwork2.conversion.TypeConverter;
 import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
 import com.opensymphony.xwork2.util.logging.Logger;
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
@@ -40,20 +41,17 @@ public class XWorkList extends ArrayList
     private static final Logger LOG = LoggerFactory.getLogger(XWorkConverter.class);
 
     private Class clazz;
-    private XWorkConverter conv;
 
     private ObjectFactory objectFactory;
 
-    public XWorkList(ObjectFactory fac, XWorkConverter conv, Class clazz) {
-        this.conv = conv;
+    public XWorkList(ObjectFactory fac, Class clazz) {
         this.clazz = clazz;
         this.objectFactory = fac;
     }
 
-    public XWorkList(ObjectFactory fac, XWorkConverter conv, Class clazz, int initialCapacity) {
+    public XWorkList(ObjectFactory fac, Class clazz, int initialCapacity) {
         super(initialCapacity);
         this.clazz = clazz;
-        this.conv = conv;
         this.objectFactory = fac;
     }
 
@@ -209,7 +207,7 @@ public class XWorkList extends ArrayList
             if (LOG.isDebugEnabled()) {
                 LOG.debug("Converting from " + element.getClass().getName() + " to " + clazz.getName());
             }
-
+            TypeConverter conv = objectFactory.buildConverter(XWorkConverter.class);
             Map<String, Object> context = ActionContext.getContext().getContextMap();
             element = conv.convertValue(context, null, null, null, element, clazz);
         }

Modified: struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/XWorkListTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/XWorkListTest.java?rev=1222068&r1=1222067&r2=1222068&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/XWorkListTest.java (original)
+++ struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/XWorkListTest.java Thu Dec 22 06:51:14 2011
@@ -17,7 +17,6 @@ package com.opensymphony.xwork2.util;
 
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.XWorkTestCase;
-import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
 
 import java.util.ArrayList;
 
@@ -30,9 +29,8 @@ import java.util.ArrayList;
 public class XWorkListTest extends XWorkTestCase {
 
     public void testAddAllIndex() {
-        XWorkConverter conv = container.getInstance(XWorkConverter.class);
         ObjectFactory of = container.getInstance(ObjectFactory.class);
-        XWorkList xworkList = new XWorkList(of, conv, String.class);
+        XWorkList xworkList = new XWorkList(of, String.class);
         xworkList.add(new String[]{"a"});
         xworkList.add("b");
 
@@ -52,7 +50,7 @@ public class XWorkListTest extends XWork
         assertEquals("3", xworkList.get(5));
 
         // take 2, no trim
-        xworkList = new XWorkList(of, conv,String.class);
+        xworkList = new XWorkList(of, String.class);
         xworkList.add(new String[]{"a"});
         xworkList.add("b");
 
@@ -70,7 +68,7 @@ public class XWorkListTest extends XWork
         assertEquals("3", xworkList.get(4));
 
         // take 3, insert
-        xworkList = new XWorkList(of, conv,String.class);
+        xworkList = new XWorkList(of, String.class);
         xworkList.add(new String[]{"a"});
         xworkList.add("b");