You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by ds...@apache.org on 2005/09/07 21:35:00 UTC

svn commit: r279404 - in /jakarta/tapestry/trunk: doc/src/ComponentReference/DirectLink.html framework/src/documentation/content/xdocs/tapestry/ComponentReference/DirectLink.xml status.xml

Author: dsolis
Date: Wed Sep  7 12:34:49 2005
New Revision: 279404

URL: http://svn.apache.org/viewcvs?rev=279404&view=rev
Log:
Fix bug: TAPESTRY-461, Document DirectLink component.

Removed:
    jakarta/tapestry/trunk/doc/src/ComponentReference/DirectLink.html
Modified:
    jakarta/tapestry/trunk/framework/src/documentation/content/xdocs/tapestry/ComponentReference/DirectLink.xml
    jakarta/tapestry/trunk/status.xml

Modified: jakarta/tapestry/trunk/framework/src/documentation/content/xdocs/tapestry/ComponentReference/DirectLink.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/documentation/content/xdocs/tapestry/ComponentReference/DirectLink.xml?rev=279404&r1=279403&r2=279404&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/documentation/content/xdocs/tapestry/ComponentReference/DirectLink.xml (original)
+++ jakarta/tapestry/trunk/framework/src/documentation/content/xdocs/tapestry/ComponentReference/DirectLink.xml Wed Sep  7 12:34:49 2005
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- 
+<!--
    Copyright 2004, 2005 The Apache Software Foundation
 
    Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,48 +25,308 @@
   <header>
     <title>DirectLink</title>
   </header>
-  
+
   <body>
 
-<p> <strong>THIS PAGE UNDER CONSTRUCTION</strong>
+<p> Creates an &lt;a&gt; hyperlink that notifies the component when the link is triggered. The link includes
+some context-specific data that is made available to the component's listener. This is used in cases where the
+&ActionLink; component can't be used (or is too inefficient).
 </p>
+<p>See the Developers Guide ActionLink and DirectLink listeners for a more complete description.</p>
 
 <p>
-  <strong>See also:</strong> 
+  <strong>See also: &ActionLink;, &ExternalLink;, &GenericLink;, &PageLink;, &ServiceLink;</strong>
+
 </p>
 
 <section>
   <title>Parameters</title>
-  
+
 <table>
-  <tr> 
+
+  <tr>
     <th>Name</th>
     <th>Type</th>
 	  <th>Direction</th>
-    <th>Required</th> 
+
+    <th>Required</th>
     <th>Default</th>
+
     <th>Description</th>
   </tr>
+  <tr>
+    <td>listener</td>
+    <td>&IActionListener;</td>
+
+    <td>in</td>
+    <td>yes</td>
+
+    <td></td>
+    <td>
+      Specifies an object that is notified when the link is clicked, which is typically a listener
+      method of its container (for example, listeners.<em>method</em>).
+    </td>
+  </tr>
+  <tr>
+    <td>parameters</td>
+    <td>Object or<br />
+
+Object[] or <br />
+List</td>
+
+    <td>in</td>
+    <td>no</td>
+    <td></td>
+    <td>
+      <p>An array of objects to be encoded into the URL. These parameters will be decoded when the
+      link is triggered.</p>
+
+      <p>In a web application built onto of Enterprise JavaBeans, the context is often the primary key
+      of some Entity bean; typically such keys are Strings or Integers.</p>
+      <p>A listener method can retrieve the parameters three ways:
+      <br/>parameters are declared in the method itself, e.g. - listenerMethod(<em>parameters</em>)
+      <br/>parameters are declared along with the IRequestCycle, e.g. - listenerMethod(IRequestCycle cycle, <em>parameters</em>)
+
+      <br/>or through the request cycle, e.g. - listenerMethod(IReuqestCycle cycle), using IRequestCycle.getServiceParameters()
+      </p>
+      <p>Prior to release 2.2, the parameters were always type String. They may now be of any type;
+      type will be maintained when the parameters are later retrieved by a listener. See &DataSqueezer;
+      for more details.</p>
+    </td>
+  </tr>
+
+  <tr>
+    <td>disabled</td>
+    <td>boolean</td>
+    <td>in</td>
+    <td>no</td>
+    <td>false</td>
+
+    <td>
+      Controls whether the link is produced. If disabled, the portion of the template the
+      link surrounds is still rendered, but not the link itself.
+    </td>
+  </tr>
+  <tr>
+    <td>stateful</td>
+    <td>boolean</td>
+    <td>in</td>
+
+    <td>no</td>
+    <td>true</td>
+    <td>
+      If true (the default), then the component requires an active (i.e., non-new) HttpSession when
+      triggered. Failing that, it throws a &StaleLinkException;. If false, then no check is necessary.
+      The latter works well with links that encode all necessary state inside the URL itself.
+    </td>
+  </tr>
+  <tr>
 
