Commits

Anonymous committed 3b35fd4

getting ready for 1.0.4 release

git-svn-id: http://svn.opensymphony.com/svn/xwork/trunk@372e221344d-f017-0410-9bd5-d282ab1896d7

  • Participants
  • Parent commits 6a9e23e

Comments (0)

Files changed (35)

File docs/wikidocs/Basics.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Building a Validator.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Components.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Configuration.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Core Concepts.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/DefaultWorkflowInterceptor.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Dependencies.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Documentation.html

                                                     </span>
 				    </div>
 				    <div class="pagesubheading">
-					    This page last changed on Sep 07, 2004 by <font color="#0050B2">plightbo</font>.
+					    This page last changed on Nov 14, 2004 by <font color="#0050B2">plightbo</font>.
 				    </div>
 
 				    <p class="paragraph"><h3 style="margin: 4px 0px 4px 0px;" class="heading3"><a name="Documentation-Overview"> Overview</a></h3>
 <ul class="star">
 <li> Current Release<ul class="star">
 <li> Release Notes<ul class="star">
+<li> <a href="Release Notes - 1.0.4.html" title="Release Notes - 1.0.4">Release Notes - 1.0.4</a></li>
 <li> <a href="Release Notes - 1.0.3.html" title="Release Notes - 1.0.3">Release Notes - 1.0.3</a></li>
 <li> <a href="Release Notes - 1.0.2.html" title="Release Notes - 1.0.2">Release Notes - 1.0.2</a></li>
 <li> <a href="Release Notes - 1.0.1.html" title="Release Notes - 1.0.1">Release Notes - 1.0.1</a></li>
 <li> <a href="Dependencies.html" title="Dependencies">Dependencies</a></li>
 </ul></li>
 <li> Upgrading from previous versions<ul class="star">
+<li> <a href="Upgrading from 1.0.3.html" title="Upgrading from 1.0.3">Upgrading from 1.0.3</a></li>
 <li> <a href="Upgrading from 1.0.2.html" title="Upgrading from 1.0.2">Upgrading from 1.0.2</a></li>
 <li> <a href="Upgrading from 1.0.1.html" title="Upgrading from 1.0.1">Upgrading from 1.0.1</a></li>
 <li> <a href="Upgrading from 1.0.html" title="Upgrading from 1.0">Upgrading from 1.0</a></li>
 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Generic Object Validation.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Interceptors.html

 <pre><span class="java&#45;keyword">public</span>&#160;<span class="java&#45;object">String</span> invoke() <span class="java&#45;keyword">throws</span> Exception &#123;&#10;        <span class="java&#45;keyword">if</span> (executed) &#123;&#10;            <span class="java&#45;keyword">throw</span>&#160;<span class="java&#45;keyword">new</span> IllegalStateException(<span class="java&#45;quote">&quot;Action has already executed&quot;</span>);&#10;        &#125;&#10;&#10;        <span class="java&#45;keyword">if</span> (interceptors.hasNext()) &#123;&#10;            Interceptor interceptor = (Interceptor) interceptors.next();&#10;            result = interceptor.intercept(<span class="java&#45;keyword">this</span>);&#10;        &#125; <span class="java&#45;keyword">else</span> &#123;&#10;            result = action.execute();&#10;            executed = <span class="java&#45;keyword">true</span>;&#10;        &#125;&#10;&#10;        <span class="java&#45;keyword">return</span> result;&#10;    &#125;</pre>
 </div></div><p class="paragraph">It may not be immediately apparent how the rest of the Interceptors and the Action come to be called from the code snippet. For this we need to look at the Interceptor implementation in <b class="strong">AroundInterceptor</b>:</p><div class="code"><div class="codeContent">
 <pre><span class="java&#45;keyword">public</span>&#160;<span class="java&#45;object">String</span> intercept(ActionInvocation invocation) <span class="java&#45;keyword">throws</span> Exception &#123;&#10;        before(invocation);&#10;&#10;        result = invocation.invoke();&#10;        after(invocation);&#10;&#10;        <span class="java&#45;keyword">return</span> result;&#10;    &#125;</pre>
