Index: netui/test/webapps/drt/testRecorder/tests/TilesDefinitions.xml
===================================================================
--- netui/test/webapps/drt/testRecorder/tests/TilesDefinitions.xml	(revision 0)
+++ netui/test/webapps/drt/testRecorder/tests/TilesDefinitions.xml	(revision 0)
@@ -0,0 +1,1951 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+   <ses:sessionName>TilesDefinitions</ses:sessionName>
+   <ses:tester>crogers</ses:tester>
+   <ses:startDate>20 Dec 2004, 12:52:36.465 PM MST</ses:startDate>
+   <ses:description>Click action links that forward to tiles definitions from a local tiles-defs.xml file.</ses:description>
+   <ses:tests>
+      <ses:test>
+         <ses:testNumber>1</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/miniTests/tiles/Controller.jpf</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>---------------</ses:name>
+                  <ses:value>----- -------</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-ca,fr-ca-MAC;q=0.93,fr-FR-MAC;q=0.86,en-gb;q=0.79,ja-JP-VAR;q=0.71,en-us;q=0.64,fr-ca;q=0.57,fr;q=0.50,en-scouse;q=0.43,es;q=0.36,en-US-MAC;q=0.29,x-pig-latin;q=0.21,sgn-US-MA;q=0.14,i-klingon;q=0.07</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>Keep-Alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html lang="en">
+<head>
+  
+  <title>Default Layout Page - Tiles, NetUI Tags</title>
+  <base href="http://localhost:8080/coreWeb/miniTests/tiles/layout.default.jsp">
+</head>
+<body>
+
+<table width="750" cellspacing="0" cellpadding="0" border="0">
+<tr>
+  <td>
+    <!-- Begin header -->
+    <table bgcolor="#FFFF00" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+  <tr>
+    <td>
+      <H1>Header Tile</H1>
+    </td>
+  </tr>
+</table>
+
+    <!-- End header -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <!-- Begin topMenu -->
+    
+
+<table bgcolor="#CD5C5C" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td>
+    <a href="/coreWeb/miniTests/tiles/home.do">NetUI</a> |
+    <a href="/coreWeb/miniTests/tiles/struts.do">Struts</a> |
+    <a href="/coreWeb/miniTests/tiles/blank.do">Blank</a> |
+    <a href="/coreWeb/miniTests/tiles/edit.do">Edit</a> |
+    <a href="/coreWeb/miniTests/tiles/reversePanels.do">Panels</a> |
+    <a href="/coreWeb/miniTests/tiles/changeBody.do">Body</a> |
+    <a href="/coreWeb/miniTests/tiles/alternate.do">Alternate</a> 
+  </td>
+</tr>
+</table>
+
+    <!-- End topMenu -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <br>
+    <!-- Begin content -->
+    
+
+
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr valign="top">
+      <td width="35%">
+        <!-- Begin panel1 -->
+        
+<table bgcolor="#4169E1" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 1 Tile: News</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <ul>
+          <li><a href="http://www.cnn.com/">CNN</a></li>
+          <li><a href="http://www.nytimes.com/">NY Times</a></li>
+          <li><a href="http://www.yahoo.com/">Yahoo!</a></li>
+        </ul>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel1 -->
+        <br>
+        <!-- Begin panel2 -->
+        <table bgcolor="#228B22" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 2 Tile: Weather</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <p>Weather:</p>
+        <p>find extended weather forcast at...</p>
+        <a href="http://weather.yahoo.com">http://weather.yahoo.com</a>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel2 -->
+      </td>
+      <td width="2%">&nbsp;</td>
+      <td width="63%">
+        <!-- Begin body -->
+        
+
+<h1> Main Body Tile - NetUI HTML tags</h1>
+
+<span></span>
+
+<ul>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/home.do">Default layout - using NetUI HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/struts.do">Default layout - using Struts HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/blank.do">Blank body</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/edit.do">Change to edit menu</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/reversePanels.do">Reverse side panels</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/changeBody.do">Change the body layout</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/alternate.do">Alternative Layout</a>
+    </li>
+</ul>
+
+
+        <!-- End body -->
+      </td>
+    </tr>
+    </table>
+
+
+    <!-- End content -->
+    <br>
+  </td>
+</tr>
+</table>
+
+<!-- Begin footer -->
+<table bgcolor="#00FFFF" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td align="center">
+    Copyright 2004 <a href="http://www.bea.com">BEA Systems Inc.</a>
+  </td>
+</tr>
+</table>
+
+<!-- End footer -->
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>2</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/miniTests/tiles/home.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>---------------</ses:name>
+                  <ses:value>----- -------</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-ca,fr-ca-MAC;q=0.93,fr-FR-MAC;q=0.86,en-gb;q=0.79,ja-JP-VAR;q=0.71,en-us;q=0.64,fr-ca;q=0.57,fr;q=0.50,en-scouse;q=0.43,es;q=0.36,en-US-MAC;q=0.29,x-pig-latin;q=0.21,sgn-US-MA;q=0.14,i-klingon;q=0.07</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>Keep-Alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/miniTests/tiles/Controller.jpf</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html lang="en">
+<head>
+  
+  <title>Default Layout Page - Tiles, NetUI Tags</title>
+  <base href="http://localhost:8080/coreWeb/miniTests/tiles/layout.default.jsp">
+</head>
+<body>
+
+<table width="750" cellspacing="0" cellpadding="0" border="0">
+<tr>
+  <td>
+    <!-- Begin header -->
+    <table bgcolor="#FFFF00" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+  <tr>
+    <td>
+      <H1>Header Tile</H1>
+    </td>
+  </tr>
+</table>
+
+    <!-- End header -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <!-- Begin topMenu -->
+    
+
+<table bgcolor="#CD5C5C" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td>
+    <a href="/coreWeb/miniTests/tiles/home.do">NetUI</a> |
+    <a href="/coreWeb/miniTests/tiles/struts.do">Struts</a> |
+    <a href="/coreWeb/miniTests/tiles/blank.do">Blank</a> |
+    <a href="/coreWeb/miniTests/tiles/edit.do">Edit</a> |
+    <a href="/coreWeb/miniTests/tiles/reversePanels.do">Panels</a> |
+    <a href="/coreWeb/miniTests/tiles/changeBody.do">Body</a> |
+    <a href="/coreWeb/miniTests/tiles/alternate.do">Alternate</a> 
+  </td>
+</tr>
+</table>
+
+    <!-- End topMenu -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <br>
+    <!-- Begin content -->
+    
+
+
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr valign="top">
+      <td width="35%">
+        <!-- Begin panel1 -->
+        
+<table bgcolor="#4169E1" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 1 Tile: News</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <ul>
+          <li><a href="http://www.cnn.com/">CNN</a></li>
+          <li><a href="http://www.nytimes.com/">NY Times</a></li>
+          <li><a href="http://www.yahoo.com/">Yahoo!</a></li>
+        </ul>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel1 -->
+        <br>
+        <!-- Begin panel2 -->
+        <table bgcolor="#228B22" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 2 Tile: Weather</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <p>Weather:</p>
+        <p>find extended weather forcast at...</p>
+        <a href="http://weather.yahoo.com">http://weather.yahoo.com</a>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel2 -->
+      </td>
+      <td width="2%">&nbsp;</td>
+      <td width="63%">
+        <!-- Begin body -->
+        
+
+<h1> Main Body Tile - NetUI HTML tags</h1>
+
+<span>Request URI: /coreWeb/miniTests/tiles/home.do<br /></span>
+
+<ul>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/home.do">Default layout - using NetUI HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/struts.do">Default layout - using Struts HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/blank.do">Blank body</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/edit.do">Change to edit menu</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/reversePanels.do">Reverse side panels</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/changeBody.do">Change the body layout</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/alternate.do">Alternative Layout</a>
+    </li>
+</ul>
+
+
+        <!-- End body -->
+      </td>
+    </tr>
+    </table>
+
+
+    <!-- End content -->
+    <br>
+  </td>
+</tr>
+</table>
+
+<!-- Begin footer -->
+<table bgcolor="#00FFFF" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td align="center">
+    Copyright 2004 <a href="http://www.bea.com">BEA Systems Inc.</a>
+  </td>
+</tr>
+</table>
+
+<!-- End footer -->
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>3</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/miniTests/tiles/struts.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>---------------</ses:name>
+                  <ses:value>----- -------</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-ca,fr-ca-MAC;q=0.93,fr-FR-MAC;q=0.86,en-gb;q=0.79,ja-JP-VAR;q=0.71,en-us;q=0.64,fr-ca;q=0.57,fr;q=0.50,en-scouse;q=0.43,es;q=0.36,en-US-MAC;q=0.29,x-pig-latin;q=0.21,sgn-US-MA;q=0.14,i-klingon;q=0.07</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>Keep-Alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/miniTests/tiles/home.do</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html lang="en">
+<head>
+  
+  <title>Default Layout Page - Tiles, Struts Tags</title>
+  <base href="http://localhost:8080/coreWeb/miniTests/tiles/layout.default.jsp">
+</head>
+<body>
+
+<table width="750" cellspacing="0" cellpadding="0" border="0">
+<tr>
+  <td>
+    <!-- Begin header -->
+    <table bgcolor="#FFFF00" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+  <tr>
+    <td>
+      <H1>Header Tile</H1>
+    </td>
+  </tr>
+</table>
+
+    <!-- End header -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <!-- Begin topMenu -->
+    
+
+<table bgcolor="#CD5C5C" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td>
+    <a href="/coreWeb/miniTests/tiles/home.do">NetUI</a> |
+    <a href="/coreWeb/miniTests/tiles/struts.do">Struts</a> |
+    <a href="/coreWeb/miniTests/tiles/blank.do">Blank</a> |
+    <a href="/coreWeb/miniTests/tiles/edit.do">Edit</a> |
+    <a href="/coreWeb/miniTests/tiles/reversePanels.do">Panels</a> |
+    <a href="/coreWeb/miniTests/tiles/changeBody.do">Body</a> |
+    <a href="/coreWeb/miniTests/tiles/alternate.do">Alternate</a> 
+  </td>
+</tr>
+</table>
+
+    <!-- End topMenu -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <br>
+    <!-- Begin content -->
+    
+
+
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr valign="top">
+      <td width="35%">
+        <!-- Begin panel1 -->
+        
+<table bgcolor="#4169E1" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 1 Tile: News</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <ul>
+          <li><a href="http://www.cnn.com/">CNN</a></li>
+          <li><a href="http://www.nytimes.com/">NY Times</a></li>
+          <li><a href="http://www.yahoo.com/">Yahoo!</a></li>
+        </ul>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel1 -->
+        <br>
+        <!-- Begin panel2 -->
+        <table bgcolor="#228B22" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 2 Tile: Weather</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <p>Weather:</p>
+        <p>find extended weather forcast at...</p>
+        <a href="http://weather.yahoo.com">http://weather.yahoo.com</a>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel2 -->
+      </td>
+      <td width="2%">&nbsp;</td>
+      <td width="63%">
+        <!-- Begin body -->
+        
+
+<h1> Main Body Tile - Struts HTML tags</h1>
+
+<ul>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/home.do">Default layout - using NetUI HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/struts.do">Default layout - using Struts HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/blank.do">Blank body</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/edit.do">Change to edit menu</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/reversePanels.do">Reverse side panels</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/changeBody.do">Change the body layout</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/alternate.do">Alternative Layout</a>
+    </li>
+</ul>
+
+
+        <!-- End body -->
+      </td>
+    </tr>
+    </table>
+
+
+    <!-- End content -->
+    <br>
+  </td>
+</tr>
+</table>
+
+<!-- Begin footer -->
+<table bgcolor="#00FFFF" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td align="center">
+    Copyright 2004 <a href="http://www.bea.com">BEA Systems Inc.</a>
+  </td>
+</tr>
+</table>
+
+<!-- End footer -->
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>4</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/miniTests/tiles/blank.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>---------------</ses:name>
+                  <ses:value>----- -------</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-ca,fr-ca-MAC;q=0.93,fr-FR-MAC;q=0.86,en-gb;q=0.79,ja-JP-VAR;q=0.71,en-us;q=0.64,fr-ca;q=0.57,fr;q=0.50,en-scouse;q=0.43,es;q=0.36,en-US-MAC;q=0.29,x-pig-latin;q=0.21,sgn-US-MA;q=0.14,i-klingon;q=0.07</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>Keep-Alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/miniTests/tiles/struts.do</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html lang="en">
+<head>
+  
+  <title>Blank Body Page - Tiles</title>
+  <base href="http://localhost:8080/coreWeb/miniTests/tiles/layout.default.jsp">
+</head>
+<body>
+
+<table width="750" cellspacing="0" cellpadding="0" border="0">
+<tr>
+  <td>
+    <!-- Begin header -->
+    <table bgcolor="#FFFF00" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+  <tr>
+    <td>
+      <H1>Header Tile</H1>
+    </td>
+  </tr>
+</table>
+
+    <!-- End header -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <!-- Begin topMenu -->
+    
+
+<table bgcolor="#CD5C5C" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td>
+    <a href="/coreWeb/miniTests/tiles/home.do">NetUI</a> |
+    <a href="/coreWeb/miniTests/tiles/struts.do">Struts</a> |
+    <a href="/coreWeb/miniTests/tiles/blank.do">Blank</a> |
+    <a href="/coreWeb/miniTests/tiles/edit.do">Edit</a> |
+    <a href="/coreWeb/miniTests/tiles/reversePanels.do">Panels</a> |
+    <a href="/coreWeb/miniTests/tiles/changeBody.do">Body</a> |
+    <a href="/coreWeb/miniTests/tiles/alternate.do">Alternate</a> 
+  </td>
+</tr>
+</table>
+
+    <!-- End topMenu -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <br>
+    <!-- Begin content -->
+    
+
+<h1> Blank Body Tile </h1>
+
+
+    <!-- End content -->
+    <br>
+  </td>
+</tr>
+</table>
+
+<!-- Begin footer -->
+<table bgcolor="#00FFFF" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td align="center">
+    Copyright 2004 <a href="http://www.bea.com">BEA Systems Inc.</a>
+  </td>
+</tr>
+</table>
+
+<!-- End footer -->
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>5</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/miniTests/tiles/edit.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>---------------</ses:name>
+                  <ses:value>----- -------</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-ca,fr-ca-MAC;q=0.93,fr-FR-MAC;q=0.86,en-gb;q=0.79,ja-JP-VAR;q=0.71,en-us;q=0.64,fr-ca;q=0.57,fr;q=0.50,en-scouse;q=0.43,es;q=0.36,en-US-MAC;q=0.29,x-pig-latin;q=0.21,sgn-US-MA;q=0.14,i-klingon;q=0.07</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>Keep-Alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/miniTests/tiles/blank.do</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html lang="en">
+<head>
+  
+  <title>Edit Menu Page - Tiles</title>
+  <base href="http://localhost:8080/coreWeb/miniTests/tiles/layout.default.jsp">
+</head>
+<body>
+
+<table width="750" cellspacing="0" cellpadding="0" border="0">
+<tr>
+  <td>
+    <!-- Begin header -->
+    <table bgcolor="#FFFF00" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+  <tr>
+    <td>
+      <H1>Header Tile</H1>
+    </td>
+  </tr>
+</table>
+
+    <!-- End header -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <!-- Begin topMenu -->
+    <table bgcolor="#CD5C5C" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td>
+    |
+    <b>Undo</b> |
+    <u>Redo</u> |
+    <u>Cut</u> |
+    <u>Copy</u> |
+    <u>Paste</u> |
+  </td>
+</tr>
+</table>
+
+    <!-- End topMenu -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <br>
+    <!-- Begin content -->
+    
+
+
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr valign="top">
+      <td width="35%">
+        <!-- Begin panel1 -->
+        
+<table bgcolor="#4169E1" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 1 Tile: News</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <ul>
+          <li><a href="http://www.cnn.com/">CNN</a></li>
+          <li><a href="http://www.nytimes.com/">NY Times</a></li>
+          <li><a href="http://www.yahoo.com/">Yahoo!</a></li>
+        </ul>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel1 -->
+        <br>
+        <!-- Begin panel2 -->
+        <table bgcolor="#228B22" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 2 Tile: Weather</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <p>Weather:</p>
+        <p>find extended weather forcast at...</p>
+        <a href="http://weather.yahoo.com">http://weather.yahoo.com</a>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel2 -->
+      </td>
+      <td width="2%">&nbsp;</td>
+      <td width="63%">
+        <!-- Begin body -->
+        
+
+<h1> Main Body Tile - NetUI HTML tags</h1>
+
+<span>Request URI: /coreWeb/miniTests/tiles/edit.do<br /></span>
+
+<ul>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/home.do">Default layout - using NetUI HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/struts.do">Default layout - using Struts HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/blank.do">Blank body</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/edit.do">Change to edit menu</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/reversePanels.do">Reverse side panels</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/changeBody.do">Change the body layout</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/alternate.do">Alternative Layout</a>
+    </li>
+</ul>
+
+
+        <!-- End body -->
+      </td>
+    </tr>
+    </table>
+
+
+    <!-- End content -->
+    <br>
+  </td>
+</tr>
+</table>
+
+<!-- Begin footer -->
+<table bgcolor="#00FFFF" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td align="center">
+    Copyright 2004 <a href="http://www.bea.com">BEA Systems Inc.</a>
+  </td>
+</tr>
+</table>
+
+<!-- End footer -->
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>6</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/miniTests/tiles/reversePanels.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>---------------</ses:name>
+                  <ses:value>----- -------</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-ca,fr-ca-MAC;q=0.93,fr-FR-MAC;q=0.86,en-gb;q=0.79,ja-JP-VAR;q=0.71,en-us;q=0.64,fr-ca;q=0.57,fr;q=0.50,en-scouse;q=0.43,es;q=0.36,en-US-MAC;q=0.29,x-pig-latin;q=0.21,sgn-US-MA;q=0.14,i-klingon;q=0.07</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>Keep-Alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/miniTests/tiles/edit.do</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html lang="en">
+<head>
+  
+  <title>Reversed Panels Page - Tiles</title>
+  <base href="http://localhost:8080/coreWeb/miniTests/tiles/layout.default.jsp">
+</head>
+<body>
+
+<table width="750" cellspacing="0" cellpadding="0" border="0">
+<tr>
+  <td>
+    <!-- Begin header -->
+    <table bgcolor="#FFFF00" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+  <tr>
+    <td>
+      <H1>Header Tile</H1>
+    </td>
+  </tr>
+</table>
+
+    <!-- End header -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <!-- Begin topMenu -->
+    
+
+<table bgcolor="#CD5C5C" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td>
+    <a href="/coreWeb/miniTests/tiles/home.do">NetUI</a> |
+    <a href="/coreWeb/miniTests/tiles/struts.do">Struts</a> |
+    <a href="/coreWeb/miniTests/tiles/blank.do">Blank</a> |
+    <a href="/coreWeb/miniTests/tiles/edit.do">Edit</a> |
+    <a href="/coreWeb/miniTests/tiles/reversePanels.do">Panels</a> |
+    <a href="/coreWeb/miniTests/tiles/changeBody.do">Body</a> |
+    <a href="/coreWeb/miniTests/tiles/alternate.do">Alternate</a> 
+  </td>
+</tr>
+</table>
+
+    <!-- End topMenu -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <br>
+    <!-- Begin content -->
+    
+
+
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr valign="top">
+      <td width="35%">
+        <!-- Begin panel1 -->
+        <table bgcolor="#228B22" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 2 Tile: Weather</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <p>Weather:</p>
+        <p>find extended weather forcast at...</p>
+        <a href="http://weather.yahoo.com">http://weather.yahoo.com</a>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel1 -->
+        <br>
+        <!-- Begin panel2 -->
+        
+<table bgcolor="#4169E1" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 1 Tile: News</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <ul>
+          <li><a href="http://www.cnn.com/">CNN</a></li>
+          <li><a href="http://www.nytimes.com/">NY Times</a></li>
+          <li><a href="http://www.yahoo.com/">Yahoo!</a></li>
+        </ul>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel2 -->
+      </td>
+      <td width="2%">&nbsp;</td>
+      <td width="63%">
+        <!-- Begin body -->
+        
+
+<h1> Main Body Tile - NetUI HTML tags</h1>
+
+<span>Request URI: /coreWeb/miniTests/tiles/reversePanels.do<br /></span>
+
+<ul>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/home.do">Default layout - using NetUI HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/struts.do">Default layout - using Struts HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/blank.do">Blank body</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/edit.do">Change to edit menu</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/reversePanels.do">Reverse side panels</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/changeBody.do">Change the body layout</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/alternate.do">Alternative Layout</a>
+    </li>
+</ul>
+
+
+        <!-- End body -->
+      </td>
+    </tr>
+    </table>
+
+
+    <!-- End content -->
+    <br>
+  </td>
+</tr>
+</table>
+
+<!-- Begin footer -->
+<table bgcolor="#00FFFF" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td align="center">
+    Copyright 2004 <a href="http://www.bea.com">BEA Systems Inc.</a>
+  </td>
+</tr>
+</table>
+
+<!-- End footer -->
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>7</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/miniTests/tiles/changeBody.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>---------------</ses:name>
+                  <ses:value>----- -------</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-ca,fr-ca-MAC;q=0.93,fr-FR-MAC;q=0.86,en-gb;q=0.79,ja-JP-VAR;q=0.71,en-us;q=0.64,fr-ca;q=0.57,fr;q=0.50,en-scouse;q=0.43,es;q=0.36,en-US-MAC;q=0.29,x-pig-latin;q=0.21,sgn-US-MA;q=0.14,i-klingon;q=0.07</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>Keep-Alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/miniTests/tiles/reversePanels.do</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html lang="en">
+<head>
+  
+  <title>Reversed Panels Page - Tiles</title>
+  <base href="http://localhost:8080/coreWeb/miniTests/tiles/layout.default.jsp">
+</head>
+<body>
+
+<table width="750" cellspacing="0" cellpadding="0" border="0">
+<tr>
+  <td>
+    <!-- Begin header -->
+    <table bgcolor="#FFFF00" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+  <tr>
+    <td>
+      <H1>Header Tile</H1>
+    </td>
+  </tr>
+</table>
+
+    <!-- End header -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <!-- Begin topMenu -->
+    
+
+<table bgcolor="#CD5C5C" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td>
+    <a href="/coreWeb/miniTests/tiles/home.do">NetUI</a> |
+    <a href="/coreWeb/miniTests/tiles/struts.do">Struts</a> |
+    <a href="/coreWeb/miniTests/tiles/blank.do">Blank</a> |
+    <a href="/coreWeb/miniTests/tiles/edit.do">Edit</a> |
+    <a href="/coreWeb/miniTests/tiles/reversePanels.do">Panels</a> |
+    <a href="/coreWeb/miniTests/tiles/changeBody.do">Body</a> |
+    <a href="/coreWeb/miniTests/tiles/alternate.do">Alternate</a> 
+  </td>
+</tr>
+</table>
+
+    <!-- End topMenu -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <br>
+    <!-- Begin content -->
+    
+
+
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr valign="top">
+      <td width="63%">
+        <!-- Begin body -->
+        
+
+<h1> Main Body Tile - NetUI HTML tags</h1>
+
+<span>Request URI: /coreWeb/miniTests/tiles/changeBody.do<br /></span>
+
+<ul>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/home.do">Default layout - using NetUI HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/struts.do">Default layout - using Struts HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/blank.do">Blank body</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/edit.do">Change to edit menu</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/reversePanels.do">Reverse side panels</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/changeBody.do">Change the body layout</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/alternate.do">Alternative Layout</a>
+    </li>
+</ul>
+
+
+        <!-- End body -->
+      </td>
+      <td width="2%">&nbsp;</td>
+      <td width="35%">
+        <!-- Begin panel1 -->
+        
+<table bgcolor="#4169E1" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 1 Tile: News</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <ul>
+          <li><a href="http://www.cnn.com/">CNN</a></li>
+          <li><a href="http://www.nytimes.com/">NY Times</a></li>
+          <li><a href="http://www.yahoo.com/">Yahoo!</a></li>
+        </ul>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel1 -->
+        <br>
+        <!-- Begin panel2 -->
+        <table bgcolor="#228B22" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 2 Tile: Weather</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <p>Weather:</p>
+        <p>find extended weather forcast at...</p>
+        <a href="http://weather.yahoo.com">http://weather.yahoo.com</a>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel2 -->
+      </td>
+    </tr>
+    </table>
+
+
+    <!-- End content -->
+    <br>
+  </td>
+</tr>
+</table>
+
+<!-- Begin footer -->
+<table bgcolor="#00FFFF" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td align="center">
+    Copyright 2004 <a href="http://www.bea.com">BEA Systems Inc.</a>
+  </td>
+</tr>
+</table>
+
+<!-- End footer -->
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>8</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/miniTests/tiles/alternate.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>---------------</ses:name>
+                  <ses:value>----- -------</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-ca,fr-ca-MAC;q=0.93,fr-FR-MAC;q=0.86,en-gb;q=0.79,ja-JP-VAR;q=0.71,en-us;q=0.64,fr-ca;q=0.57,fr;q=0.50,en-scouse;q=0.43,es;q=0.36,en-US-MAC;q=0.29,x-pig-latin;q=0.21,sgn-US-MA;q=0.14,i-klingon;q=0.07</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>Keep-Alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/miniTests/tiles/changeBody.do</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html lang="en">
+<head>
+  
+  <title>Alternate Layout Page - Tiles</title>
+  <base href="http://localhost:8080/coreWeb/miniTests/tiles/layout.alternate.jsp">
+</head>
+<body>
+
+<table width="750" cellspacing="0" cellpadding="0" border="0">
+<tr>
+  <td colspan="2">
+    <!-- Begin header -->
+    <table bgcolor="#FFFF00" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+  <tr>
+    <td>
+      <H1>Header Tile</H1>
+    </td>
+  </tr>
+</table>
+
+    <!-- End header -->
+  </td>
+</tr>
+<tr>
+  <td bgcolor="#CD5C5C" align="top">
+    <!-- Begin sideMenu -->
+    
+
+<table cellspacing="0" cellpadding="5" border="0" width="100%">
+<tr>
+</tr>
+  <td>
+    <ul>
+      <li>
+        <a href="/coreWeb/miniTests/tiles/home.do">Default layout - NetUI tags</a>
+      </li>
+      <li>
+        <a href="/coreWeb/miniTests/tiles/struts.do">Default layout - Struts tags</a>
+      </li>
+      <li>
+        <a href="/coreWeb/miniTests/tiles/blank.do">Blank body</a>
+      </li>
+      <li>
+        <a href="/coreWeb/miniTests/tiles/edit.do">Change to edit menu</a>
+      </li>
+      <li>
+        <a href="/coreWeb/miniTests/tiles/reversePanels.do">Reverse side panels</a>
+      </li>
+      <li>
+        <a href="/coreWeb/miniTests/tiles/changeBody.do">Change the body layout</a>
+      </li>
+      <li>
+        <a href="/coreWeb/miniTests/tiles/alternate.do">Alternative Layout</a>
+      </li>
+    </ul>
+  </td>
+</tr>
+</table>
+
+    <!-- End sideMenu -->
+  </td>
+  <td>
+    <br>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr valign="top">
+      <td>
+        <!-- Begin panel1 -->
+        
+<table bgcolor="#4169E1" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 1 Tile: News</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <ul>
+          <li><a href="http://www.cnn.com/">CNN</a></li>
+          <li><a href="http://www.nytimes.com/">NY Times</a></li>
+          <li><a href="http://www.yahoo.com/">Yahoo!</a></li>
+        </ul>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel1 -->
+      </td>
+      <td>
+        <!-- Begin panel2 -->
+        <table bgcolor="#228B22" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 2 Tile: Weather</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <p>Weather:</p>
+        <p>find extended weather forcast at...</p>
+        <a href="http://weather.yahoo.com">http://weather.yahoo.com</a>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel2 -->
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2">
+        <!-- Begin body -->
+        
+
+<h1> Main Body Tile - NetUI HTML tags</h1>
+
+<span>Request URI: /coreWeb/miniTests/tiles/alternate.do<br /></span>
+
+<ul>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/home.do">Default layout - using NetUI HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/struts.do">Default layout - using Struts HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/blank.do">Blank body</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/edit.do">Change to edit menu</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/reversePanels.do">Reverse side panels</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/changeBody.do">Change the body layout</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/alternate.do">Alternative Layout</a>
+    </li>
+</ul>
+
+
+        <!-- End body -->
+      </td>
+    </tr>
+    </table>
+    <br>
+  </td>
+</tr>
+</table>
+
+<!-- Begin footer -->
+<table bgcolor="#00FFFF" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td align="center">
+    Copyright 2004 <a href="http://www.bea.com">BEA Systems Inc.</a>
+  </td>
+</tr>
+</table>
+
+<!-- End footer -->
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>9</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/miniTests/tiles/home.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>---------------</ses:name>
+                  <ses:value>----- -------</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-ca,fr-ca-MAC;q=0.93,fr-FR-MAC;q=0.86,en-gb;q=0.79,ja-JP-VAR;q=0.71,en-us;q=0.64,fr-ca;q=0.57,fr;q=0.50,en-scouse;q=0.43,es;q=0.36,en-US-MAC;q=0.29,x-pig-latin;q=0.21,sgn-US-MA;q=0.14,i-klingon;q=0.07</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>Keep-Alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=4014B30CBFACF2D4723B7D2B203786AB</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/miniTests/tiles/alternate.do</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html lang="en">
+<head>
+  
+  <title>Default Layout Page - Tiles, NetUI Tags</title>
+  <base href="http://localhost:8080/coreWeb/miniTests/tiles/layout.default.jsp">
+</head>
+<body>
+
+<table width="750" cellspacing="0" cellpadding="0" border="0">
+<tr>
+  <td>
+    <!-- Begin header -->
+    <table bgcolor="#FFFF00" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+  <tr>
+    <td>
+      <H1>Header Tile</H1>
+    </td>
+  </tr>
+</table>
+
+    <!-- End header -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <!-- Begin topMenu -->
+    
+
+<table bgcolor="#CD5C5C" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td>
+    <a href="/coreWeb/miniTests/tiles/home.do">NetUI</a> |
+    <a href="/coreWeb/miniTests/tiles/struts.do">Struts</a> |
+    <a href="/coreWeb/miniTests/tiles/blank.do">Blank</a> |
+    <a href="/coreWeb/miniTests/tiles/edit.do">Edit</a> |
+    <a href="/coreWeb/miniTests/tiles/reversePanels.do">Panels</a> |
+    <a href="/coreWeb/miniTests/tiles/changeBody.do">Body</a> |
+    <a href="/coreWeb/miniTests/tiles/alternate.do">Alternate</a> 
+  </td>
+</tr>
+</table>
+
+    <!-- End topMenu -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <br>
+    <!-- Begin content -->
+    
+
+
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr valign="top">
+      <td width="35%">
+        <!-- Begin panel1 -->
+        
+<table bgcolor="#4169E1" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 1 Tile: News</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <ul>
+          <li><a href="http://www.cnn.com/">CNN</a></li>
+          <li><a href="http://www.nytimes.com/">NY Times</a></li>
+          <li><a href="http://www.yahoo.com/">Yahoo!</a></li>
+        </ul>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel1 -->
+        <br>
+        <!-- Begin panel2 -->
+        <table bgcolor="#228B22" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 2 Tile: Weather</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <p>Weather:</p>
+        <p>find extended weather forcast at...</p>
+        <a href="http://weather.yahoo.com">http://weather.yahoo.com</a>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>
+
+        <!-- End panel2 -->
+      </td>
+      <td width="2%">&nbsp;</td>
+      <td width="63%">
+        <!-- Begin body -->
+        
+
+<h1> Main Body Tile - NetUI HTML tags</h1>
+
+<span>Request URI: /coreWeb/miniTests/tiles/home.do<br /></span>
+
+<ul>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/home.do">Default layout - using NetUI HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/struts.do">Default layout - using Struts HTML tags</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/blank.do">Blank body</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/edit.do">Change to edit menu</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/reversePanels.do">Reverse side panels</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/changeBody.do">Change the body layout</a>
+    </li>
+    <li>
+        <a href="/coreWeb/miniTests/tiles/alternate.do">Alternative Layout</a>
+    </li>
+</ul>
+
+
+        <!-- End body -->
+      </td>
+    </tr>
+    </table>
+
+
+    <!-- End content -->
+    <br>
+  </td>
+</tr>
+</table>
+
+<!-- Begin footer -->
+<table bgcolor="#00FFFF" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td align="center">
+    Copyright 2004 <a href="http://www.bea.com">BEA Systems Inc.</a>
+  </td>
+</tr>
+</table>
+
+<!-- End footer -->
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+   </ses:tests>
+   <ses:endDate>20 Dec 2004, 12:53:29.971 PM MST</ses:endDate>
+   <ses:testCount>9</ses:testCount>
+</ses:recorderSession>
\ No newline at end of file