+    <td>anchor</td>
+
+    <td>String</td>
+    <td>in</td>
+    <td>no</td>
+    <td></td>
+    <td>
+
+      The name of an anchor or element to link to. The final URL will have '#' and the anchor appended to it.
+    </td>
+
+  </tr>
+  <tr>
+    <td>renderer</td>
+    <td>&ILinkRenderer;</td>
+    <td>in</td>
+    <td>no</td>
+
+    <td></td>
+
+    <td>
+      The object which will actually render the link.
+    </td>
+  </tr>
 	</table>
-  
+
 <p>
-  Body: <strong>removed / allowed</strong>
-</p>  
+  Body: <strong>rendered</strong>
+
+</p>
 
 <p>
-  Informal parameters: <strong>allowed  / forbidden</strong>
+
+  Informal parameters: <strong>allowed</strong>
 </p>
 
 <p>
-  Reserved parameters: <em>none</em>
+  Reserved parameters: <em>href</em>
 </p>
 
 </section>
+<section>
+<title>Examples</title>
+<p>
+In this example the DirectLink component enables users to select a Customer from the Customer List table.
+</p>
+
+<source><![CDATA[
+
+  <table class="examples" cellspacing="6">
+  <tr align="left">
+   <th>ID</th>
+   <th>&nbsp;</th>
+   <th>Name</th>
+   <th>&nbsp;</th>
+   <th>Level</th>
+   <th>&nbsp;</th>
+  </tr>
+  <tr>
+   <td colspan="6"><hr></td>
+  </tr>
+  <tr>
+   <td>10276</td>
+   <td>&nbsp;</td>
+   <td><a href="DirectLink.html" style="{color:blue;}">Ms Sophie L. Jamies</a></td>
+   <td>&nbsp;</td>
+   <td>Platinum</td>
+   <td><a href="DirectLink.html" style="{color:blue;}"><img src="images/delete.gif" alt="Delete"></a></td>
+  </tr>
+  <tr>
+   <td>10539</td>
+   <td>&nbsp;</td>
+   <td><a href="DirectLink.html" style="{color:blue;}">Mr Albert H. Davies</a></td>
+   <td>&nbsp;</td>
+   <td>Gold</td>
+   <td><a href="DirectLink.html" style="{color:blue;}"><img src="images/delete.gif" alt="Delete"></a></td>
+  </tr>
+  <tr>
+   <td>10552</td>
+   <td>&nbsp;</td>
+   <td><a href="DirectLink.html" style="{color:blue;}">Mrs Jan S. Flawson</a></td>
+   <td>&nbsp;</td>
+   <td>Gold</td>
+   <td><a href="DirectLink.html" style="{color:blue;}"><img src="images/delete.gif" alt="Delete"></a></td>
+  </tr>
+  <tr>
+   <td>10863</td>
+   <td>&nbsp;</td>
+   <td><a href="DirectLink.html" style="{color:blue;}">Mr Robert J. Hassel</a></td>
+   <td>&nbsp;</td>
+   <td>Silver</td>
+   <td><a href="DirectLink.html" style="{color:blue;}"><img src="images/delete.gif" alt="Delete"></a></td>
+  </tr>
+</table>
+]]></source>
+
 
 <section>
