Author: lukaszlenart Date: Tue Jul 24 06:23:33 2012 New Revision: 1364910 URL: http://svn.apache.org/viewvc?rev=1364910&view=rev Log: WW-3414 removes ObjectFactory as a field and uses ActionContext to retrieve instance of ObjectFactory to allow serialize instances of XWorkList
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/CollectionConverter.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/conversion/impl/CollectionConverter.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/CollectionConverter.java?rev=1364910&r1=1364909&r2=1364910&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/CollectionConverter.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/CollectionConverter.java Tue Jul 24 06:23:33 2012 @@ -89,9 +89,9 @@ public class CollectionConverter extends result = new TreeSet(); } else { if (size > 0) { - result = new XWorkList(objectFactory, memberType, size); + result = new XWorkList(memberType, size); } else { - result = new XWorkList(objectFactory, memberType); + result = new XWorkList(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=1364910&r1=1364909&r2=1364910&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 Tue Jul 24 06:23:33 2012 @@ -42,17 +42,13 @@ public class XWorkList extends ArrayList private Class clazz; - private ObjectFactory objectFactory; - - public XWorkList(ObjectFactory fac, Class clazz) { + public XWorkList(Class clazz) { this.clazz = clazz; - this.objectFactory = fac; } - public XWorkList(ObjectFactory fac, Class clazz, int initialCapacity) { + public XWorkList(Class clazz, int initialCapacity) { super(initialCapacity); this.clazz = clazz; - this.objectFactory = fac; } /** @@ -169,8 +165,7 @@ public class XWorkList extends ArrayList public synchronized Object get(int index) { while (index >= this.size()) { try { - //todo - this.add(objectFactory.buildBean(clazz, null)); //ActionContext.getContext().getContextMap())); + this.add(getObjectFactory().buildBean(clazz, ActionContext.getContext().getContextMap())); } catch (Exception e) { throw new XWorkException(e); } @@ -179,6 +174,10 @@ public class XWorkList extends ArrayList return super.get(index); } + private ObjectFactory getObjectFactory() { + return ActionContext.getContext().getInstance(ObjectFactory.class); + } + /** * Replaces the element at the specified position in this list with the specified element. * <p/> @@ -207,7 +206,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); + TypeConverter conv = getObjectFactory().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=1364910&r1=1364909&r2=1364910&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 Tue Jul 24 06:23:33 2012 @@ -15,7 +15,6 @@ */ package com.opensymphony.xwork2.util; -import com.opensymphony.xwork2.ObjectFactory; import com.opensymphony.xwork2.XWorkTestCase; import java.util.ArrayList; @@ -29,8 +28,7 @@ import java.util.ArrayList; public class XWorkListTest extends XWorkTestCase { public void testAddAllIndex() { - ObjectFactory of = container.getInstance(ObjectFactory.class); - XWorkList xworkList = new XWorkList(of, String.class); + XWorkList xworkList = new XWorkList(String.class); xworkList.add(new String[]{"a"}); xworkList.add("b"); @@ -50,7 +48,7 @@ public class XWorkListTest extends XWork assertEquals("3", xworkList.get(5)); // take 2, no trim - xworkList = new XWorkList(of, String.class); + xworkList = new XWorkList(String.class); xworkList.add(new String[]{"a"}); xworkList.add("b"); @@ -68,7 +66,7 @@ public class XWorkListTest extends XWork assertEquals("3", xworkList.get(4)); // take 3, insert - xworkList = new XWorkList(of, String.class); + xworkList = new XWorkList(String.class); xworkList.add(new String[]{"a"}); xworkList.add("b");