Property changes on: netui/test/webapps/drt/testRecorder/tests/TilesDefinitions.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
===================================================================
--- netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml	(revision 122792)
+++ netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml	(working copy)
@@ -4996,6 +4996,19 @@
          </features>
       </test>
       <test>
+         <name>TilesDefinitions</name>
+         <description>Click action links that forward to tiles definitions from a local tiles-defs.xml file.</description>
+         <webapp>coreWeb</webapp>
+         <categories>
+            <category>bvt</category>
+            <category>corePageFlow</category>
+         </categories>
+         <features>
+            <feature>Tiles</feature>
+            <feature>Forward</feature>
+         </features>
+      </test>
+      <test>
          <name>TreeAttribute1</name>
          <description>Verification test of the TreeAttribute tag - apply to nodes</description>
          <webapp>coreWeb</webapp>
Index: netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/ExternalRedirectController.jpf
===================================================================
--- netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/ExternalRedirectController.jpf	(revision 122792)
+++ netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/ExternalRedirectController.jpf	(working copy)
@@ -39,8 +39,6 @@
         return new Forward("index");
     }
 
-
-
         
     @Jpf.Action(
         forwards = { 
@@ -81,31 +79,3 @@
     }
 }
 
-@Jpf.ViewProperties(value = { 
-    "<!-- This data is auto-generated. Hand-editing this section is not recommended. -->", 
-    "<view-properties>", 
-    "<pageflow-object id='action:begin.do'><property value='80' name='x'/><property value='40' name='y'/></pageflow-object>", 
-    "<pageflow-object id='action:relativeRedirect.do'><property value='360' name='x'/><property value='100' name='y'/></pageflow-object>", 
-    "<pageflow-object id='action:fullyQualifiedRedirect.do'><property value='360' name='x'/><property value='180' name='y'/></pageflow-object>", 
-    "<pageflow-object id='action:externalRedirect.do'><property value='360' name='x'/><property value='320' name='y'/></pageflow-object>", 
-    "<pageflow-object id='page:index.jsp'><property value='80' name='x'/><property value='200' name='y'/></pageflow-object>", 
-    "<pageflow-object id='forward:path#index#index.jsp#@action:begin.do@'><property value='80,80,80,80' name='elbowsX'/><property value='84,120,120,156' name='elbowsY'/><property value='South_1' name='fromPort'/><property value='North_1' name='toPort'/><property value='index' name='label'/></pageflow-object>", 
-    "<pageflow-object id='page:relativeRedirect.jsp'><property value='540' name='x'/><property value='100' name='y'/></pageflow-object>", 
-    "<pageflow-object id='forward:path#success#relativeRedirect.jsp#@action:relativeRedirect.do@'><property value='396,450,450,504' name='elbowsX'/><property value='92,92,92,92' name='elbowsY'/><property value='East_1' name='fromPort'/><property value='West_1' name='toPort'/><property value='success' name='label'/></pageflow-object>", 
-    "<pageflow-object id='page:/tests/externalRedirect/fullyQualifiedRedirect.jsp'><property value='540' name='x'/><property value='240' name='y'/></pageflow-object>", 
-    "<pageflow-object id='forward:path#success#/tests/externalRedirect/fullyQualifiedRedirect.jsp#@action:fullyQualifiedRedirect.do@'><property value='396,450,450,504' name='elbowsX'/><property value='172,172,221,221' name='elbowsY'/><property value='East_1' name='fromPort'/><property value='West_0' name='toPort'/><property value='success' name='label'/></pageflow-object>", 
-    "<pageflow-object id='page:/extRedirectWeb/tests/externalRedirect/externalRedirect.jsp'><property value='360' name='x'/><property value='440' name='y'/></pageflow-object>", 
-    "<pageflow-object id='forward:path#success#/extRedirectWeb/tests/externalRedirect/externalRedirect.jsp#@action:externalRedirect.do@'><property value='360,360,360,360' name='elbowsX'/><property value='364,380,380,396' name='elbowsY'/><property value='South_1' name='fromPort'/><property value='North_1' name='toPort'/><property value='success' name='label'/></pageflow-object>", 
-    "<pageflow-object id='page:externalRedirect.jsp'><property value='540' name='x'/><property value='300' name='y'/></pageflow-object>", 
-    "<pageflow-object id='page:fullyQualifiedRedirect.jsp'><property value='540' name='x'/><property value='180' name='y'/></pageflow-object>", 
-    "<pageflow-object id='action-call:@page:/tests/externalRedirect/fullyQualifiedRedirect.jsp@#@action:begin.do@'><property value='504,310,310,116' name='elbowsX'/><property value='232,232,21,21' name='elbowsY'/><property value='West_1' name='fromPort'/><property value='East_0' name='toPort'/></pageflow-object>", 
-    "<pageflow-object id='action-call:@page:fullyQualifiedRedirect.jsp@#@action:begin.do@'><property value='504,310,310,116' name='elbowsX'/><property value='161,161,43,43' name='elbowsY'/><property value='West_0' name='fromPort'/><property value='East_2' name='toPort'/></pageflow-object>", 
-    "<pageflow-object id='action-call:@page:externalRedirect.jsp@#@action:begin.do@'><property value='504,310,310,116' name='elbowsX'/><property value='281,281,43,43' name='elbowsY'/><property value='West_0' name='fromPort'/><property value='East_2' name='toPort'/></pageflow-object>", 
-    "<pageflow-object id='action-call:@page:index.jsp@#@action:externalRedirect.do@'><property value='116,220,220,324' name='elbowsX'/><property value='203,203,312,312' name='elbowsY'/><property value='East_2' name='fromPort'/><property value='West_1' name='toPort'/></pageflow-object>", 
-    "<pageflow-object id='action-call:@page:index.jsp@#@action:relativeRedirect.do@'><property value='116,220,220,324' name='elbowsX'/><property value='192,192,92,92' name='elbowsY'/><property value='East_1' name='fromPort'/><property value='West_1' name='toPort'/></pageflow-object>", 
-    "<pageflow-object id='action-call:@page:relativeRedirect.jsp@#@action:begin.do@'><property value='504,310,310,116' name='elbowsX'/><property value='81,81,21,21' name='elbowsY'/><property value='West_0' name='fromPort'/><property value='East_0' name='toPort'/></pageflow-object>", 
-    "<pageflow-object id='action-call:@page:index.jsp@#@action:fullyQualifiedRedirect.do@'><property value='116,220,220,324' name='elbowsX'/><property value='203,203,172,172' name='elbowsY'/><property value='East_2' name='fromPort'/><property value='West_1' name='toPort'/></pageflow-object>", 
-    "</view-properties>"
-})
-interface VIEW_PROPERTIES { }
-
Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.alternate.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.alternate.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.alternate.jsp	(revision 0)
@@ -0,0 +1,60 @@
+<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
+<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
+<html:html locale="true">
+<head>
+  <%-- We rely on tiles-defs.xml to set the title --%>
+  <title><tiles:getAsString name="titleString"/></title>
+  <html:base/>
+</head>
+<body>
+
+<table width="750" cellspacing="0" cellpadding="0" border="0">
+<tr>
+  <td colspan="2">
+    <!-- Begin header -->
+    <tiles:insert attribute="header"/>
+    <!-- End header -->
+  </td>
+</tr>
+<tr>
+  <td bgcolor="#CD5C5C" align="top">
+    <!-- Begin sideMenu -->
+    <tiles:insert attribute="menu"/>
+    <!-- End sideMenu -->
+  </td>
+  <td>
+    <br>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr valign="top">
+      <td>
+        <!-- Begin panel1 -->
+        <tiles:insert attribute="panel1"/>
+        <!-- End panel1 -->
+      </td>
+      <td>
+        <!-- Begin panel2 -->
+        <tiles:insert attribute="panel2"/>
+        <!-- End panel2 -->
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2">
+        <!-- Begin body -->
+        <tiles:insert attribute="body"/>
+        <!-- End body -->
+      </td>
+    </tr>
+    </table>
+    <br>
+  </td>
+</tr>
+</table>
+
+<!-- Begin footer -->
+<tiles:insert attribute="footer"/>
+<!-- End footer -->
+
+</body>
+</html:html>
+
+

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.alternate.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.mainMenu.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/components.mainMenu.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/components.mainMenu.jsp	(revision 0)
@@ -0,0 +1,30 @@
+<%@ taglib uri="beehive-netui-tags-html.tld" prefix="netui"%>
+
+<table bgcolor="#CD5C5C" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td>
+    <netui:anchor action="home">
+    NetUI
+    </netui:anchor> |
+    <netui:anchor action="struts">
+    Struts
+    </netui:anchor> |
+    <netui:anchor action="blank">
+    Blank
+    </netui:anchor> |
+    <netui:anchor action="edit">
+    Edit
+    </netui:anchor> |
+    <netui:anchor action="reversePanels">
+    Panels
+    </netui:anchor> |
+    <netui:anchor action="changeBody">
+    Body
+    </netui:anchor> |
+    <netui:anchor action="alternate">
+    Alternate
+    </netui:anchor> 
+  </td>
+</tr>
+</table>

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.mainMenu.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.sideMenu.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/components.sideMenu.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/components.sideMenu.jsp	(revision 0)
@@ -0,0 +1,46 @@
+<%@ taglib uri="beehive-netui-tags-html.tld" prefix="netui"%>
+
+<table cellspacing="0" cellpadding="5" border="0" width="100%">
+<tr>
+</tr>
+  <td>
+    <ul>
+      <li>
+        <netui:anchor action="home">
+        Default layout - NetUI tags
+        </netui:anchor>
+      </li>
+      <li>
+        <netui:anchor action="struts">
+        Default layout - Struts tags
+        </netui:anchor>
+      </li>
+      <li>
+        <netui:anchor action="blank">
+        Blank body
+        </netui:anchor>
+      </li>
+      <li>
+        <netui:anchor action="edit">
+        Change to edit menu
+        </netui:anchor>
+      </li>
+      <li>
+        <netui:anchor action="reversePanels">
+        Reverse side panels
+        </netui:anchor>
+      </li>
+      <li>
+        <netui:anchor action="changeBody">
+        Change the body layout
+        </netui:anchor>
+      </li>
+      <li>
+        <netui:anchor action="alternate">
+        Alternative Layout
+        </netui:anchor>
+      </li>
+    </ul>
+  </td>
+</tr>
+</table>

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.sideMenu.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.editMenu.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/components.editMenu.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/components.editMenu.jsp	(revision 0)
@@ -0,0 +1,13 @@
+<table bgcolor="#CD5C5C" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td>
+    |
+    <b>Undo</b> |
+    <u>Redo</u> |
+    <u>Cut</u> |
+    <u>Copy</u> |
+    <u>Paste</u> |
+  </td>
+</tr>
+</table>

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.editMenu.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.default.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.default.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.default.jsp	(revision 0)
@@ -0,0 +1,43 @@
+<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
+<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
+<html:html locale="true">
+<head>
+  <%-- We rely on tiles-defs.xml to set the title --%>
+  <title><tiles:getAsString name="titleString"/></title>
+  <html:base/>
+</head>
+<body>
+
+<table width="750" cellspacing="0" cellpadding="0" border="0">
+<tr>
+  <td>
+    <!-- Begin header -->
+    <tiles:insert attribute="header"/>
+    <!-- End header -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <!-- Begin topMenu -->
+    <tiles:insert attribute="menu"/>
+    <!-- End topMenu -->
+  </td>
+</tr>
+<tr>
+  <td>
+    <br>
+    <!-- Begin content -->
+    <tiles:insert attribute="content"/>
+    <!-- End content -->
+    <br>
+  </td>
+</tr>
+</table>
+
+<!-- Begin footer -->
+<tiles:insert attribute="footer"/>
+<!-- End footer -->
+
+</body>
+</html:html>
+

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.default.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/tiles-defs.xml
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/tiles-defs.xml	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/tiles-defs.xml	(revision 0)
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+ <!DOCTYPE tiles-definitions PUBLIC
+       "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
+       "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
+
+
+<!--
+     This is a blank Tiles definition file with a commented example.
+-->
+
+<tiles-definitions>
+
+    <definition name="defaultLayout" path="layout.default.jsp">
+        <put name="titleString"  value="Sample Page Title" />
+        <put name="header"       value="components.header.jsp" />
+        <put name="menu"         value="mainMenu" />
+        <put name="content"      value="mainBody" />
+        <put name="footer"       value="components.footer.jsp" />
+    </definition>
+
+    <definition name="mainMenu" path="components.mainMenu.jsp" >
+<!--
+        <putList name="list" >
+            <add value="menu.links" />
+            <add value="menu.taglib.references" />
+            <add value="menu.printer.friendly" />
+            <add value="menu.old.documents" />
+        </putList>
+-->
+    </definition>
+
+    <definition name="mainBody" path="layout.mainBody.jsp">
+        <put name="panel1"       value="components.panel1.jsp" />
+        <put name="panel2"       value="components.panel2.jsp" />
+        <put name="body"         value="components.netui-body.jsp" />
+    </definition>
+
+    <definition name="defaultPage" extends="defaultLayout">
+        <put name="titleString"  value="Default Layout Page - Tiles, NetUI Tags" />
+    </definition>
+
+    <definition name="strutsBody" path="layout.mainBody.jsp">
+        <put name="panel1"       value="components.panel1.jsp" />
+        <put name="panel2"       value="components.panel2.jsp" />
+        <put name="body"         value="components.struts-body.jsp" />
+    </definition>
+
+    <definition name="defaultStrutsPage" extends="defaultLayout">
+        <put name="titleString"  value="Default Layout Page - Tiles, Struts Tags" />
+        <put name="content"      value="strutsBody" />
+    </definition>
+
+    <definition name="blankPage" extends="defaultLayout">
+        <put name="titleString"  value="Blank Body Page - Tiles" />
+        <put name="content"      value="components.blank.jsp" />
+    </definition>
+
+    <definition name="editMenuPage" extends="defaultLayout">
+        <put name="titleString"  value="Edit Menu Page - Tiles" />
+        <put name="menu"         value="components.editMenu.jsp" />
+    </definition>
+
+    <definition name="alternatePanels" extends="mainBody">
+        <put name="panel1"       value="components.panel2.jsp" />
+        <put name="panel2"       value="components.panel1.jsp" />
+    </definition>
+
+    <definition name="reversePanels" extends="defaultLayout">
+        <put name="titleString"  value="Reversed Panels Page - Tiles" />
+        <put name="content"      value="alternatePanels" />
+    </definition>
+
+    <definition name="alternateBody" path="layout.alternateBody.jsp">
+        <put name="panel1"       value="components.panel1.jsp" />
+        <put name="panel2"       value="components.panel2.jsp" />
+        <put name="body"         value="components.netui-body.jsp" />
+    </definition>
+
+    <definition name="reverseBody" extends="defaultLayout">
+        <put name="titleString"  value="Reversed Panels Page - Tiles" />
+        <put name="content"      value="alternateBody" />
+    </definition>
+
+    <definition name="alternateLayout" path="layout.alternate.jsp">
+        <put name="titleString"  value="Alternate Layout Page - Tiles" />
+        <put name="header"       value="components.header.jsp" />
+        <put name="menu"         value="components.sideMenu.jsp" />
+        <put name="panel1"       value="components.panel1.jsp" />
+        <put name="panel2"       value="components.panel2.jsp" />
+        <put name="body"         value="components.netui-body.jsp" />
+        <put name="footer"       value="components.footer.jsp" />
+    </definition>
+
+</tiles-definitions>

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/tiles-defs.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.netui-body.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/components.netui-body.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/components.netui-body.jsp	(revision 0)
@@ -0,0 +1,44 @@
+<%@ taglib uri="beehive-netui-tags-html.tld" prefix="netui"%>
+
+<h1> Main Body Tile - NetUI HTML tags</h1>
+
+<netui:span value="${pageFlow.results}"/>
+
+<ul>
+    <li>
+        <netui:anchor action="home">
+        Default layout - using NetUI HTML tags
+        </netui:anchor>
+    </li>
+    <li>
+        <netui:anchor action="struts">
+        Default layout - using Struts HTML tags
+        </netui:anchor>
+    </li>
+    <li>
+        <netui:anchor action="blank">
+        Blank body
+        </netui:anchor>
+    </li>
+    <li>
+        <netui:anchor action="edit">
+        Change to edit menu
+        </netui:anchor>
+    </li>
+    <li>
+        <netui:anchor action="reversePanels">
+        Reverse side panels
+        </netui:anchor>
+    </li>
+    <li>
+        <netui:anchor action="changeBody">
+        Change the body layout
+        </netui:anchor>
+    </li>
+    <li>
+        <netui:anchor action="alternate">
+        Alternative Layout
+        </netui:anchor>
+    </li>
+</ul>
+

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.netui-body.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.panel1.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/components.panel1.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/components.panel1.jsp	(revision 0)
@@ -0,0 +1,24 @@
+<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
+<table bgcolor="#4169E1" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 1 Tile: News</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <ul>
+          <li><html:link href="http://www.cnn.com/">CNN</html:link></li>
+          <li><html:link href="http://www.nytimes.com/">NY Times</html:link></li>
+          <li><html:link href="http://www.yahoo.com/">Yahoo!</html:link></li>
+        </ul>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.panel1.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.panel2.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/components.panel2.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/components.panel2.jsp	(revision 0)
@@ -0,0 +1,21 @@
+<table bgcolor="#228B22" cellspacing="0" cellpadding="10" border="1"
+       width="100%">
+<tr>
+  <td>
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr bgcolor="#696969">
+      <td align="center">
+        <font color="#FFFFFF">Panel 2 Tile: Weather</font>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        <p>Weather:</p>
+        <p>find extended weather forcast at...</p>
+        <a href="http://weather.yahoo.com">http://weather.yahoo.com</a>
+      </td>
+    </tr>
+    </table>
+  </td>
+</tr>
+</table>

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.panel2.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/Controller.jpf
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/Controller.jpf	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/Controller.jpf	(revision 0)
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package miniTests.tiles;
+
+import java.util.Enumeration;
+import java.util.Locale;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.FormData;
+
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ActionForward;
+
+@Jpf.Controller(
+    tilesDefinitionsConfigs = { "tiles-defs.xml", "/WEB-INF/tiles-defs.xml" },
+    simpleActions={
+        @Jpf.SimpleAction(name="begin", tilesDefinition="defaultPage")
+    })
+public class Controller extends PageFlowController
+{
+    StringBuilder _sb = new StringBuilder();
+    public String getResults()
+    {
+        return _sb.toString();
+    }
+
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "continue",
+                tilesDefinition = "defaultPage")
+        })
+    public Forward home()
+    {
+        doWork();
+        return new Forward("continue");
+    }
+
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "continue",
+                tilesDefinition = "defaultStrutsPage")
+        })
+    public Forward struts()
+    {
+        doWork();
+        return new Forward("continue");
+    }
+
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "continue",
+                tilesDefinition = "blankPage")
+        })
+    public Forward blank()
+    {
+        doWork();
+        return new Forward("continue");
+    }
+
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "continue",
+                tilesDefinition = "editMenuPage")
+        })
+    public Forward edit()
+    {
+        doWork();
+        return new Forward("continue");
+    }
+
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "continue",
+                tilesDefinition = "reversePanels")
+        })
+    public Forward reversePanels()
+    {
+        doWork();
+        return new Forward("continue");
+    }
+
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "continue",
+                tilesDefinition = "reverseBody")
+        })
+    public Forward changeBody()
+    {
+        doWork();
+        return new Forward("continue");
+    }
+
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "continue",
+                tilesDefinition = "alternateLayout")
+        })
+    public Forward alternate()
+    {
+        doWork();
+        return new Forward("continue");
+    }
+    
+    private void doWork()
+    {
+        _sb = new StringBuilder();
+
+        HttpServletRequest req = getRequest();
+        _sb.append("Request URI: " + req.getRequestURI());
+        _sb.append("\n");
+    }
+}
+

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/Controller.jpf
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.alternateBody.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.alternateBody.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.alternateBody.jsp	(revision 0)
@@ -0,0 +1,23 @@
+<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
+<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
+
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr valign="top">
+      <td width="63%">
+        <!-- Begin body -->
+        <tiles:insert attribute="body"/>
+        <!-- End body -->
+      </td>
+      <td width="2%">&nbsp;</td>
+      <td width="35%">
+        <!-- Begin panel1 -->
+        <tiles:insert attribute="panel1"/>
+        <!-- End panel1 -->
+        <br>
+        <!-- Begin panel2 -->
+        <tiles:insert attribute="panel2"/>
+        <!-- End panel2 -->
+      </td>
+    </tr>
+    </table>
+

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.alternateBody.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.blank.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/components.blank.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/components.blank.jsp	(revision 0)
@@ -0,0 +1,4 @@
+<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
+
+<h1> Blank Body Tile </h1>
+

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.blank.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.header.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/components.header.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/components.header.jsp	(revision 0)
@@ -0,0 +1,8 @@
+<table bgcolor="#FFFF00" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+  <tr>
+    <td>
+      <H1>Header Tile</H1>
+    </td>
+  </tr>
+</table>

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.header.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.mainBody.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.mainBody.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.mainBody.jsp	(revision 0)
@@ -0,0 +1,23 @@
+<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
+<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
+
+    <table cellspacing="0" cellpadding="0" border="0" width="100%">
+    <tr valign="top">
+      <td width="35%">
+        <!-- Begin panel1 -->
+        <tiles:insert attribute="panel1"/>
+        <!-- End panel1 -->
+        <br>
+        <!-- Begin panel2 -->
+        <tiles:insert attribute="panel2"/>
+        <!-- End panel2 -->
+      </td>
+      <td width="2%">&nbsp;</td>
+      <td width="63%">
+        <!-- Begin body -->
+        <tiles:insert attribute="body"/>
+        <!-- End body -->
+      </td>
+    </tr>
+    </table>
+

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/layout.mainBody.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.footer.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/components.footer.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/components.footer.jsp	(revision 0)
@@ -0,0 +1,8 @@
+<table bgcolor="#00FFFF" cellspacing="0" cellpadding="5" border="0"
+       width="100%">
+<tr>
+  <td align="center">
+    Copyright 2004 <a href="http://www.bea.com">BEA Systems Inc.</a>
+  </td>
+</tr>
+</table>

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.footer.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.struts-body.jsp
===================================================================
--- netui/test/webapps/drt/coreWeb/miniTests/tiles/components.struts-body.jsp	(revision 0)
+++ netui/test/webapps/drt/coreWeb/miniTests/tiles/components.struts-body.jsp	(revision 0)
@@ -0,0 +1,42 @@
+<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
+
+<h1> Main Body Tile - Struts HTML tags</h1>
+
+<ul>
+    <li>
+        <html:link page="/home.do">
+        Default layout - using NetUI HTML tags
+        </html:link>
+    </li>
+    <li>
+        <html:link page="/struts.do">
+        Default layout - using Struts HTML tags
+        </html:link>
+    </li>
+    <li>
+        <html:link page="/blank.do">
+        Blank body
+        </html:link>
+    </li>
+    <li>
+        <html:link page="/edit.do">
+        Change to edit menu
+        </html:link>
+    </li>
+    <li>
+        <html:link page="/reversePanels.do">
+        Reverse side panels
+        </html:link>
+    </li>
+    <li>
+        <html:link page="/changeBody.do">
+        Change the body layout
+        </html:link>
+    </li>
+    <li>
+        <html:link page="/alternate.do">
+        Alternative Layout
+        </html:link>
+    </li>
+</ul>
+