-  <title>Examples</title>
+<title>HTML template</title>
+<source><![CDATA[
+  <table cellspacing="6">
+  <tr>
+   <td>ID</td>
+   <td>&nbsp;</td>
+   <td>Name</td>
+   <td>&nbsp;</td>
+   <td>Level</td>
+   <th>&nbsp;</th>
+  </tr>
+  <tr>
+   <td colspan="6"><hr></td>
+  </tr>
+  <tr jwcid="@Foreach" source="ognl:customerList" value="ognl:customer" element="tr">
+   <td><span jwcid="@Insert" value="ognl:customer.id"/></td>
+   <td>&nbsp;</td>
+   <td><span jwcid="@DirectLink" listener="listener:customerSelectAction" parameters="ognl:customer.id"> <span jwcid="@Insert" value="ognl:customer.fullName"/> </span></td>
+   <td>&nbsp;</td>
+   <td><span jwcid="@Insert" value="ognl:customer.memberLevel"/></td>
+   <td>
+    <a jwcid="@DirectLink" listener="listener.customerDeleteAction" parameters="ognl:customer.id" onclick="return window.confirm('Are you sure you want remove this customer?');">
+     <img jwcid="@Image" image="ognl:assets.deleteImage" alt="Delete"/>
+    </a>
+   </td>
+  </tr>
+</table>
+]]></source>
+</section>
+
+<section>
+<title>Page specification</title>
+<source><![CDATA[
+<property-specification name="customerList" type="java.util.List" persistent="yes"/>
+<property-specification name="customer" type="Customer"/>
+]]></source>
+</section>
+
 
+<section>
+<title>Java sources</title>
+<source><![CDATA[
+public abstract class SalesPage extends BasePage {
+    public abstract List getCustomerList();
+    public abstract List setCustomerList(List value);
+
+    public abstract Customer getCustomer();
+
+    public void customerSelectAction(Integer id) {
+        Visit visit = (Visit) getVisit();
+        Customer customer = visit.findCustomerByPrimaryKey(id);
+        // Perform some action with the selected customer.
+        ..
+    }
+
+    public void customerDeleteAction(Integer id) {
+        Visit visit = (Visit) getVisit();
+        Customer customer = visit.findCustomerByPrimaryKey(id);
+        visit.deleteCustomer(customer);
+    }
+}
+]]></source>
+<source><![CDATA[
+public class Visit() implements Serializable {
+
+    public List getCustomerList() {
+        List customerList = new ArrayList();
+        // Perform a database query retrieving the list of customers.
+        ..
+        return customerList;
+    }
+
+    public Customer findCustomerByPrimaryKey(Integer id) {
+        Customer customer = null;
+        // Retrieve the customer from the database with given the customer ID.
+        ..
+        return customer;
+    }
+
+    public void deleteCustomer(Customer customer) {
+        // Delete customer from the database.
+        ..
+    }
+}
+]]></source>
+
+<source><![CDATA[
+public class Customer implements Serializable {
+    private Integer id;
+    private String fullName;
+    private String memberLevel;
+
+    public Customer(Integer id, String fullName, String memberLevel) {
+        this.id = id;
+        this.fullName = fullName;
+        this.memberLevel = memberLevel;
+    }
+
+    public Integer getId() { return id; }
+
+    public String getFullName() { return fullName; }
+
+    public String getMemberLevel() { return memberLevel; }
+}
+]]></source>
 </section>
+</section>
+
 </body>
 </document>

Modified: jakarta/tapestry/trunk/status.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/status.xml?rev=279404&r1=279403&r2=279404&view=diff
==============================================================================
--- jakarta/tapestry/trunk/status.xml (original)
+++ jakarta/tapestry/trunk/status.xml Wed Sep  7 12:34:49 2005
@@ -54,7 +54,7 @@
       <action type="update" dev="HLS" due-to="Henri Yandell">Convert Tapestry repository from CVS to SVN</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-611">Pattern validator invokes wrong client-side JavaScript function</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-610">$bean syntax for validators: binding prefix is broken</action>