-</div></div><p class="paragraph">Here we can see that the Interceptor calls back into the ActionInvocation.invoke() to tell the ActionInvocation to continue down the chain and eventually executes the Action. It is here that the Interceptor can decide not to forward to the rest of the Interceptors and the Action, and choose instead to return a return code.</p>It is also important to know what the AroundInterceptor is doing when you extend it to implement your own Interceptors.<p class="paragraph">The AroundInterceptor defines a base class for interceptor implementations. It delegates calls to subclasses, which must implement the abstract methods before() and after(). The before() call is first called, then the rest of the ActionInvocation is called and the String result is saved (and is available to the Interceptor implementation during the after() method). Finally, the after() method is called and the result is returned.</p><img src="./icons/emoticons/information.png" height="16" width="16" align="absmiddle" alt="" border="0"/> Note that all Interceptor implementations must be threadsafe.
+</div></div><p class="paragraph">Here we can see that the Interceptor calls back into the ActionInvocation.invoke() to tell the ActionInvocation to continue down the chain and eventually executes the Action. It is here that the Interceptor can decide not to forward to the rest of the Interceptors and the Action, and choose instead to return a return code.</p>It is also important to know what the AroundInterceptor is doing when you extend it to implement your own Interceptors.<p class="paragraph">The AroundInterceptor defines a base class for interceptor implementations. It delegates calls to subclasses, which must implement the abstract methods before() and after(). The before() call is first called, then the rest of the ActionInvocation is called and the String result is saved (and is available to the Interceptor implementation during the after() method). Finally, the after() method is called and the result is returned.</p><img class="rendericon" src="./icons/emoticons/information.png" height="16" width="16" align="absmiddle" alt="" border="0"/> Note that all Interceptor implementations must be threadsafe.
 <p class="paragraph"><h2 class="heading2"><a name="Interceptors-%3Caname%3D%22InterceptorsUtility%22%3E%3C%2Fa%3EUtilityInterceptors"> <a name="Interceptors-Utility"></a> Utility Interceptors</a></h2></p>The TimerInterceptor and LoggingInterceptor are provided as simple examples and utilities. <br/>
 
 <ul class="star">
 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Introduction.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Localization.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Logging.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Null Property Access.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Ognl.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/PrepareInterceptor.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Release Notes - 1.0.1.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Release Notes - 1.0.2.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Release Notes - 1.0.3.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Release Notes - 1.0.4.html