Property changes on: netui/test/webapps/drt/coreWeb/miniTests/tiles/components.struts-body.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/test/webapps/drt/coreWeb/WEB-INF/web.xml
===================================================================
--- netui/test/webapps/drt/coreWeb/WEB-INF/web.xml	(revision 122792)
+++ netui/test/webapps/drt/coreWeb/WEB-INF/web.xml	(working copy)
@@ -240,10 +240,14 @@
           <taglib-uri>struts-html.tld</taglib-uri>
           <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
       </taglib>
-        <taglib>
-            <taglib-uri>struts-logic.tld</taglib-uri>
-            <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
-        </taglib>
+      <taglib>
+          <taglib-uri>struts-logic.tld</taglib-uri>
+          <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
+      </taglib>
+      <taglib>
+          <taglib-uri>struts-tiles.tld</taglib-uri>
+          <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
+      </taglib>
     </jsp-config>
 
    <security-constraint>
Index: netui/ant/webappTemplate.xml
===================================================================
--- netui/ant/webappTemplate.xml	(revision 122792)
+++ netui/ant/webappTemplate.xml	(working copy)
@@ -144,6 +144,7 @@
             <fileset dir="${webapp.dir}">
                 <include name="${resource.dir.name}/javascript/netui-*.js"/>
                 <include name="WEB-INF/**/jpf-struts-config-*.xml"/>