-      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-609">Tapestry.set_focus() seems to be passed the form components elementId (i.e. name attribute) not clientId (i.e. id attribute), which keeps 
+      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-609">Tapestry.set_focus() seems to be passed the form components elementId (i.e. name attribute) not clientId (i.e. id attribute), which keeps
         focus from being set</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-478, TAPESTRY-477, TAPESTRY-463, TAPESTRY-474" due-to="Pierre-Yves Nicolas">Document RadioGroup, Radio, ExternalLink, Option components</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-613">Javascript problem with @LinkSubmit</action>
@@ -69,13 +69,14 @@
       <action type="fix" dev="DS" fixes-bug="TAPESTRY-479" due-to="Pierre-Yves Nicolas">Document RenderBody component</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-606">ListEdit components should not attempt to take focus</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-546">Build uploads vlibbeans-xxx.jar to java repository (and thence to the maven repository)</action>
+      <action type="fix" dev="DS" fixes-bug="TAPESTRY-461" due-to="Warner Onstine">Document DirectLink component</action>
     </release>
     <release version="4.0-beta-5" date="Aug 26 2005">
       <action type="fix" dev="MB,HLS" fixes-bug="TAPESTRY-552">Improperly configured SerializableAdaptor (for DataSqueezer) prevents serialized objects from being de-serialized</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-554">Hook needed on client side to control how validation errors are presented to the user</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-528">Add IComponentSpecification.getReservedParameterNames()</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-557">Remove unused org.apache.tapestry.IResourceLocation (replaced by org.apache.hivemind.Resource)</action>
-      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-553">Rename property-name attribute of configure element to "property" (matching the code in SpecificationParser, as well as other similar 
+      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-553">Rename property-name attribute of configure element to "property" (matching the code in SpecificationParser, as well as other similar
         elements in the DTD)</action>
       <action type="fix" dev="MB" fixes-bug="TAPESTRY-555">IfBean has a logic error in it</action>
       <action type="fix" dev="MB" fixes-bug="TAPESTRY-290">Incorrect binding type converter for array of int[]</action>
@@ -111,7 +112,7 @@
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-445" due-to="Markus Joschko">ContextAssetFactory assembles wrong filename for assets</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-444">regexp validator(Email) script function name mismatch</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-446">Changes to assets are not picked up, even when caching is disabled</action>
-      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-435,TAPESTRY-325,TAPESTRY-309,TAPESTRY-311,TAPESTRY-252,TAPESTRY-254,TAPESTRY-327,TAPESTRY-333" due-to="Our many international users">Add many 
+      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-435,TAPESTRY-325,TAPESTRY-309,TAPESTRY-311,TAPESTRY-252,TAPESTRY-254,TAPESTRY-327,TAPESTRY-333" due-to="Our many international users">Add many
         translations of ValidationStrings.properties.</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-441">Poor reporting of duplicate method implementations</action>
       <action type="update" dev="HLS">Remove default-binding attribute from &lt;parameter&gt; element</action>
@@ -130,15 +131,15 @@
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-534">WebRequest interface doesn't expose getRemoteUser(), isUserInRole() or getUserPrincipal()</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-530" due-to="Raphael Jean">Namespace messages are retrieved using page's locale rather than engine's locale</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-354">Components without a .jwc file not visible</action>
-      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-533" due-to="Raphael Jean">Generated client-side javascript is wrong when error message or field display name contains single-quote characters 
+      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-533" due-to="Raphael Jean">Generated client-side javascript is wrong when error message or field display name contains single-quote characters
         or backslashes</action>
-      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-365">Set the location for a page that has no specification (just a template) to be relative to the application (or library) 
+      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-365">Set the location for a page that has no specification (just a template) to be relative to the application (or library)
         specification</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-537">Allow listener methods to return ILink, to support redirect-after-post</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-539">Abstract properties (without a &lt;property&gt; element) do not clear out their values</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-351">Add isRequired() to IFieldComponent</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-452">Tapestry 4.0 (excluding annotations) not source compatible with JDK 1.3</action>