+<html>
+    <head>
+        <title>XWork : Release Notes - 1.0.4</title>
+	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">	    
+    </head>
+
+    <body>
+	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
+		    <tr>
+			    <td valign="top" class="pagebody">
+				    <div class="pageheader">
+					    <span class="pagetitle">
+                            XWork : Release Notes - 1.0.4
+                                                    </span>
+				    </div>
+				    <div class="pagesubheading">
+					    This page last changed on Nov 14, 2004 by <font color="#0050B2">plightbo</font>.
+				    </div>
+
+				    <p class="paragraph"><h2 style="margin: 4px 0px 4px 0px;" class="heading2"><a name="ReleaseNotes-1.0.4-XWork1.0.4ReleaseNotes"> XWork 1.0.4 Release Notes</a></h2></p><h3 class="heading3"><a name="ReleaseNotes-1.0.4-KeyChanges"> Key Changes</a></h3>
+This release primarily involves a few internal tweaks and API convenience methods. It is backwards compatible with 1.0.3 and should have no impact when upgrading.
+<p class="paragraph"><h3 class="heading3"><a name="ReleaseNotes-1.0.4-Changelog"> Changelog</a></h3></p><p>
+    <table  width="100%" cellspacing="0" class="grid">
+        <tr>
+            <th colspan="3" style="text-align: left;">
+                <a href="http://jira.opensymphony.com">OpenSymphony JIRA</a>
+                <span class="smalltext">(5 issues)</span>
+            </th>
+        </tr>
+        <tr>
+                        <th style="text-align: left;">
+                T                                                                                                                                                                            </th>
+                        <th style="text-align: left;">
+                                Key                                                                                                                                                            </th>
+                        <th style="text-align: left;">
+                                                Summary                                                                                                                                            </th>
+                    </tr>
+                                            <tr class="rowNormal">
+                                                            <td nowrap="true">
+                                            <a href="http://jira.opensymphony.com/browse/XW-240"><img src="http://jira.opensymphony.com/images/icons/newfeature.gif" alt="New Feature" border="0" /></a>
+                                                                                                                                                                                                                                            </td>
+                                <td nowrap="true">
+                                                                <a href="http://jira.opensymphony.com/browse/XW-240">XW-240</a>
+                                                                                                                                                                                                                        </td>
+                                <td >
+                                                                                    <a href="http://jira.opensymphony.com/browse/XW-240">Added convenience methods to ComponentManager</a>
+                                                                                                                                                                                                    </td>
+                            </tr>
+                                    <tr class="rowAlternate">
+                                                            <td nowrap="true">
+                                            <a href="http://jira.opensymphony.com/browse/XW-220"><img src="http://jira.opensymphony.com/images/icons/bug.gif" alt="Bug" border="0" /></a>
+                                                                                                                                                                                                                                            </td>
+                                <td nowrap="true">
+                                                                <a href="http://jira.opensymphony.com/browse/XW-220">XW-220</a>
+                                                                                                                                                                                                                        </td>
+                                <td >
+                                                                                    <a href="http://jira.opensymphony.com/browse/XW-220">OgnlValueStack.findValue doesnt use custom converter when converting to String.class</a>
+                                                                                                                                                                                                    </td>
+                            </tr>
+                                    <tr class="rowNormal">
+                                                            <td nowrap="true">
+                                            <a href="http://jira.opensymphony.com/browse/XW-219"><img src="http://jira.opensymphony.com/images/icons/bug.gif" alt="Bug" border="0" /></a>
+                                                                                                                                                                                                                                            </td>
+                                <td nowrap="true">
+                                                                <a href="http://jira.opensymphony.com/browse/XW-219">XW-219</a>
+                                                                                                                                                                                                                        </td>
+                                <td >
+                                                                                    <a href="http://jira.opensymphony.com/browse/XW-219">xwork.xml should allow no namespaces</a>
+                                                                                                                                                                                                    </td>
+                            </tr>
+                                    <tr class="rowAlternate">
+                                                            <td nowrap="true">
+                                            <a href="http://jira.opensymphony.com/browse/XW-215"><img src="http://jira.opensymphony.com/images/icons/newfeature.gif" alt="New Feature" border="0" /></a>
+                                                                                                                                                                                                                                            </td>
+                                <td nowrap="true">
+                                                                <a href="http://jira.opensymphony.com/browse/XW-215">XW-215</a>
+                                                                                                                                                                                                                        </td>
+                                <td >
+                                                                                    <a href="http://jira.opensymphony.com/browse/XW-215">upload newest xwork jars to ibiblio servers</a>
+                                                                                                                                                                                                    </td>
+                            </tr>
+                                    <tr class="rowNormal">
+                                                            <td nowrap="true">
+                                            <a href="http://jira.opensymphony.com/browse/XW-174"><img src="http://jira.opensymphony.com/images/icons/bug.gif" alt="Bug" border="0" /></a>
+                                                                                                                                                                                                                                            </td>
+                                <td nowrap="true">
+                                                                <a href="http://jira.opensymphony.com/browse/XW-174">XW-174</a>
+                                                                                                                                                                                                                        </td>
+                                <td >
+                                                                                    <a href="http://jira.opensymphony.com/browse/XW-174">ObjectFactory requires same action to return same classname</a>
+                                                                                                                                                                                                    </td>
+                            </tr>
+            </table>
+</p>
+
+
+
+				    
+                    			    </td>
+		    </tr>
+	    </table>
+	    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+			<tr>
+				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
+			</tr>
+		    <tr>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
+		    </tr>
+	    </table>
+    </body>
+</html>

File docs/wikidocs/Sample Validation Rules.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Standard Validators.html

 <td> context </td><td> no </td><td> action alias </td><td> Determines the context to use for validating the Object property. If not defined, the context of the Action validation is propogated to the Object property validation.  In the case of Action validation, this context is the Action alias.  </td>
 </tr><tr>
 <td> appendPrefix </td><td> no </td><td> true </td><td> Determines whether the field name of this field validator should be prepended to the field name of the visited field to determine the full field name when an error occurs.  For example, suppose that the bean being validated has a &quot;name&quot; property.  If <em class="emphasis">appendPrefix</em> is true, then the field error will be stored under the field &quot;bean.name&quot;.  If <em class="emphasis">appendPrefix</em> is false, then the field error will be stored under the field &quot;name&quot;.  <br clear="all" />