+                <include name="WEB-INF/**/jpf-validation-*.xml"/>
                 <include name="WEB-INF/classes/**/*.class"/>
                 <include name="WEB-INF/classes/**/*.java"/>
                 <include name="WEB-INF/classes/**/*.properties"/>
Index: netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
===================================================================
--- netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java	(revision 122792)
+++ netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java	(working copy)
@@ -20,7 +20,6 @@
 import org.apache.struts.action.Action;
 import org.apache.struts.action.ActionForm;
 import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.RequestProcessor;
 import org.apache.struts.action.ActionForward;
 import org.apache.struts.action.DynaActionFormClass;
 import org.apache.struts.action.DynaActionForm;
@@ -30,6 +29,10 @@
 import org.apache.struts.config.FormBeanConfig;
 import org.apache.struts.config.ModuleConfig;
 import org.apache.struts.Globals;
+import org.apache.struts.tiles.TilesRequestProcessor;
+import org.apache.struts.tiles.TilesUtil;
+import org.apache.struts.tiles.TilesUtilImpl;
+import org.apache.struts.tiles.TilesUtilStrutsImpl;
 import org.apache.struts.upload.MultipartRequestWrapper;
 import org.apache.struts.upload.MultipartRequestHandler;
 import org.apache.struts.util.RequestUtils;