-      <action type="fix" dev="PF" fixes-bug="TAPESTRY-350">Replaced RequirableField logic and 'required' parameter in PropertySelection, RadioGroup, Select, Upload, contrib:MultiplePropertySelection, 
+      <action type="fix" dev="PF" fixes-bug="TAPESTRY-350">Replaced RequirableField logic and 'required' parameter in PropertySelection, RadioGroup, Select, Upload, contrib:MultiplePropertySelection,
         and contrib:Palette with more general ValidatableField logic that adds a 'validators' parameter.</action>
       <action type="update" dev="PF">Checkbox component is now validatable.</action>
       <action type="update" dev="PF">Required validator additionally detects empty strings and empty collections.</action>
@@ -207,9 +208,9 @@
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-337">Incorrect link to Spring integration docs in FAQ</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-304">Non thread safe documentation example</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-261">ListEditMap can return null from getDeletedKeys()</action>
-      <action type="fix" dev="HLS">Fix injection problems; InjectScriptWorker injects a DeferredScript, not an IScript. Add super-verbose exception output when there's a failure instantiating a 
+      <action type="fix" dev="HLS">Fix injection problems; InjectScriptWorker injects a DeferredScript, not an IScript. Add super-verbose exception output when there's a failure instantiating a
         component class. </action>
-      <action type="add" dev="PF">Refactored and expanded validation functionality to include DatePicker, PropertySelection, RadioGroup, Select, TextArea, TextField, Upload, contrib:Palette, and 
+      <action type="add" dev="PF">Refactored and expanded validation functionality to include DatePicker, PropertySelection, RadioGroup, Select, TextArea, TextField, Upload, contrib:Palette, and
         contrib:MultiplePropertySelection</action>
       <action type="update" dev="HLS">Rework form event management to be primarily a client-side concern</action>
       <action type="add" dev="HLS">Add translator binding prefix</action>
@@ -286,7 +287,7 @@
       <action type="add" dev="HLS"> Add &lt;inject-state&gt; element to specifications. </action>
       <action type="add" dev="HLS"> Add property attribute to &lt;component&gt;, &lt;bean&gt; and &lt;asset&gt; and add enhancement workers to inject these objects as properties. </action>
       <action type="add" dev="HLS"> Add hivemind: binding prefix. </action>
-      <action type="update" dev="HLS"> Make the Body component output initializations in a script block at the end of the page (just before the close tag), rather than in a window.onload event 
+      <action type="update" dev="HLS"> Make the Body component output initializations in a script block at the end of the page (just before the close tag), rather than in a window.onload event
         handler. </action>
       <action type="update" dev="HLS" fixes-bug="TAPESTRY-262"> Support more boolean values. </action>
       <action type="update" dev="HLS"> Inject Messages into components; this means that all Tapestry page and component classes are abstract. </action>
@@ -308,7 +309,7 @@
       <action type="fix" dev="HLS" due-to="Xi Ping Wang" fixes-bug="TAPESTRY-249"> Provide localized validation messages for Simplified Chinese (zh_CN). </action>
       <action type="fix" dev="HLS" due-to="Niklas Ekman" fixes-bug="TAPESTRY-139"> Provide localized validation messages for Swedish. </action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-230"> Ignored interruptedException prevents Janitorthread termination. </action>
-      <action type="fix" dev="HLS" due-to="Morten Holm" fixes-bug="TAPESTRY-248"> The online Tapestry component reference for 3.0.1 for @Foreach component has an error in the example section. 
+      <action type="fix" dev="HLS" due-to="Morten Holm" fixes-bug="TAPESTRY-248"> The online Tapestry component reference for 3.0.1 for @Foreach component has an error in the example section.
         </action>
       <action type="fix" dev="HLS" due-to="Michael Frericks" fixes-bug="TAPESTRY-218"> Persistent properties can't be set to null. </action>
       <action type="fix" dev="HLS" due-to="Sadanori Ito" fixes-bug="TAPESTRY-200"> ListEdit component reference should list source and value as required. </action>
@@ -337,11 +338,11 @@
     <!-- Use due-to to give acknowledgement for patches. -->
     <release version="3.0-rc-3" date="Apr 7 2004">
       <action type="update" dev="HLS"> Add docs on how to report problems. </action>
