svn commit: r1133044 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/views/jsp/ui/AbstractUITag.java test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java test/resources/org/apac
Author: lukaszlenart Date: Tue Jun 7 15:18:58 2011 New Revision: 1133044 URL: http://svn.apache.org/viewvc?rev=1133044&view=rev Log: WW-3644 - adds support for expression evaluation in dynamic attributes Added: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-3.txt - copied, changed from r1132139, struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-2.txt Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITag.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITag.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITag.java?rev=1133044&r1=1133043&r2=1133044&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITag.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITag.java Tue Jun 7 15:18:58 2011 @@ -21,14 +21,13 @@ package org.apache.struts2.views.jsp.ui; -import java.util.HashMap; -import java.util.Map; +import org.apache.struts2.components.UIBean; +import org.apache.struts2.views.jsp.ComponentTagSupport; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.DynamicAttributes; - -import org.apache.struts2.components.UIBean; -import org.apache.struts2.views.jsp.ComponentTagSupport; +import java.util.HashMap; +import java.util.Map; /** @@ -292,6 +291,11 @@ public abstract class AbstractUITag exte } public void setDynamicAttribute(String uri, String localName, Object value) throws JspException { -dynamicAttributes.put(localName, value); +if (value != null && value instanceof String) { +dynamicAttributes.put(localName, findValue(value.toString())); +} else { +dynamicAttributes.put(localName, value); +} } + } Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java?rev=1133044&r1=1133043&r2=1133044&view=diff == --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java Tue Jun 7 15:18:58 2011 @@ -76,4 +76,22 @@ public class AnchorTest extends Abstract verify(AnchorTest.class.getResource("Anchor-2.txt")); } + +public void testDynamicAttributeAsExpression() throws Exception { +TestAction testAction = (TestAction) action; +testAction.setFoo("bar"); + +AnchorTag tag = new AnchorTag(); +tag.setPageContext(pageContext); + +tag.setId("mylink"); +tag.setHref("a"); + +tag.setDynamicAttribute("uri", "placeholder", "foo"); + +tag.doStartTag(); +tag.doEndTag(); + +verify(AnchorTest.class.getResource("Anchor-3.txt")); +} } Copied: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-3.txt (from r1132139, struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-2.txt) URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-3.txt?p2=struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-3.txt&p1=struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-2.txt&r1=1132139&r2=1133044&rev=1133044&view=diff == --- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-2.txt (original) +++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-3.txt Tue Jun 7 15:18:58 2011 @@ -1,5 +1,5 @@ + placeholder="bar">
svn commit: r1133045 - /struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/MakeIterator.java
Author: lukaszlenart Date: Tue Jun 7 15:24:31 2011 New Revision: 1133045 URL: http://svn.apache.org/viewvc?rev=1133045&view=rev Log: WW-3645 - uses EnumerationIterator to simplify logic Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/MakeIterator.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/MakeIterator.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/MakeIterator.java?rev=1133045&r1=1133044&r2=1133045&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/MakeIterator.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/MakeIterator.java Tue Jun 7 15:24:31 2011 @@ -21,18 +21,18 @@ package org.apache.struts2.util; +import org.apache.struts2.util.IteratorFilterSupport.EnumerationIterator; + import java.lang.reflect.Array; import java.util.ArrayList; -import java.util.Collection; +import java.util.Arrays; import java.util.Enumeration; import java.util.Iterator; -import java.util.List; import java.util.Map; /** * MakeIterator. - * */ public class MakeIterator { @@ -91,18 +91,9 @@ public class MakeIterator { iterator = list.iterator(); } else if (value instanceof Enumeration) { -Enumeration enumeration = (Enumeration) value; -ArrayList list = new ArrayList(); - -while (enumeration.hasMoreElements()) { -list.add(enumeration.nextElement()); -} - -iterator = list.iterator(); +iterator = new EnumerationIterator((Enumeration) value); } else { -List list = new ArrayList(1); -list.add(value); -iterator = list.iterator(); +iterator = Arrays.asList(value).iterator(); } return iterator;
[CONF] Confluence Changes in the last 24 hours
This is a daily summary of all recent changes in Confluence. - Updated Spaces: - Apache ActiveMQ (https://cwiki.apache.org/confluence/display/ACTIVEMQ) Pages - OpenWire edited by tabish121 (05:31 PM) https://cwiki.apache.org/confluence/display/ACTIVEMQ/OpenWire Apache Buildr (https://cwiki.apache.org/confluence/display/BUILDR) Pages - Buildr Plugins edited by pe...@realityforge.org (06:51 AM) https://cwiki.apache.org/confluence/display/BUILDR/Buildr+Plugins Apache Camel (https://cwiki.apache.org/confluence/display/CAMEL) Pages - Camel 2.8.0 Release edited by hadr...@apache.org (11:10 PM) https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.8.0+Release Creating a new Camel Component edited by boday (12:22 PM) https://cwiki.apache.org/confluence/display/CAMEL/Creating+a+new+Camel+Component Message edited by boday (11:58 AM) https://cwiki.apache.org/confluence/display/CAMEL/Message Articles edited by davsclaus (02:17 AM) https://cwiki.apache.org/confluence/display/CAMEL/Articles APNS created by davsclaus (02:06 AM) https://cwiki.apache.org/confluence/display/CAMEL/APNS Component List edited by davsclaus (02:00 AM) https://cwiki.apache.org/confluence/display/CAMEL/Component+List Apache Click (https://cwiki.apache.org/confluence/display/CLICK) Comments https://cwiki.apache.org/confluence/display/CLICK/Missing+Translations (1) Apache CXF Documentation (https://cwiki.apache.org/confluence/display/CXF20DOC) Pages - Debugging and Logging edited by dkulp (03:26 PM) https://cwiki.apache.org/confluence/display/CXF20DOC/Debugging+and+Logging Apache ESME (https://cwiki.apache.org/confluence/display/ESME) Pages - API 2.0 - Design edited by richardhirsch (02:50 AM) https://cwiki.apache.org/confluence/display/ESME/API+2.0+-+Design Project Information edited by richardhirsch (02:46 AM) https://cwiki.apache.org/confluence/display/ESME/Project+Information Apache Felix (https://cwiki.apache.org/confluence/display/FELIX) Pages - Board Report (2011-06) created by he...@ungoverned.org (10:28 AM) https://cwiki.apache.org/confluence/display/FELIX/Board+Report+%282011-06%29 Apache Jackrabbit (https://cwiki.apache.org/confluence/display/JCR) Pages - Downloads edited by jukka (01:37 PM) https://cwiki.apache.org/confluence/display/JCR/Downloads Welcome to Apache Jackrabbit edited by jukka (01:31 PM) https://cwiki.apache.org/confluence/display/JCR/Welcome+to+Apache+Jackrabbit Apache Maven (https://cwiki.apache.org/confluence/display/MAVEN) Pages - Plexus-utils replacement edited by stephenc (06:51 PM) https://cwiki.apache.org/confluence/display/MAVEN/Plexus-utils+replacement Apache MRUnit (https://cwiki.apache.org/confluence/display/MRUNIT) Pages - Incubator Status Report (June 2011) edited by phunt (04:47 PM) https://cwiki.apache.org/confluence/display/MRUNIT/Incubator+Status+Report+%28June+2011%29 Incubator Status Report (September 2011) created by phunt (04:47 PM) https://cwiki.apache.org/confluence/display/MRUNIT/Incubator+Status+Report+%28September+2011%29 OpenEJB 3.0.x documentation (https://cwiki.apache.org/confluence/display/OPENEJBx30) Pages - Hello World edited by dblevins (10:10 PM) https://cwiki.apache.org/confluence/display/OPENEJBx30/Hello+World Apache OpenNLP (https://cwiki.apache.org/confluence/display/OPENNLP) Pages - OpenNLP Annotations created by joern (10:05 AM) https://cwiki.apache.org/confluence/display/OPENNLP/OpenNLP+Annotations Index edited by joern (10:04 AM) https://cwiki.apache.org/confluence/display/OPENNLP/Index Apache Shiro (https://cwiki.apache.org/confluence/display/SHIRO) Pages - Web edited by lhazlewood (03:58 PM) https://cwiki.apache.org/confluence/display/SHIRO/Web Apache ServiceMix (https://cwiki.apache.org/confluence/display/SM) Pages - servicemix-http new endpoints edited by gertvanthienen (08:52 AM) https://cwiki.apache.org/confluence/display/SM/servicemix-http+new+endpoints Apache Tapestry