@@ -79,7 +82,6 @@
 import org.apache.beehive.netui.pageflow.internal.JavaControlUtils;
 import org.apache.beehive.netui.pageflow.internal.FlowControllerAction;
 import org.apache.beehive.netui.pageflow.internal.ServerAdapterManager;
-import org.apache.beehive.netui.pageflow.internal.InternalConstants;
 import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
 import org.apache.beehive.netui.pageflow.scoping.ScopedRequest;
 import org.apache.beehive.netui.pageflow.handler.ForwardRedirectHandler;
@@ -96,7 +98,7 @@
  * <strong>controller</strong> for all Struts modules derived from page flows.
  */
 public class PageFlowRequestProcessor
-        extends RequestProcessor
+        extends TilesRequestProcessor
         implements Serializable
 {
     private static int requestCount = 0;
@@ -1055,7 +1057,31 @@
             }
         }
     }
-    
+
+    /**
+     * Read component instance mapping configuration file.
+     * This is where we read files properties.
+     */
+    @Override
+    protected void initDefinitionsMapping() throws ServletException
+    {
+        definitionsFactory = null;
+        TilesUtilImpl tilesUtil = TilesUtil.getTilesUtil();
+
+        if ( tilesUtil instanceof TilesUtilStrutsImpl )
+        {
+            // Retrieve and set factory for this modules
+            definitionsFactory =
+                    ( ( TilesUtilStrutsImpl ) tilesUtil ).getDefinitionsFactory( getServletContext(), moduleConfig );
+
+            if ( definitionsFactory == null && log.isDebugEnabled() )
+            {
+                log.debug( "Definition Factory not found for module: '"
+                           + moduleConfig.getPrefix() );
+            }
+        }
+    }
+
     public ActionMapping processMapping( HttpServletRequest request, HttpServletResponse response, String path )
         throws IOException
     {
@@ -1394,6 +1420,19 @@
             if ( _log.isDebugEnabled() ) _log.debug( "processForwardConfig(" + fwd + ')' );
     
             //
+            // Try to process a tiles definition. If the forward doesn't contain a
+            // a tiles definition, continue on.
+            //
+            if ( processTilesDefinition( fwd.getPath(), fwd.getContextRelative(), request, response ) )
+            {
+                if ( log.isDebugEnabled() )
+                {
+                    log.debug( "  '" + fwd.getPath() + "' - processed as definition" );
+                }
+                return;
+            }
+
+            //
             // If this is a "special" page flow forward, create a Forward to handle it and pass
             // it to the current page flow.  This should only happen when processValidate()
             // calls this method (or if a plain Struts action forwards to this forward) --
@@ -1536,7 +1575,17 @@
         boolean securityRedirected = false;
         ServletContext servletContext = getServletContext();
         ContextCache contextCache = ContextCache.get( servletContext );
-        
+
+        //
+        // As in the TilesRequestProcessor.doForward(), if the response has already been commited,
+        // do an include instead.
+        //
+        if ( response.isCommitted() )
+        {
+            doInclude(uri, request, response);
+            return;
+        }
+
         if ( contextCache.shouldDoSecureForwards() )
         {
             SecurityProtocol sp = PageFlowUtils.getSecurityProtocol( uri, servletContext, request );
Index: netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java
===================================================================
--- netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java	(revision 122792)
+++ netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java	(working copy)
@@ -53,6 +53,13 @@
         String validatorMerge() default "";
 
         /**
+         * Location of the Tiles Definitions XML files; relative to the page flow, or a path from the webapp root.
+         * For multiple definition files are allowed.
+         * Optional.
+         */
+        String[] tilesDefinitionsConfigs() default {};
+
+        /**
          * is pageflow nested (optional )
          */
         boolean nested() default false;
@@ -128,21 +135,28 @@
         String name() default "";
         
         /**
-         * The forward path.  Mutually-exclusive with <code>returnAction</code> and <code>navigateTo</code>.
+         * The forward path.  Mutually-exclusive with <code>tilesDefinition</code>,
+         * <code>returnAction</code> and <code>navigateTo</code>.
          */ 
         String path() default "";
-        
+
         /**
-         * The action to be invoked on the calling page flow.  Mutually-exclusive with <code>path</code> and
-         * <code>navigateTo</code>, and only valid in a nested page flow (<code>nested</code> on the
-         * <code>Controller</code> annotation must be true).
+         * The tiles definition to forward to.  Mutually-exclusive with <code>path</code>,
+         * <code>returnAction</code> and <code>navigateTo</code>.
+         */
+        String tilesDefinition() default "";
+
+        /**
+         * The action to be invoked on the calling page flow.  Mutually-exclusive with <code>path</code>,
+         * <code>tilesDefinition</code> and <code>navigateTo</code>, and only valid in a nested page flow
+         * (<code>nested</code> on the <code>Controller</code> annotation must be true).
          */ 
         String returnAction() default "";
         
         /**
-         * A symbolic name for the page/action to which to navigate.  Mutually-exclusive with <code>returnAction</code>
-         * and <code>path</code>.
-         */ 
+         * A symbolic name for the page/action to which to navigate.  Mutually-exclusive with
+         * <code>path</code>, <code>tilesDefinition</code> and <code>returnAction</code>
+         */
         NavigateTo navigateTo() default NavigateTo.currentPage;
         
         /**
@@ -265,21 +279,28 @@
         Forward validationErrorForward() default @Jpf.Forward( name="" );
         
         /**
-         * The forward path.  Mutually-exclusive with <code>returnAction</code> and <code>navigateTo</code>.
-         */ 
+         * The forward path.  Mutually-exclusive with <code>tilesDefinition</code>,
+         * <code>returnAction</code> and <code>navigateTo</code>.
+         */
         String path() default "";
-        
+
         /**
-         * The action to be invoked on the calling page flow.  Mutually-exclusive with <code>path</code> and
-         * <code>navigateTo</code>, and only valid in a nested page flow (<code>nested</code> on the
-         * <code>Controller</code> annotation must be true).
-         */ 
+         * The tiles definition to forward to.  Mutually-exclusive with <code>path</code>,
+         * <code>returnAction</code> and <code>navigateTo</code>.
+         */
+        String tilesDefinition() default "";
+
+        /**
+         * The action to be invoked on the calling page flow.  Mutually-exclusive with <code>path</code>,
+         * <code>tilesDefinition</code> and <code>navigateTo</code>, and only valid in a nested page flow
+         * (<code>nested</code> on the <code>Controller</code> annotation must be true).
+         */
         String returnAction() default "";
         
         /**
-         * A symbolic name for the page/action to which to navigate.  Mutually-exclusive with <code>returnAction</code>
-         * and <code>path</code>.
-         */ 
+         * A symbolic name for the page/action to which to navigate.  Mutually-exclusive with
+         * <code>path</code>, <code>tilesDefinition</code> and <code>returnAction</code>
+         */
         NavigateTo navigateTo() default NavigateTo.currentPage;
         
         /**
@@ -363,21 +384,28 @@
         String name();
         
         /**
-         * The forward path.  Mutually-exclusive with <code>returnAction</code> and <code>navigateTo</code>.
-         */ 
+         * The forward path.  Mutually-exclusive with <code>tilesDefinition</code>,
+         * <code>returnAction</code> and <code>navigateTo</code>.
+         */
         String path() default "";
-        
+
         /**
-         * The action to be invoked on the calling page flow.  Mutually-exclusive with <code>path</code> and
-         * <code>navigateTo</code>, and only valid in a nested page flow (<code>nested</code> on the
-         * <code>Controller</code> annotation must be true).
-         */ 
+         * The tiles definition to forward to.  Mutually-exclusive with <code>path</code>,
+         * <code>returnAction</code> and <code>navigateTo</code>.
+         */
+        String tilesDefinition() default "";
+
+        /**
+         * The action to be invoked on the calling page flow.  Mutually-exclusive with <code>path</code>,
+         * <code>tilesDefinition</code> and <code>navigateTo</code>, and only valid in a nested page flow
+         * (<code>nested</code> on the <code>Controller</code> annotation must be true).
+         */
         String returnAction() default "";
         
         /**
-         * A symbolic name for the page/action to which to navigate.  Mutually-exclusive with <code>returnAction</code>
-         * and <code>path</code>.
-         */ 
+         * A symbolic name for the page/action to which to navigate.  Mutually-exclusive with
+         * <code>path</code>, <code>tilesDefinition</code> and <code>returnAction</code>
+         */
         NavigateTo navigateTo() default NavigateTo.currentPage;
         
         /**
Index: netui/src/compiler/org/apache/beehive/netui/compiler/MergedControllerAnnotation.java
===================================================================
--- netui/src/compiler/org/apache/beehive/netui/compiler/MergedControllerAnnotation.java	(revision 122792)
+++ netui/src/compiler/org/apache/beehive/netui/compiler/MergedControllerAnnotation.java	(working copy)
@@ -29,9 +29,10 @@
 {
     private String _strutsMerge;
     private String _validatorMerge;
+    private List< String > _tilesDefinitionsConfigs;
     private boolean _nested;
     private boolean _longLived;
-    private String[] _rolesAllowed;
+    private List< String > _rolesAllowed;
     private boolean _loginRequired;
     private boolean _readOnly;
     private LinkedHashMap< String, AnnotationMirror > _forwards = new LinkedHashMap< String, AnnotationMirror >();
@@ -50,6 +51,10 @@
         String validatorMerge = CompilerUtils.getString( controllerAnnotation, VALIDATOR_MERGE_ATTR, true );
         if ( validatorMerge != null ) _validatorMerge = validatorMerge;
         
+        List< String > tilesDefinitionsConfigs =
+                CompilerUtils.getStringArray( controllerAnnotation, TILES_DEFINITIONS_CONFIGS_ATTR, true );
+        if ( tilesDefinitionsConfigs != null ) _tilesDefinitionsConfigs = tilesDefinitionsConfigs;
+
         Boolean nested = CompilerUtils.getBoolean( controllerAnnotation, NESTED_ATTR, true );
         if ( nested != null ) _nested = nested;
         
@@ -63,7 +68,7 @@
         if ( readOnly != null ) _readOnly = readOnly;
         
         List< String > rolesAllowed = CompilerUtils.getStringArray( controllerAnnotation, ROLES_ALLOWED_ATTR, true );
-        if ( rolesAllowed != null ) _rolesAllowed = rolesAllowed.toArray( new String[ rolesAllowed.size() ] );
+        if ( rolesAllowed != null ) _rolesAllowed = rolesAllowed;
         
         mergeAnnotationArray( _forwards, controllerAnnotation, FORWARDS_ATTR, NAME_ATTR );
         mergeAnnotationArray( _sharedFlowRefs, controllerAnnotation, SHARED_FLOW_REFS_ATTR, NAME_ATTR );
@@ -103,6 +108,11 @@
         return _validatorMerge;
     }
 
+    public List< String > getTilesDefinitionsConfigs()
+    {
+        return _tilesDefinitionsConfigs;
+    }
+
     public boolean isNested()
     {
         return _nested;
@@ -113,7 +123,7 @@
         return _longLived;
     }
 
-    public String[] getRolesAllowed()
+    public List< String > getRolesAllowed()
     {
         return _rolesAllowed;
     }
Index: netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ForwardGrammar.java
===================================================================
--- netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ForwardGrammar.java	(revision 122792)
+++ netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ForwardGrammar.java	(working copy)
@@ -58,14 +58,15 @@
 
     private static String[][] MUTUALLY_EXCLUSIVE_ATTRS =
             {
-                { PATH_ATTR, RETURN_ACTION_ATTR, NAVIGATE_TO_ATTR },
+                { PATH_ATTR, TILES_DEFINITION_ATTR, RETURN_ACTION_ATTR, NAVIGATE_TO_ATTR },
                 { OUTPUT_FORM_BEAN_TYPE_ATTR, OUTPUT_FORM_BEAN_ATTR },
                 { REDIRECT_ATTR, EXTERNAL_REDIRECT_ATTR }
             };
 
     private static String[][] REQUIRED_ATTRS =
             {
-                { NAME_ATTR }, { PATH_ATTR, RETURN_ACTION_ATTR, NAVIGATE_TO_ATTR },
+                { NAME_ATTR },
+                { PATH_ATTR, TILES_DEFINITION_ATTR, RETURN_ACTION_ATTR, NAVIGATE_TO_ATTR }
             };
 
     private static String[][] ATTR_DEPENDENCIES =
@@ -86,6 +87,7 @@
         addMemberType( OUTPUT_FORM_BEAN_ATTR, new MemberFieldType( null , null, this ) );
         addMemberType( RETURN_ACTION_ATTR, new JavaIdentifierType( null, this, '.' ) );
         addMemberType( PATH_ATTR, new ExternalPathOrActionType( false, null, this, fcInfo ) );
+        addMemberType( TILES_DEFINITION_ATTR, new AnnotationMemberType( null, this ) );
         addMemberType( REDIRECT_ATTR, new AnnotationMemberType( null, this ) );
         addMemberType( EXTERNAL_REDIRECT_ATTR, new AbsolutePathType( null , this ) );
         addMemberType( NAVIGATE_TO_ATTR, new EnumType( NAVIGATE_TO_VALS, DEPRECATED_NAVIGATE_TO_VALS, null, this ) );
Index: netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ControllerGrammar.java
===================================================================
--- netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ControllerGrammar.java	(revision 122792)
+++ netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ControllerGrammar.java	(working copy)
@@ -41,6 +41,7 @@
         addMemberType( READONLY_ATTR, new AnnotationMemberType( null, this ) );
         addMemberType( STRUTSMERGE_ATTR, new ValidXmlFileType( StrutsConfigDocument.type, null, this, fcInfo ) );
         addMemberType( VALIDATOR_MERGE_ATTR, new ValidXmlFileType( FormValidationDocument.type, null, this, fcInfo ) );
+        addMemberType( TILES_DEFINITIONS_CONFIGS_ATTR, new TilesDefinitionsConfigsType( null, this, fcInfo ) );
         addMemberType( MULTIPART_HANDLER_ATTR, new AnnotationMemberType( null, this ) );
         
         addMemberArrayGrammar( SHARED_FLOW_REFS_ATTR, new SharedFlowRefGrammar( env, diags, rvc ) );
Index: netui/src/compiler/org/apache/beehive/netui/compiler/grammar/TilesDefinitionsConfigsType.java
===================================================================
--- netui/src/compiler/org/apache/beehive/netui/compiler/grammar/TilesDefinitionsConfigsType.java	(revision 0)
+++ netui/src/compiler/org/apache/beehive/netui/compiler/grammar/TilesDefinitionsConfigsType.java	(revision 0)
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.compiler.grammar;
+
+import org.apache.beehive.netui.compiler.AnnotationGrammar;
+import org.apache.beehive.netui.compiler.FlowControllerInfo;
+import com.sun.mirror.declaration.AnnotationMirror;
+import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
+import com.sun.mirror.declaration.AnnotationValue;
+import com.sun.mirror.declaration.MemberDeclaration;
+
+import java.util.List;
+
+public class TilesDefinitionsConfigsType extends WebappPathType
+{
+    public TilesDefinitionsConfigsType( String requiredRuntimeVersion, AnnotationGrammar parentGrammar,
+                                        FlowControllerInfo fcInfo )
+    {
+        super( false, requiredRuntimeVersion, parentGrammar, fcInfo );
+    }
+
+    public Object onCheck( AnnotationTypeElementDeclaration valueDecl, AnnotationValue value,
+                           AnnotationMirror[] parentAnnotations, MemberDeclaration classMember )
+    {
+        List< AnnotationValue > values = ( List< AnnotationValue > ) value.getValue();
+
+        if ( values != null )
+        {
+            for ( AnnotationValue pathValue : values )
+            {
+                super.onCheck( valueDecl, pathValue, parentAnnotations, classMember );
+            }
+        }
+
+        return null;
+    }
+
+    protected boolean checkAnyExtension()
+    {
+        return true;
+    }
+}

Property changes on: netui/src/compiler/org/apache/beehive/netui/compiler/grammar/TilesDefinitionsConfigsType.java
___________________________________________________________________
Name: svn:eol-style
   + native

Index: netui/src/compiler/org/apache/beehive/netui/compiler/grammar/SimpleActionGrammar.java
===================================================================
--- netui/src/compiler/org/apache/beehive/netui/compiler/grammar/SimpleActionGrammar.java	(revision 122792)
+++ netui/src/compiler/org/apache/beehive/netui/compiler/grammar/SimpleActionGrammar.java	(working copy)
@@ -55,6 +55,7 @@
         addMemberType( USE_FORM_BEAN_ATTR,
                        new WritableFieldType( OBJECT_CLASS_NAME, USE_FORM_BEAN_ATTR, VERSION_8_SP2_STRING, this ) );
         addMemberType( PATH_ATTR, new ExternalPathOrActionType( false, null, this, fcInfo ) );
+        addMemberType( TILES_DEFINITION_ATTR, new AnnotationMemberType( null, this ) );
         addMemberType( REDIRECT_ATTR, new AnnotationMemberType( null , this ) );
         addMemberType( EXTERNAL_REDIRECT_ATTR, new AbsolutePathType( null , this ) );
         
@@ -100,7 +101,10 @@
     private static class SimpleActionForwardGrammar
             extends ForwardGrammar
     {
-        private static String[][] REQUIRED_ATTRS = { { PATH_ATTR, RETURN_ACTION_ATTR, NAVIGATE_TO_ATTR } };
+        private static String[][] REQUIRED_ATTRS =
+                {
+                    { PATH_ATTR, TILES_DEFINITION_ATTR, RETURN_ACTION_ATTR, NAVIGATE_TO_ATTR }
+                };
         
         public SimpleActionForwardGrammar( AnnotationProcessorEnvironment env, Diagnostics diags,
                                            String requiredRuntimeVersion, RuntimeVersionChecker runtimeVersionChecker,
Index: netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java
===================================================================
--- netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java	(revision 122792)
+++ netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java	(working copy)
@@ -36,6 +36,8 @@
 import java.io.PrintStream;
 import java.util.Date;
 import java.util.Collection;
+import java.util.List;
+import java.util.ArrayList;
 
 import com.sun.mirror.declaration.ClassDeclaration;
 import com.sun.mirror.declaration.AnnotationMirror;
@@ -100,7 +102,8 @@
             setMultipartHandler( mca.getMultipartHandler() );
             GenForwardModel.addForwards( mca.getForwards(), this, _jclass, this, null );
             GenExceptionModel.addCatches( mca.getCatches(), this, _jclass, this, this );
-            
+            addTilesDefinitionsConfigs( mca.getTilesDefinitionsConfigs() );
+
             addActionMethods();
             addFormBeans( _jclass );
         }
@@ -216,6 +219,31 @@
         }
     }
     
+    private void addTilesDefinitionsConfigs( List<String> tilesDefinitionsConfigs )
+    {
+        if ( tilesDefinitionsConfigs == null || tilesDefinitionsConfigs.isEmpty() )
+        {
+            return;
+        }
+
+        List< String > paths = new ArrayList< String >();
+
+        for ( String definitionsConfig : tilesDefinitionsConfigs )
+        {
+            if ( definitionsConfig != null && definitionsConfig.startsWith( "/" ) )
+            {
+                paths.add( definitionsConfig );
+            }
+            else
+            {
+                String prefix = _sourceFile.getParentFile().toString().substring( _webappRoot.toString().length() );
+                paths.add( prefix + File.separator + definitionsConfig );
+            }
+        }
+
+        setTilesDefinitionsConfigs( paths );
+    }
+
     private void addActionMethods()
     {
         Collection< MethodDeclaration > actionMethods = CompilerUtils.getClassMethods( _jclass, ACTION_TAG_NAME );
Index: netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenForwardModel.java
===================================================================
--- netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenForwardModel.java	(revision 122792)
+++ netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenForwardModel.java	(working copy)
@@ -61,22 +61,24 @@
         setReturnFormType( returnFormType != null ? CompilerUtils.getLoadableName( returnFormType ) : null );
         
         //
-        // path, navigateTo, returnAction (mutually exclusive)
+        // path, tilesDefinition, navigateTo, returnAction (mutually exclusive)
         //
         String returnAction = CompilerUtils.getString( annotation, RETURN_ACTION_ATTR, true );
         String navigateTo = CompilerUtils.getEnumFieldName( annotation, NAVIGATE_TO_ATTR, true );
+        String tilesDefinition = CompilerUtils.getString( annotation, TILES_DEFINITION_ATTR, true );
         String path = CompilerUtils.getString( annotation, PATH_ATTR, true );
         
         if ( returnAction != null )
         {
             assert navigateTo == null;
+            assert tilesDefinition == null;
             assert path == null;
             setIsNestedReturn( true );
             setPath( returnAction );    // set the returnAction as the path -- the runtime expects it there
         }
         else if ( navigateTo != null )
         {
-            assert returnAction == null;
+            assert tilesDefinition == null;
             assert path == null;
             
             if ( navigateTo.equals( NAVIGATE_TO_PAGE_LEGACY_STR )
@@ -99,6 +101,11 @@
 
             setPath( navigateTo );    // set the actual navigateTo value as the path -- the runtime expects it there
         }
+        else if ( tilesDefinition != null )
+        {
+            assert path == null;
+            setPath( tilesDefinition );    // set the tilesDefinition as the path -- the runtime expects it there
+        }
         else
         {
             assert path != null;      // checker should enforce this
@@ -112,7 +119,7 @@
             {
                 contextRelative = false;
                 
-                 //
+                //
                 // If it's an absolute URL, then the path shouldn't have a slash inserted in front of it.
                 // URL.
                 //
Index: netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java
===================================================================
--- netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java	(revision 122792)
+++ netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java	(working copy)
@@ -122,8 +122,7 @@
     private void setRolesAllowed( AnnotationMirror annotation, ClassDeclaration jclass, GenStrutsApp parentApp )
     {
         List< String > rolesAllowed = CompilerUtils.getStringArray( annotation, ROLES_ALLOWED_ATTR, true );
-        String[] classLevelRAList = parentApp.getFlowControllerInfo().getMergedControllerAnnotation().getRolesAllowed();
-        List< String > classLevelRA = classLevelRAList != null ? Arrays.asList( classLevelRAList ) : null;
+        List< String > classLevelRA = parentApp.getFlowControllerInfo().getMergedControllerAnnotation().getRolesAllowed();
         Iterator< String > it = null;
         
         if ( rolesAllowed != null && classLevelRA != null )
Index: netui/src/compiler/org/apache/beehive/netui/compiler/model/StrutsApp.java
===================================================================
--- netui/src/compiler/org/apache/beehive/netui/compiler/model/StrutsApp.java	(revision 122792)
+++ netui/src/compiler/org/apache/beehive/netui/compiler/model/StrutsApp.java	(working copy)
@@ -35,7 +35,6 @@
 import java.util.Iterator;
 import java.util.Collections;
 import java.util.Comparator;
-import java.util.LinkedHashMap;
 
 
 import static org.apache.beehive.netui.compiler.JpfLanguageConstants.PAGEFLOW_PACKAGE;
@@ -63,8 +62,9 @@
     private Map< String, String > _sharedFlows = null;
     private String _controllerClassName = null;
     private String _multipartHandlerClassName = null;
-    
+    private List< String > _tilesDefinitionsConfigs = null;
 
+
     protected static final String DUPLICATE_ACTION_COMMENT = "Note that there is more than one action with path \"{0}\"."
                                                            + "  Use a form-qualified action path if this is not the "
                                                            + "one you want.";
@@ -82,6 +82,9 @@
     protected static final String STRUTSCONFIG_OUTPUT_DIR = '/' + WEBINF_DIR_NAME + "/.pageflow-struts-generated";
     protected static final String VALIDATOR_PLUG_IN_CLASSNAME = "org.apache.struts.validator.ValidatorPlugIn";
     protected static final String VALIDATOR_PATHNAMES_PROPERTY = "pathnames";
+    protected static final String TILES_PLUG_IN_CLASSNAME = "org.apache.struts.tiles.TilesPlugin";
+    protected static final String TILES_DEFINITIONS_CONFIG_PROPERTY = "definitions-config";
+    protected static final String TILES_MODULE_AWARE_PROPERTY = "moduleAware";
     protected static final String NETUI_VALIDATOR_RULES_URI = '/' + WEBINF_DIR_NAME + "/netui-validator-rules.xml";
     protected static final String STRUTS_VALIDATOR_RULES_URI = '/' + WEBINF_DIR_NAME + "/validator-rules.xml";
 
@@ -513,6 +516,12 @@
         
         
         //
+        // TilesPlugin
+        //
+        writeTilesInit( scElement );
+
+
+        //
         // Write the file.
         //
         XmlOptions options = new XmlOptions();
@@ -775,6 +784,79 @@
         }
     }
     
+    protected void writeTilesInit( StrutsConfigDocument.StrutsConfig scElement )
+    {
+        if ( _tilesDefinitionsConfigs == null || _tilesDefinitionsConfigs.isEmpty() )
+        {
+            return;
+        }
+
+        PlugInDocument.PlugIn plugInElementToEdit = null;
+        PlugInDocument.PlugIn[] existingPlugIns = scElement.getPlugInArray();
+
+        for ( int i = 0; i < existingPlugIns.length; i++ )
+        {
+            PlugInDocument.PlugIn existingPlugIn = existingPlugIns[i];
+
+            if ( TILES_PLUG_IN_CLASSNAME.equals( existingPlugIn.getClassName() ) )
+            {
+                plugInElementToEdit = existingPlugIn;
+                break;
+            }
+        }
+
+        if ( plugInElementToEdit == null )
+        {
+            plugInElementToEdit = scElement.addNewPlugIn();
+            plugInElementToEdit.setClassName( TILES_PLUG_IN_CLASSNAME );
+        }
+
+        boolean definitionsConfigIsSet = false;
+        boolean moduleAwarePropertyIsSet = false;
+        SetPropertyDocument.SetProperty[] existingSetProperties = plugInElementToEdit.getSetPropertyArray();
+
+        for ( int i = 0; i < existingSetProperties.length; i++ )
+        {
+            String name = existingSetProperties[i].getProperty();
+
+            if ( TILES_DEFINITIONS_CONFIG_PROPERTY.equals( name ) )
+            {
+                //
+                // This means that in the user's struts-merge file, there's already a
+                // "definitions-config" set-property element.  We don't want to overwrite it.
+                //
+                definitionsConfigIsSet = true;
+            }
+
+            if ( TILES_MODULE_AWARE_PROPERTY.equals( name ) )
+            {
+                // Make sure "moduleAware" is true
+                existingSetProperties[i].setValue( "true" );
+                moduleAwarePropertyIsSet = true;
+            }
+        }
+
+        if ( !definitionsConfigIsSet )
+        {
+            SetPropertyDocument.SetProperty pathnamesProperty = plugInElementToEdit.addNewSetProperty();
+            pathnamesProperty.setProperty( TILES_DEFINITIONS_CONFIG_PROPERTY );
+            StringBuilder pathNames = new StringBuilder();
+
+            for ( String definitionsConfig : _tilesDefinitionsConfigs )
+            {
+                pathNames.append( definitionsConfig ).append( ',' );
+            }
+            pathnamesProperty.setValue( pathNames.toString() );
+        }
+
+        if ( !moduleAwarePropertyIsSet )
+        {
+            SetPropertyDocument.SetProperty pathnamesProperty = plugInElementToEdit.addNewSetProperty();
+            pathnamesProperty.setProperty( TILES_MODULE_AWARE_PROPERTY );
+            pathnamesProperty.setValue( "true" );
+        }
+    }
+
     protected String getHeaderComment( File mergeFile )
     {
         return null;
@@ -828,4 +910,9 @@
     {
         _multipartHandlerClassName = multipartHandlerClassName;
     }
+
+    public void setTilesDefinitionsConfigs( List<String> tilesDefinitionsConfigs )
+    {
+        _tilesDefinitionsConfigs = tilesDefinitionsConfigs;
+    }
 }
Index: netui/src/compiler/org/apache/beehive/netui/compiler/JpfLanguageConstants.java
===================================================================
--- netui/src/compiler/org/apache/beehive/netui/compiler/JpfLanguageConstants.java	(revision 122792)
+++ netui/src/compiler/org/apache/beehive/netui/compiler/JpfLanguageConstants.java	(working copy)
@@ -101,10 +101,12 @@
     public static final String LONGLIVED_ATTR = "longLived";
     public static final String STRUTSMERGE_ATTR = "strutsMerge";
     public static final String VALIDATOR_MERGE_ATTR = "validatorMerge";
+    public static final String TILES_DEFINITIONS_CONFIGS_ATTR = "tilesDefinitionsConfigs";
     public static final String LOGIN_REQUIRED_ATTR = "loginRequired";
     public static final String ROLES_ALLOWED_ATTR = "rolesAllowed";
     public static final String NAME_ATTR = "name";
     public static final String PATH_ATTR = "path";
+    public static final String TILES_DEFINITION_ATTR = "tilesDefinition";
     public static final String OUTPUT_FORM_BEAN_TYPE_ATTR = "outputFormBeanType";
     public static final String OUTPUT_FORM_BEAN_ATTR = "outputFormBean";
     public static final String NAVIGATE_TO_ATTR = "navigateTo";