-      <action type="fix" dev="HLS" fixes-bug="28202" due-to="Mats Forst&#246;f"> Pass the java.security.ProtectionDomain to the parent class loader when creating an enhanced class, to allow Tapestry 
+      <action type="fix" dev="HLS" fixes-bug="28202" due-to="Mats Forst&#246;f"> Pass the java.security.ProtectionDomain to the parent class loader when creating an enhanced class, to allow Tapestry
         operation inside secure environments such as Tomcat. </action>
       <action type="fix" dev="DS" fixes-bug="28177" due-to="sito@htf.highway.ne.jp"> NPE in org.apache.tapestry.form.LinkSubmit. </action>
       <action type="fix" dev="HLS" fixes-bug="27956"> Make checks for unimplemented abstract methods optional, to work around a bug in IBM JDK 1.3.1 (used with Websphere 4.x). </action>
-      <action type="fix" dev="HLS" fixes-bug="28235"> Allow more primitive types to be used with parameter direction <code>auto</code> (byte, char, short, float and long) in addition to the 
+      <action type="fix" dev="HLS" fixes-bug="28235"> Allow more primitive types to be used with parameter direction <code>auto</code> (byte, char, short, float and long) in addition to the
         previously accepted types (boolean, int, double and objects). </action>
     </release>
     <release version="3.0-rc-2" date="Apr 1 2004">
@@ -367,7 +368,7 @@
       <action type="update" dev="HLS"> Update DatePicker to use a graphic icon to hide and show the calendar. </action>
       <action type="fix" dev="HLS" fixes-bug="20932"> Check for duplication of ids between the HTML template and the specification. </action>
       <action type="fix" dev="HLS" fixes-bug="27082"> Fix some number conversion problems inside NumberValidator. </action>
-      <action type="update" dev="HLS"> Dynamically download OGNL and Javassist libraries (in accordance with ASF directives about non-ASL code). <b>Unfortunately, this means that we no longer can 
+      <action type="update" dev="HLS"> Dynamically download OGNL and Javassist libraries (in accordance with ASF directives about non-ASL code). <b>Unfortunately, this means that we no longer can
         distribute precompiled examples that include those libraries</b> </action>
     </release>
     <release version="3.0-beta-4" date="Feb 5 2004">
@@ -417,7 +418,7 @@
       <action type="fix" dev="MB" fixes-bug="25642"> properties cannot be of complex array types </action>
       <action type="fix" dev="EH" fixes-bug="25766"> fixed broken links in doc\src\common\TapestryLinks.xml </action>
       <action type="fix" dev="MB" fixes-bug="26395"> Inherited parameters do not pick up default values </action>
-      <action type="update" dev="HLS"> Changed code to no longer invoke <code>StringUtils.isEmpty() / isNonEmpty()</code> (this is because the behavior of the method is changing between 
+      <action type="update" dev="HLS"> Changed code to no longer invoke <code>StringUtils.isEmpty() / isNonEmpty()</code> (this is because the behavior of the method is changing between
         jakarta-commons 1.0 and 2.0). </action>
       <action type="update" dev="HLS"> Add an implementation of <code>toString()</code> to <code>RequestCycle</code>. </action>
       <action type="update" dev="HLS"> Update all copyrights for 2004. </action>
@@ -433,7 +434,7 @@
       <action type="update" dev="MB"> Evaluate the string 'false' as Boolean.FALSE. All other non-empty strings continue to be evaluated as Boolean.TRUE. </action>
       <action type="update" dev="MB"> Automatically download external dependencies (such as Forrest and McKoi DB). </action>
       <action type="fix" dev="HK" due-to="Anatol Pomazau"> DatePicker positioning problem fixed. </action>
-      <action type="fix" dev="HK" fixes-bug="24336"> Automatic rendering of the maxlength and size attributes have been removed. DatePicker now allows informal attributes that will be applied to the 
+      <action type="fix" dev="HK" fixes-bug="24336"> Automatic rendering of the maxlength and size attributes have been removed. DatePicker now allows informal attributes that will be applied to the
         field. </action>
       <action type="fix" dev="MB" fixes-bug="25611"> Fixed one more place where the encoding needs to be set </action>
     </release>



---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org