-<img src="./icons/emoticons/warning.png" height="16" width="16" align="absmiddle" alt="" border="0"/> If you are using the VisitorFieldValidator to validate the model from a ModelDriven Action, you should set <em class="emphasis">appendPrefix</em> to false unless you are using &quot;model.name&quot; to reference the properties on your model. </td>
+<img class="rendericon" src="./icons/emoticons/warning.png" height="16" width="16" align="absmiddle" alt="" border="0"/> If you are using the VisitorFieldValidator to validate the model from a ModelDriven Action, you should set <em class="emphasis">appendPrefix</em> to false unless you are using &quot;model.name&quot; to reference the properties on your model. </td>
 </tr>
 </table><br/>
 Example:
 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Type Conversion Error Handling.html

                                                     </span>
 				    </div>
 				    <div class="pagesubheading">
-					    This page last changed on Jun 03, 2004 by <font color="#0050B2">plightbo</font>.
+					    This page last changed on Nov 11, 2004 by <font color="#0050B2">plightbo</font>.
 				    </div>
 
-				    <p class="paragraph">Type conversion errors are handled by the XWorkConverter whenever any Exception is thrown by a converter during converting a value. Type conversion errors are added to a Map stored in the ActionContext which is available via ActionContext.getContext().getConversionErrors(). This map is a map of field name to values which will allow you to access the original value which failed conversion. <br/>
+				    <p class="paragraph">Type conversion errors are handled by the XWorkConverter whenever any Exception is thrown by a converter during converting a value. Type conversion errors are added to a Map stored in the ActionContext which is available via ActionContext.getContext().getConversionErrors(). This map is a map of field name to values which will allow you to access the original value which failed conversion.</p><div class="panel"><div class="panelContent" style="background-color: #ffffce; ">
+<p class="paragraph"><img class="rendericon" src="./icons/emoticons/information.png" height="16" width="16" align="absmiddle" alt="" border="0"/> Tip: Reporting type conversion errors can be done in two ways:
+<ul class="star">
+<li> On a per-field basis with the conversion validator</li>
+<li> Globally via the conversion interceptor</li>
+</ul><br/>
+The default text for conversion errors isn&#039;t exactly pretty: <em class="emphasis">Invalid field value for field &quot;xxx&quot;</em>. You can change this by defining an i18n property named <b class="strong">invalid.fieldvalue.&#91;propertyName&#93;</b>, such as invalid.fieldvalue.foo.</p>
+</div></div><br/>
  
 There are 2 ways of automatically populating field errors with the type conversion errors into the field errors of the Action. The first will populate all of the field errors from the conversion errors and is implemented as an Interceptor. There are actually 2 Interceptors, one in XWork and one in WebWork which extends the one in XWork. They differ in the implementation of the method <br/>
  
 <div class="code"><div class="codeContent">
 <pre><span class="java&#45;keyword">protected</span>&#160;<span class="java&#45;object">boolean</span> shouldAddError(<span class="java&#45;object">String</span> propertyName, <span class="java&#45;object">Object</span> value)</pre>
-</div></div></p>The XWork version always returns true, whereas the WebWork Interceptor returns false for values of null, &quot;&quot;, and &#123;&quot;&quot;&#125;, preventing type conversion exceptions for these common empty values from propogating to the field errors of the Action. The WebWork version of this Interceptor has been added to the webwork-defaults.xml and to the defaultStack defined therein. <br/>
+</div></div>&#160;<p class="paragraph">The XWork version always returns true, whereas the WebWork Interceptor returns false for values of null, &quot;&quot;, and &#123;&quot;&quot;&#125;, preventing type conversion exceptions for these common empty values from propogating to the field errors of the Action. The WebWork version of this Interceptor has been added to the webwork-defaults.xml and to the defaultStack defined therein. <br/>
  
 If you choose not to use this Interceptor, you can choose to enable this on a per-field basis by using the Validation framework with the new field validator added for this, defined in the validators.xml file like this:<br/>
  
 <div class="code"><div class="codeContent">
 <pre>&lt;validator name=<span class="java&#45;quote">&quot;conversion&quot;</span> class=<span class="java&#45;quote">&quot;com.opensymphony.xwork.validator.validators.ConversionErrorFieldValidator&quot;</span>/&gt;</pre>
-</div></div><p class="paragraph">This validator will look up the conversion errors and, if it finds a conversion error for the field it is applied to, it will add the appropriate error message to the Action. <br/>
+</div></div></p>This validator will look up the conversion errors and, if it finds a conversion error for the field it is applied to, it will add the appropriate error message to the Action. <br/>
  
-Both of these methods use the</p><div class="code"><div class="codeContent">
+Both of these methods use the <br/>
+
+<div class="code"><div class="codeContent">
 <pre>XWorkConverter.getConversionErrorMessage(propertyName, stack)</pre>
-</div></div><p class="paragraph">which looks up the type conversion error message for the property name as was done previously, by looking for a message keyed by &quot;invalid.fieldvalue.propertyName&quot; and using a default value if it is not found.</p>
+</div></div><p class="paragraph">which looks up the type conversion error message for the property name as was done previously, by looking for a message keyed by <b class="strong">invalid.fieldvalue.&#91;propertyName&#93;</b> and using a default value if it is not found.</p>
 
 				    
                     			    </td>
 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Type Conversion In Collections.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Type Conversion.html

 
 <div class="code"><div class="codeContent">
 <pre>contact1 = com.acme.ContactConverter&#10;contact2 = com.acme.ContactConverter</pre>
-</div></div><p class="paragraph">Now, when XWork attempts to populate your object from parameters, you&#039;ll be given the actual instances of Contact from your database.</p>Having said all that, I can&#039;t really recommend doing database lookups here as a best practice.  In fact, I&#039;d say it&#039;s not such a good idea, but it does illustrate type converters well <img src="./icons/emoticons/smile.gif" height="20" width="20" align="absmiddle" alt="" border="0"/>  Any exception thrown here will be handled as described in <a href="Type Conversion Error Handling.html" title="Type Conversion Error Handling">Type Conversion Error Handling</a>.
+</div></div><p class="paragraph">Now, when XWork attempts to populate your object from parameters, you&#039;ll be given the actual instances of Contact from your database.</p>Having said all that, I can&#039;t really recommend doing database lookups here as a best practice.  In fact, I&#039;d say it&#039;s not such a good idea, but it does illustrate type converters well <img class="rendericon" src="./icons/emoticons/smile.gif" height="20" width="20" align="absmiddle" alt="" border="0"/>  Any exception thrown here will be handled as described in <a href="Type Conversion Error Handling.html" title="Type Conversion Error Handling">Type Conversion Error Handling</a>.
 
 				    
                     			    </td>
 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Upgrading from 1.0.1.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Upgrading from 1.0.2.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Upgrading from 1.0.3.html

+<html>
+    <head>
+        <title>XWork : Upgrading from 1.0.3</title>
+	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">	    
+    </head>
+
+    <body>
+	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
+		    <tr>
+			    <td valign="top" class="pagebody">
+				    <div class="pageheader">
+					    <span class="pagetitle">
+                            XWork : Upgrading from 1.0.3
+                                                    </span>
+				    </div>
+				    <div class="pagesubheading">
+					    This page last changed on Nov 14, 2004 by <font color="#0050B2">plightbo</font>.
+				    </div>
+
+				    <p class="paragraph">Upgrading to XWork 1.0.4 from 1.0.3 involves very little work. All you need to do is copy over the new xwork-1.0.4.jar in replace of xwork-1.0.3.jar and make sure that the new <a href="Dependencies.html" title="Dependencies">Dependencies</a> are all in place.</p>
+
+				    
+                    			    </td>
+		    </tr>
+	    </table>
+	    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+			<tr>
+				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
+			</tr>
+		    <tr>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
+		    </tr>
+	    </table>
+    </body>
+</html>

File docs/wikidocs/Upgrading from 1.0.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/Validation Framework.html

 </div></div><p class="paragraph">This will pull the min and max parameters from the IntRangeFieldValidator and the value of bar from the Action.</p>A more complete example of the validation rules can be found <a href="Sample Validation Rules.html" title="Sample Validation Rules">here</a>.<br/>
 
 <div class="panel"><div class="panelContent" style="background-color: #ffffce; ">
-<p class="paragraph"><img src="./icons/emoticons/information.png" height="16" width="16" align="absmiddle" alt="" border="0"/> Since validation rules are in an XML file, you must make sure you escape special characters.  For example, notice that in the expression validator rule above we use &quot;&amp;gt;&quot; instead of &quot;&gt;&quot;.  Consult a resource on XML for the full list of characters that must be escaped.  The most commonly used characters that must be escaped are:  &amp; (use &amp;amp;&#41;,  &gt; (user &amp;gt;&#41;, and &lt; (use &amp;lt;&#41;.</p>
+<p class="paragraph"><img class="rendericon" src="./icons/emoticons/information.png" height="16" width="16" align="absmiddle" alt="" border="0"/> Since validation rules are in an XML file, you must make sure you escape special characters.  For example, notice that in the expression validator rule above we use &quot;&amp;gt;&quot; instead of &quot;&gt;&quot;.  Consult a resource on XML for the full list of characters that must be escaped.  The most commonly used characters that must be escaped are:  &amp; (use &amp;amp;&#41;,  &gt; (user &amp;gt;&#41;, and &lt; (use &amp;lt;&#41;.</p>
 </div></div>
 <p class="paragraph"><h4 class="heading4"><a name="ValidationFramework-Validatorvs.FieldValidator"> Validator vs. Field-Validator</a></h4></p>The &lt;field-validator&gt; elements are basically the same as the &lt;validator&gt; elements except that they inherit the <em class="emphasis">fieldName</em> attribute from its enclosing &lt;field&gt; element.  FieldValidators will have their <em class="emphasis">fieldName</em> automatically filled with the value of the parent &lt;field&gt; element&#039;s <em class="emphasis">fieldName</em> attribute.  The reason for this structure is to clearly group the validators for a particular field under one element, and because the <em class="emphasis">fieldName</em> attribute would otherwise always have to be set for all field validators. <p class="paragraph">That said, it&#039;s perfectly legal to only use validator elements without the field elements and set the <em class="emphasis">fieldName</em> attribute for each of them.  The following are effectively equal:</p><div class="code"><div class="codeContent">
 <pre><span class="xml&#45;tag">&lt;field name=<span class="xml&#45;quote">&quot;bar&quot;</span>&gt;</span>&#10;    <span class="xml&#45;tag">&lt;field&#45;validator type=<span class="xml&#45;quote">&quot;required&quot;</span>&gt;</span>&#10;        <span class="xml&#45;tag">&lt;message&gt;</span>You must enter a value for bar.<span class="xml&#45;tag">&lt;/message&gt;</span>&#10;    <span class="xml&#45;tag">&lt;/field&#45;validator&gt;</span>&#10;<span class="xml&#45;tag">&lt;/field&gt;</span>&#10;&#10;<span class="xml&#45;tag">&lt;validator type=<span class="xml&#45;quote">&quot;required&quot;</span>&gt;</span>&#10;    <span class="xml&#45;tag">&lt;param name=<span class="xml&#45;quote">&quot;fieldName&quot;</span>&gt;</span>bar<span class="xml&#45;tag">&lt;/param&gt;</span>&#10;    <span class="xml&#45;tag">&lt;message&gt;</span>You must enter a value for bar.<span class="xml&#45;tag">&lt;/message&gt;</span>&#10;<span class="xml&#45;tag">&lt;/validator&gt;</span></pre>
 
 <div class="code"><div class="codeContent">
 <pre><span class="xml&#45;tag">&lt;&#33;DOCTYPE validators PUBLIC <span class="xml&#45;quote">&quot;&#45;//OpenSymphony Group//XWork Validator 1.0.2//EN&quot;</span> &#10;<span class="xml&#45;quote">&quot;&#104;ttp://www.opensymphony.com/xwork/xwork&#45;validator&#45;1.0.2.dtd&quot;</span>&gt;</span>&#10;<span class="xml&#45;tag">&lt;validators&gt;</span>&#10;    <span class="xml&#45;tag">&lt;field name=<span class="xml&#45;quote">&quot;email&quot;</span>&gt;</span>&#10;        <span class="xml&#45;tag">&lt;field&#45;validator type=<span class="xml&#45;quote">&quot;required&quot;</span> short&#45;circuit=<span class="xml&#45;quote">&quot;true&quot;</span>&gt;</span>&#10;            <span class="xml&#45;tag">&lt;message&gt;</span>You must enter a value for email.<span class="xml&#45;tag">&lt;/message&gt;</span>&#10;        <span class="xml&#45;tag">&lt;/field&#45;validator&gt;</span>&#10;        <span class="xml&#45;tag">&lt;field&#45;validator type=<span class="xml&#45;quote">&quot;email&quot;</span> short&#45;circuit=<span class="xml&#45;quote">&quot;true&quot;</span>&gt;</span>&#10;            <span class="xml&#45;tag">&lt;message&gt;</span>Not a valid e&#45;mail.<span class="xml&#45;tag">&lt;/message&gt;</span>&#10;        <span class="xml&#45;tag">&lt;/field&#45;validator&gt;</span>&#10;    <span class="xml&#45;tag">&lt;/field&gt;</span>&#10;    <span class="xml&#45;tag">&lt;field name=<span class="xml&#45;quote">&quot;email2&quot;</span>&gt;</span>&#10;        <span class="xml&#45;tag">&lt;field&#45;validator type=<span class="xml&#45;quote">&quot;required&quot;</span>&gt;</span>&#10;            <span class="xml&#45;tag">&lt;message&gt;</span>You must enter a value for email2.<span class="xml&#45;tag">&lt;/message&gt;</span>&#10;        <span class="xml&#45;tag">&lt;/field&#45;validator&gt;</span>&#10;        <span class="xml&#45;tag">&lt;field&#45;validator type=<span class="xml&#45;quote">&quot;email&quot;</span>&gt;</span>&#10;            <span class="xml&#45;tag">&lt;message&gt;</span>Not a valid e&#45;mail2.<span class="xml&#45;tag">&lt;/message&gt;</span>&#10;        <span class="xml&#45;tag">&lt;/field&#45;validator&gt;</span>&#10;    <span class="xml&#45;tag">&lt;/field&gt;</span>&#10;    <span class="xml&#45;tag">&lt;validator type=<span class="xml&#45;quote">&quot;expression&quot;</span>&gt;</span>&#10;        <span class="xml&#45;tag">&lt;param name=<span class="xml&#45;quote">&quot;expression&quot;</span>&gt;</span>email.equals(email2)<span class="xml&#45;tag">&lt;/param&gt;</span>&#10;        <span class="xml&#45;tag">&lt;message&gt;</span>Email not the same as email2<span class="xml&#45;tag">&lt;/message&gt;</span>&#10;    <span class="xml&#45;tag">&lt;/validator&gt;</span>&#10;    <span class="xml&#45;tag">&lt;validator type=<span class="xml&#45;quote">&quot;expression&quot;</span> short&#45;circuit=<span class="xml&#45;quote">&quot;true&quot;</span>&gt;</span>&#10;        <span class="xml&#45;tag">&lt;param name=<span class="xml&#45;quote">&quot;expression&quot;</span>&gt;</span>email.startsWith(&#039;mark&#039;)<span class="xml&#45;tag">&lt;/param&gt;</span>&#10;        <span class="xml&#45;tag">&lt;message&gt;</span>Email does not start with mark<span class="xml&#45;tag">&lt;/message&gt;</span>&#10;    <span class="xml&#45;tag">&lt;/validator&gt;</span>&#10;<span class="xml&#45;tag">&lt;/validators&gt;</span></pre>
-</div></div><p class="paragraph">Notice that some of the &lt;field-validator&gt; and &lt;validator&gt; elements have the <em class="emphasis">short-circuit</em> attribute set to true.  Since validators are evaluated in the order they are declared, a validator with this attribute set to true will prevent the evaluation of subsequent validators if the validator fails, where failure is determined by the addition of an error (action or field error depending on the type of validator) to the ValidationContext of the object being validated.</p>A field-validator that gets short-circuited will only prevent other field-validators for the same field from being evaluated.  A non field-validator that gets short-circuited will completely break out of the validation stack &#8211; no other validators will be evaluated.<p class="paragraph">As mentioned above,  the framework will also search up the inheritance tree of the action to find default validations for interfaces and parent classes of the Action.  If you are using the <em class="emphasis">short-circuit</em> attribute and relying on default validators higher up in the inheritance tree, make sure you don&#039;t accidentally short-circuit things higher in the tree that you really want!</p><img src="./icons/emoticons/warning.png" height="16" width="16" align="absmiddle" alt="" border="0"/>&#160;<b class="strong">Upgrade Alert</b>:  The <em class="emphasis">short-circuit</em> attribute was added to the DTD in version 1.0.2.  Your validation files must use version 1.0.2 of the xwork-validation.dtd to validate properly.
+</div></div><p class="paragraph">Notice that some of the &lt;field-validator&gt; and &lt;validator&gt; elements have the <em class="emphasis">short-circuit</em> attribute set to true.  Since validators are evaluated in the order they are declared, a validator with this attribute set to true will prevent the evaluation of subsequent validators if the validator fails, where failure is determined by the addition of an error (action or field error depending on the type of validator) to the ValidationContext of the object being validated.</p>A field-validator that gets short-circuited will only prevent other field-validators for the same field from being evaluated.  A non field-validator that gets short-circuited will completely break out of the validation stack &#8211; no other validators will be evaluated.<p class="paragraph">As mentioned above,  the framework will also search up the inheritance tree of the action to find default validations for interfaces and parent classes of the Action.  If you are using the <em class="emphasis">short-circuit</em> attribute and relying on default validators higher up in the inheritance tree, make sure you don&#039;t accidentally short-circuit things higher in the tree that you really want!</p><img class="rendericon" src="./icons/emoticons/warning.png" height="16" width="16" align="absmiddle" alt="" border="0"/>&#160;<b class="strong">Upgrade Alert</b>:  The <em class="emphasis">short-circuit</em> attribute was added to the DTD in version 1.0.2.  Your validation files must use version 1.0.2 of the xwork-validation.dtd to validate properly.
 
 
 				    
 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/ValidationInterceptor.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/XWork.html

 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 		    <tr>
-			    <td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+			    <td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 		    </tr>
 	    </table>
     </body>

File docs/wikidocs/docs.pdf

Binary file modified.

File docs/wikidocs/index.html

 						<p>
 							<h2><font color="#0050B2">Available Pages:</font></h2>
 							<ul>
-																																																			                                            <li>
+																	                                            <li>
                     <font color="grey">RickardXWorkThoughts</font>
                             </li>
-																																																																																														                                            <li>
+																										                                            <li>
                     <a href="XWork.html">XWork</a>
                             <img src="icons/home_16.gif" height="16" width="16" border="0" align="absmiddle"/>
                             <ul>
             </ul>
                     <ul>
                     <li>
+                    <a href="Release Notes - 1.0.4.html">Release Notes - 1.0.4</a>
+                            </li>
+            </ul>
+                    <ul>
+                    <li>
                     <a href="Type Conversion.html">Type Conversion</a>
                                     <ul>
                     <li>
             </ul>
                     <ul>
                     <li>
+                    <a href="Upgrading from 1.0.3.html">Upgrading from 1.0.3</a>
+                            </li>
+            </ul>
+                    <ul>
+                    <li>
                     <a href="Validation Framework.html">Validation Framework</a>
                                     <ul>
                     <li>
             </ul>
                     <ul>
                     <li>
+                    <font color="grey">1.0.3 Press Release</font>
+                            </li>
+            </ul>
+                    <ul>
+                    <li>
                     <font color="grey">About</font>
                             </li>
             </ul>
             </li>
             </ul>
             </li>
-																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																			</ul>
+																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																												</ul>
 						</p>
 									</td>
 			</tr>
 				<td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
 			</tr>
 			<tr>
-				<td align="center"><font color="grey">Document generated by Confluence on Sep 07, 2004 00:34</font></td>
+				<td align="center"><font color="grey">Document generated by Confluence on Nov 14, 2004 17:31</font></td>
 			</tr>
 		</table>
 	</body>

File docs/wikidocs/styles/site.css

     color: #999999;
 	margin: 0px;
 }
+.spacenametitle img {
+  margin: 0 0 -4px 0;
+}
 .spacenametitle a {
     text-decoration: none;
     color: #999999;
     border-bottom: #bbb; border-width: 0 0 1px 0; border-style: solid; font-size: 16px; text-align: left;
 }
 .permissionTab {
-    border-width: 0 0 0 1px; border-style: solid; background: #3c78b5; color: white;
+    border-width: 0 0 0 1px; border-style: solid; background: #99CCFF; color: white; font-size: 10px;
+}
+.permissionSuperTab {
+    border-width: 0 0 0 1px; border-style: solid; background: #669900; color: white;
 }
 .permissionCell {
     border-left: #bbb; border-width: 0 0 0 1px; border-style: solid;
-}
+}
+
+/* warning panel */
+.warningPanel { background: #FFFFCE; border:#F0C000 1px solid; padding: 8px; margin: 10px; }