You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by st...@apache.org on 2004/11/09 20:50:16 UTC

svn commit: rev 57085 - in incubator/beehive/site: build/site build/site/controls build/site/pageflow build/site/wsm src/documentation/content/xdocs src/documentation/content/xdocs/controls src/documentation/content/xdocs/pageflow src/documentation/content/xdocs/wsm

Author: steveh
Date: Tue Nov  9 11:50:15 2004
New Revision: 57085

Added:
   incubator/beehive/site/build/site/pageflow/sample_netui-blank.html   (contents, props changed)
   incubator/beehive/site/src/documentation/content/xdocs/pageflow/sample_netui-blank.xml   (contents, props changed)
Modified:
   incubator/beehive/site/build/site/Controls.html
   incubator/beehive/site/build/site/contributors.html
   incubator/beehive/site/build/site/controls/sample_controls-blank.html
   incubator/beehive/site/build/site/controls/sample_controls-db.html
   incubator/beehive/site/build/site/controls/tutorial_controls.html
   incubator/beehive/site/build/site/downloads.html
   incubator/beehive/site/build/site/faq.html
   incubator/beehive/site/build/site/index.html
   incubator/beehive/site/build/site/jpetstore.html
   incubator/beehive/site/build/site/license.html
   incubator/beehive/site/build/site/mailinglists.html
   incubator/beehive/site/build/site/pageflow/guide.html
   incubator/beehive/site/build/site/pageflow/tutorial_pageflow.html
   incubator/beehive/site/build/site/reference.html
   incubator/beehive/site/build/site/webservices.html
   incubator/beehive/site/build/site/wsm/sample_AddressBook.html
   incubator/beehive/site/build/site/wsm/sample_Dashboard.html
   incubator/beehive/site/build/site/wsm/sample_wsm-blank.html
   incubator/beehive/site/build/site/wsm/tutorial_wsm.html
   incubator/beehive/site/src/documentation/content/xdocs/controls/sample_controls-blank.xml
   incubator/beehive/site/src/documentation/content/xdocs/controls/sample_controls-db.xml
   incubator/beehive/site/src/documentation/content/xdocs/site.xml
   incubator/beehive/site/src/documentation/content/xdocs/wsm/sample_wsm-blank.xml
   incubator/beehive/site/src/documentation/content/xdocs/wsm/tutorial_wsm.xml
Log:
Adding topics on the "blank" samples/templates.

Modified: incubator/beehive/site/build/site/Controls.html
==============================================================================
--- incubator/beehive/site/build/site/Controls.html	(original)
+++ incubator/beehive/site/build/site/Controls.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/contributors.html
==============================================================================
--- incubator/beehive/site/build/site/contributors.html	(original)
+++ incubator/beehive/site/build/site/contributors.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/controls/sample_controls-blank.html
==============================================================================
--- incubator/beehive/site/build/site/controls/sample_controls-blank.html	(original)
+++ incubator/beehive/site/build/site/controls/sample_controls-blank.html	Tue Nov  9 11:50:15 2004
@@ -2,7 +2,7 @@
 <html>
 <head>
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>"Blank" Control Sample</title>
+<title>Control Project Sample</title>
 <link type="text/css" href="../skin/page.css" rel="stylesheet">
 </head>
 <body text="#000000" bgcolor="#FFFFFF">
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="../pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <span class="sel"><font color="#ffcc00">Control Project</font></span>
 </li>
             
@@ -258,26 +262,26 @@
 <table class="title" summary="">
 <tr>
 <td valign="middle">
-<h1>"Blank" Control Sample</h1>
+<h1>Control Project Sample</h1>
 </td>
 </tr>
 </table>
 <ul class="minitoc">
 <li>
-<a href="#intro">Distributable Control Projects</a>
+<a href="#intro">The Control Application Template</a>
 </li>
-<li></li>
 </ul>
-        
+            
 <a name="N1000C"></a><a name="intro"></a>
-<h3>Distributable Control Projects</h3>
+<h3>The Control Application Template</h3>
 <div style="margin-left: 0 ; border: 2px">
-<p>"Mentioning the "control project" model for using controls (perhaps as a 2nd controls tutorial?) -- ie, using the controls-blank template to create a controls JAR that is then importable in multiple webapps (WEB-INF/lib), and using this to help isolate business logic in controls from presentation logic in the webapp proper."            </p>
+<p>Use the "blank" Control sample (located at <span class="codefrag">BEEHIVE_HOME/samples/controls-blank</span>) is a template for building your own Control projects.  
+
+</p>
+<p>The template contains a basic 'Hello World' control to get you started.  Control projects can be archived in a JAR file and then imported into multiple applications.  Simple import the JAR archive into the application's WEB-INF/lib directory. </p>
 </div>
-        
-<a name="N10016"></a>
-<h3></h3>
-<div style="margin-left: 0 ; border: 2px"></div>
+
+
     
 <div class="attribution"></div>
 </div>

Modified: incubator/beehive/site/build/site/controls/sample_controls-db.html
==============================================================================
--- incubator/beehive/site/build/site/controls/sample_controls-db.html	(original)
+++ incubator/beehive/site/build/site/controls/sample_controls-db.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="../pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="../controls/sample_controls-blank.html">Control Project</a>
 </li>
             
@@ -279,8 +283,88 @@
 <a name="N1000C"></a><a name="Control+Programming%3A+Simplifying+Access+to+Resources"></a>
 <h3>Control Programming: Simplifying Access to Resources</h3>
 <div style="margin-left: 0 ; border: 2px">
-<p>Control Programming...simplifying access to a resource, in this case a database.</p>
-<a name="N10015"></a><a name="Structure+of+the+Database+Control"></a>
+<p>Control Programming...simplifying access to a resource, in this case a database.
+        
+        <!--  From Hoi Lam's email:
+        A Database control makes it easy to access a relational database from your Java code using SQL commands. The Database control handles the work of connecting to the database, so you don’t have to understand JDBC to work with a database.
+
+All Database controls are subclassed from the DatabaseControl interface. The interface defines methods that Database control instances can call from an application.
+
+The methods that you add to a Database control execute SQL commands against the database. You can send any SQL command to the database via the Database control, so that you can retrieve data, perform operations like inserts and updates.
+
+A method on a Database control always has an associated SQL statement, which executes against the database when the method is called. The method’s @SQL annotation describes the method’s SQL statement.  The method’s SQL statement may include substitution parameters. These parameters are replaced at runtime with the values that were passed to the method. The names of the substitution parameters in the SQL statement must match those in the method signature, so that the Database control knows which parameter to replace with which value. 
+
+The following example Database control method illustrates using parameter substitution in Database control methods:
+
+    @SQL(statement="INSERT INTO EMPLOYEE " +
+                   "(id, fName, lName, title) " +
+                   "VALUES ({emp.id}, {emp.fName}, {emp.lName}, {emp.title})")
+    public void insertEmployee(Employee emp) throws SQLException;
+
+In the example above, the SQL statement includes the substitution {emp.id}, {emp.fName}, ... These map to the various class variables of the "emp" parameter in the insertEmployee method. When the method is invoked, the values of any referenced parameters are substituted in the SQL statement before it is executed. Note that parameter substitution is case sensitive, so parameters mentioned in substitutions must exactly match the spelling and case of the parameters to the method.
+
+The return type of the database operation is determined by the return type of the Java method. The Database control attempts to format the results in whatever type you have specified for the method to return.  A method of a Database control can return a single value, a single row, or multiple rows. 
+
+When your method returns a single value, its return type must be compatible with the value returned from the query.  The following example looks up an employee's title.
+
+    @SQL(statement="SELECT title FROM EMPLOYEE WHERE id={id}")
+    public String getEmployeeTitle(int id) throws SQLException;
+
+In this example, the title field is of type VARCHAR, so the return value is declared as String. 
+
+When your method returns a single row with multiple fields, its return type can be a user-defined object or a java.util.HashMap object.  When the return type is a user-defined object,  it must contain members with names that match the names of the columns that will be returned by the query. Because database column names are case-insensitive, the matching names are case-insensitive. The class may also contain other members, members not matching any column names will not be set.  The following example declares an Employee class with members corresponding to fields in the Employee table. The findEmployee method returns an object of type Employee:
+
+    @SQL(statement="SELECT * FROM EMPLOYEE WHERE id={id}")
+    public Employee findEmployee(int id) throws SQLException;
+
+    public class Employee
+    {
+        public int id;
+        public String fName;
+        public String lName;
+        public String title;
+    }
+
+When your method returns multiple rows from the database, its return type can be an array, a java.util.Iterator, or a java.sql.ResultSet.  
+When you want to return an Iterator object, you must specify the iteratorElementType element to the @SQL annotation to indicate the underlying type that the Iterator will contain.  The following example returns a iterator of all employees sorted by their last names.
+
+    @SQL(statement="SELECT * FROM EMPLOYEE ORDER BY lName", iteratorElementType=Employee.class, maxRows=500)
+    public Iterator getEmployeesSortedByLastName() throws SQLException;
+
+You can limit the number of rows returned by setting the maxRows element of the @SQL annotation. This element can protect you from very large resultsets that may be returned by very general queries. The default value of maxRow is 1024.
+
+The Database Control defines two annotations: SQL and ConnectionDataSource.
+
+The SQL Annotation specifies the SQL statement and associated attributes that correspond to a method in a Database control.
+
+    public @interface SQL
+    {
+        String statement()              default "";
+        int maxRows()                   default MAXROWS_ALL;
+        @AnnotationMemberTypes.Optional
+        Class iteratorElementType()     default UndefinedIteratorType.class;
+    }
+
+The "statement" element is required. It specifies the SQL (Structured Query Language) statement that will be executed when the associated Database control method is invoked. The statement may contain substitutions of the form {varName}, where paramName is a parameter of the Database control method (or a member accessible from the parameter).
+
+The "iteratorElementType" is required if Database control method return type is java.util.Iterator. It specifies the underlying class of the Iterator that will be returned by the Database control method. 
+
+The "maxRows" element is optional. It sets the maximum number of records to be returned by the query. The maxRows element limits the size of all types of data sets, including Arrays, Iterator, ResultSet, etc. The default value of this element is 1024.
+
+The ConnectionDataSource annotation specifies the data source that the Database control will use to obtain connection.  At the time of writing, this has not been fully implemented yet.  The Database control currently uses the embedded Derby database driver to obtain connection, and it is expecting the value provided for the "jndiName" element to be a database URL.
+
+    public @interface ConnectionDataSource
+    {
+    	String jndiName();   // no default ... value is required
+    }
+ 
+The Database control is current included in the Beehive distribution as a sample control (\samples\controls-db).  Building this control with the Ant script provided will create a dbControl.jar in \samples\controls-db\build\.  You can start creating your own database control extension by simply including this JAR file in your classpath.
+
+        
+         -->
+        
+        </p>
+<a name="N10017"></a><a name="Structure+of+the+Database+Control"></a>
 <h4>Structure of the Database Control</h4>
 <div style="margin-left: 0 ; border: 2px"></div>
 <p>The Database Control is a <em>base control</em>: it is designed to be extented by a <em>control extension</em>.  Base controls package the boilerplate code, the common routines that any code must execute in order to access a resource.  Control extensions contain the interesting, variable aspects of accessing the resource.  If this model were applied to the case of JMS access, the base control would contain the boilerplate tasks consisting of obtaining sessions, referencing queues, etc.  The control extension configures the base control for access to a particular JMS resource.  The control extension would anwser the questions: What the JNDI name of the JMS resources?  What message should be sent?  
@@ -312,7 +396,7 @@
 </ul>
 </div>
     
-<a name="N10047"></a><a name="Distributing+the+Database+Control"></a>
+<a name="N10049"></a><a name="Distributing+the+Database+Control"></a>
 <h3>Distributing the Database Control</h3>
 <div style="margin-left: 0 ; border: 2px">
 <p>[todo]</p>

Modified: incubator/beehive/site/build/site/controls/tutorial_controls.html
==============================================================================
--- incubator/beehive/site/build/site/controls/tutorial_controls.html	(original)
+++ incubator/beehive/site/build/site/controls/tutorial_controls.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="../pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="../controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/downloads.html
==============================================================================
--- incubator/beehive/site/build/site/downloads.html	(original)
+++ incubator/beehive/site/build/site/downloads.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/faq.html
==============================================================================
--- incubator/beehive/site/build/site/faq.html	(original)
+++ incubator/beehive/site/build/site/faq.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/index.html
==============================================================================
--- incubator/beehive/site/build/site/index.html	(original)
+++ incubator/beehive/site/build/site/index.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/jpetstore.html
==============================================================================
--- incubator/beehive/site/build/site/jpetstore.html	(original)
+++ incubator/beehive/site/build/site/jpetstore.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/license.html
==============================================================================
--- incubator/beehive/site/build/site/license.html	(original)
+++ incubator/beehive/site/build/site/license.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/mailinglists.html
==============================================================================
--- incubator/beehive/site/build/site/mailinglists.html	(original)
+++ incubator/beehive/site/build/site/mailinglists.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/pageflow/guide.html
==============================================================================
--- incubator/beehive/site/build/site/pageflow/guide.html	(original)
+++ incubator/beehive/site/build/site/pageflow/guide.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="../pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="../controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Added: incubator/beehive/site/build/site/pageflow/sample_netui-blank.html
==============================================================================
--- (empty file)
+++ incubator/beehive/site/build/site/pageflow/sample_netui-blank.html	Tue Nov  9 11:50:15 2004
@@ -0,0 +1,315 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Page Flow Project Sample</title>
+<link type="text/css" href="../skin/page.css" rel="stylesheet">
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<!--================= start Navigation Path ==================-->
+<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" src="../skin/images/spacer.gif" class="spacer"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
+</tr>
+<tr>
+<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+<!--================= end Navigation Path ==================-->
+<!--================= start Banner ==================-->
+<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<!--================= start Group Logo ==================-->
+<td bgcolor="#294563"><a href="http://incubator.apache.org/"><img border="0" class="logoImage" alt="Apache Incubator" src="../images/_incubator-logo.gif"></a></td>
+<!--================= end Group Logo ==================-->
+<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://incubator.apache.org/beehive"><img border="0" class="logoImage" alt="Apache Beehive" src="../images/_beehive_logo_wide.gif"></a></td>
+<!--================= end Project Logo ==================-->
+<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
+<form target="_blank" action="http://www.google.com/search" method="get">
+<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+<tr>
+<td colspan="3"><img height="10" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="incubator.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif" class="spacer"><input name="Search" value="Search" type="submit">
+<br>
+<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
+                      the Apache Beehive site
+                      
+                      
+                    </font></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td><img alt="" border="0" height="10" width="9" src="../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td><img alt="" border="0" height="10" width="9" src="../skin/images/search-right.gif"></td>
+</tr>
+</table>
+</form>
+</td>
+<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td valign="bottom" bgcolor="#294563" colspan="2">
+<!--================= start Tabs ==================-->
+<div class="tab">
+<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="6"><img alt="" height="8" width="6" src="../skin/images/spacer.gif"></td><td valign="bottom">
+<table summary="selected tab" style="height: 1.8em" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a class="base-selected" href="../index.html">Home</a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../skin/images/tabSel-right.gif"></td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</div>
+<!--================= end Tabs ==================-->
+</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+<!--================= end Banner ==================-->
+<!--================= start Menu, NavBar, Content ==================-->
+<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td valign="top">
+<table summary="menu" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<!--================= start left top NavBar ==================-->
+<td rowspan="3" valign="top">
+<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
+</tr>
+<tr>
+<td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+</td>
+<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
+<!--================= start Menu items ==================-->
+<div class="menu">
+<ul>
+<li>
+<font color="#CFDCED">Beehive</font>
+<ul>
+        
+<li>
+<a href="../index.html">Welcome</a>
+</li>
+        
+<li>
+<a href="../license.html">License</a>
+</li>
+        
+<li>
+<a href="../downloads.html">Downloads</a>
+</li>
+        
+<li>
+<a href="../faq.html">FAQ</a>
+</li>
+    
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Documentation</font>
+<ul>
+        
+        
+<li>
+<font color="#CFDCED">Page Flows</font>
+<ul>
+            
+<li>
+<a href="../pageflow/tutorial_pageflow.html">Page Flow Tutorial</a>
+</li>
+            
+<li>
+<a href="../pageflow/guide.html">Page Flow Programming</a>
+</li>
+        
+</ul>
+</li>
+        
+<li>
+<font color="#CFDCED">Controls</font>
+<ul>
+            
+<li>
+<a href="../controls/tutorial_controls.html">Control Tutorial</a>
+</li>
+            
+<li>
+<a href="../Controls.html">Control Programming</a>
+</li>
+        
+</ul>
+</li>
+        
+<li>
+<font color="#CFDCED">Web Services</font>
+<ul>
+            
+<li>
+<a href="../wsm/tutorial_wsm.html">Web Services Tutorial</a>
+</li>
+            
+<li>
+<a href="../webservices.html">Web Services (JSR 181)</a>
+</li>
+        
+</ul>
+</li>
+        
+<li>
+<font color="#CFDCED">Samples</font>
+<ul>
+            
+<li>
+<a href="../jpetstore.html">Petstore</a>
+</li>
+            
+<li>
+<a href="../wsm/sample_Dashboard.html">Petstore Dashboard</a>
+</li>
+            
+<li>
+<a href="../wsm/sample_AddressBook.html">AddressBook/Employee</a>
+</li>
+            
+<li>
+<a href="../controls/sample_controls-db.html">Database Control</a>
+</li>
+            
+<li>
+<span class="sel"><font color="#ffcc00">Page Flow Project</font></span>
+</li>
+            
+<li>
+<a href="../controls/sample_controls-blank.html">Control Project</a>
+</li>
+            
+<li>
+<a href="../wsm/sample_wsm-blank.html">Web Service Project</a>
+</li>
+        
+</ul>
+</li>
+        
+<li>
+<a href="../reference.html">Reference Docs</a>
+</li>
+        
+        
+    
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Community</font>
+<ul>
+        
+<li>
+<a href="../mailinglists.html">Mailing Lists</a>
+</li>
+        
+<li>
+<a href="../contributors.html">Contributors</a>
+</li>
+    
+</ul>
+</li>
+</ul>
+</div>
+<!--================= end Menu items ==================-->
+</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-right.gif"></td>
+</tr>
+<tr>
+<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+</td><td valign="top" width="100%">
+<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
+<!--================= start middle NavBar ==================-->
+<tr>
+<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
+                &nbsp;
+                
+                </font><img width="10" height="8" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
+                &nbsp;
+                
+                </font><img width="10" height="8" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<!--================= end middle NavBar ==================-->
+<!--================= start Content==================-->
+<tr>
+<td align="left" width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td colspan="2" align="left" width="100%">
+<div class="content">
+<table class="title" summary="">
+<tr>
+<td valign="middle">
+<h1>Page Flow Project Sample</h1>
+</td>
+</tr>
+</table>
+<ul class="minitoc">
+<li>
+<a href="#intro">The Page Flow Application Template</a>
+</li>
+</ul>
+        
+<a name="N1000C"></a><a name="intro"></a>
+<h3>The Page Flow Application Template</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>Use the "blank" Page Flow sample (located at <span class="codefrag">BEEHIVE_HOME/samples/netui-blank</span>) is a template for building your own Page Flow applications.  
+
+</p>
+<p>The sample contains everything needed in a basic Page Flow application, except for the runtime JAR files.  To use the template, (1) copy its contents into your project folder, and (2) copy the runtime JARs to the WEB-INF/lib directory.  The following Ant command will copy the necessary runtime JARs to <span class="codefrag">&lt;Project-Folder&gt;/WEB-INF/lib</span>, where <span class="codefrag">&lt;Project-Folder&gt;</span> is the path to your Page Flow project folder: </p>
+<pre class="code">  ant 
+    -f %BEEHIVE_HOME%\ant\buildWebapp.xml 
+    -Dwebapp.dir=&lt;Project-Folder&gt; 
+    deploy.beehive.webapp.runtime</pre>
+</div>
+    
+<div class="attribution"></div>
+</div>
+</td><td width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<!--================= end Content==================-->
+</table>
+</td>
+</tr>
+</table>
+<!--================= end Menu, NavBar, Content ==================-->
+<!--================= start Footer ==================-->
+<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
+<tr>
+<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"><a href="../skin/images/label.gif"></a><a href="../skin/images/page.gif"></a><a href="../skin/images/chapter.gif"></a><a href="../skin/images/chapter_open.gif"></a><a href="../skin/images/current.gif"></a><a href="/favicon.ico"></a></td>
+</tr>
+<tr>
+<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
+          2004&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
+              document.write(" - "+"Last Published: " + document.lastModified);
+            //  --></script></font></td>
+</tr>
+<tr>
+<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
+</tr>
+</table>
+<!--================= end Footer ==================-->
+</body>
+</html>

Modified: incubator/beehive/site/build/site/pageflow/tutorial_pageflow.html
==============================================================================
--- incubator/beehive/site/build/site/pageflow/tutorial_pageflow.html	(original)
+++ incubator/beehive/site/build/site/pageflow/tutorial_pageflow.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="../pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="../controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/reference.html
==============================================================================
--- incubator/beehive/site/build/site/reference.html	(original)
+++ incubator/beehive/site/build/site/reference.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/webservices.html
==============================================================================
--- incubator/beehive/site/build/site/webservices.html	(original)
+++ incubator/beehive/site/build/site/webservices.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/wsm/sample_AddressBook.html
==============================================================================
--- incubator/beehive/site/build/site/wsm/sample_AddressBook.html	(original)
+++ incubator/beehive/site/build/site/wsm/sample_AddressBook.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="../pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="../controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/wsm/sample_Dashboard.html
==============================================================================
--- incubator/beehive/site/build/site/wsm/sample_Dashboard.html	(original)
+++ incubator/beehive/site/build/site/wsm/sample_Dashboard.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="../pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="../controls/sample_controls-blank.html">Control Project</a>
 </li>
             

Modified: incubator/beehive/site/build/site/wsm/sample_wsm-blank.html
==============================================================================
--- incubator/beehive/site/build/site/wsm/sample_wsm-blank.html	(original)
+++ incubator/beehive/site/build/site/wsm/sample_wsm-blank.html	Tue Nov  9 11:50:15 2004
@@ -2,7 +2,7 @@
 <html>
 <head>
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>"Blank" Control Sample</title>
+<title>Web Service Project Sample</title>
 <link type="text/css" href="../skin/page.css" rel="stylesheet">
 </head>
 <body text="#000000" bgcolor="#FFFFFF">
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="../pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="../controls/sample_controls-blank.html">Control Project</a>
 </li>
             
@@ -258,26 +262,28 @@
 <table class="title" summary="">
 <tr>
 <td valign="middle">
-<h1>"Blank" Control Sample</h1>
+<h1>Web Service Project Sample</h1>
 </td>
 </tr>
 </table>
 <ul class="minitoc">
 <li>
-<a href="#intro">Distributable Control Projects</a>
+<a href="#intro">The Web Service Application Template</a>
 </li>
-<li></li>
 </ul>
         
 <a name="N1000C"></a><a name="intro"></a>
-<h3>Distributable Control Projects</h3>
+<h3>The Web Service Application Template</h3>
 <div style="margin-left: 0 ; border: 2px">
-<p>"Mentioning the "control project" model for using controls (perhaps as a 2nd controls tutorial?) -- ie, using the controls-blank template to create a controls JAR that is then importable in multiple webapps (WEB-INF/lib), and using this to help isolate business logic in controls from presentation logic in the webapp proper."            </p>
+<p>Use the "blank" web service sample (located at <span class="codefrag">BEEHIVE_HOME/samples/wsm-blank</span>) is a template for building your own web service applications.  
+
+</p>
+<p>The sample contains everything needed in a basic web service application, except for the runtime JAR files.  To use the template, (1) copy its contents into your project folder, and (2) copy the runtime JARs to the WEB-INF/lib directory.  The following Ant command will copy the necessary runtime JARs to <span class="codefrag">&lt;Project-Folder&gt;/WEB-INF/lib</span>, where <span class="codefrag">&lt;Project-Folder&gt;</span> is the path to your web service project folder: </p>
+<pre class="code">  ant 
+    -f %BEEHIVE_HOME%\ant\buildWebapp.xml 
+    -Dwebapp.dir=&lt;Project-Folder&gt;  
+    deploy.wsm.webapp.runtime</pre>
 </div>
-        
-<a name="N10016"></a>
-<h3></h3>
-<div style="margin-left: 0 ; border: 2px"></div>
     
 <div class="attribution"></div>
 </div>

Modified: incubator/beehive/site/build/site/wsm/tutorial_wsm.html
==============================================================================
--- incubator/beehive/site/build/site/wsm/tutorial_wsm.html	(original)
+++ incubator/beehive/site/build/site/wsm/tutorial_wsm.html	Tue Nov  9 11:50:15 2004
@@ -188,6 +188,10 @@
 </li>
             
 <li>
+<a href="../pageflow/sample_netui-blank.html">Page Flow Project</a>
+</li>
+            
+<li>
 <a href="../controls/sample_controls-blank.html">Control Project</a>
 </li>
             
@@ -264,12 +268,7 @@
 </table>
 <ul class="minitoc">
 <li>
-<a href="#intro">Introduction to the Web Service Tutorial</a>
-<ul class="minitoc">
-<li>
-<a href="#Tutorial+Goals">Tutorial Goals</a>
-</li>
-</ul>
+<a href="#intro">Introduction</a>
 </li>
 <li>
 <a href="#step1">Step 1: Begin the Web Service Tutorial</a>
@@ -341,7 +340,7 @@
 <a href="#Step+4%3A+Add+a+Non-Web+Invokable+Method">Step 4: Add a Non-Web Invokable Method</a>
 <ul class="minitoc">
 <li>
-<a href="#Compile+and+Redeploy+the+Web+Service-N101F6">Compile and Redeploy the Web Service</a>
+<a href="#Compile+and+Redeploy+the+Web+Service-N101FC">Compile and Redeploy the Web Service</a>
 </li>
 <li>
 <a href="#To+Test+the+Non-Web+Invokable+Method">To Test the Non-Web Invokable Method</a>
@@ -354,11 +353,12 @@
 </ul>
         
 <a name="N1000D"></a><a name="intro"></a>
-<h3>Introduction to the Web Service Tutorial</h3>
-<div style="margin-left: 0 ; border: 2px">
-<a name="N10013"></a><a name="Tutorial+Goals"></a>
-<h4>Tutorial Goals</h4>
+<h3>Introduction</h3>
 <div style="margin-left: 0 ; border: 2px">
+<p>This tutorial introduces you to the basic development cycle for Beehive web services.  The tutorial assumes that you are working on a Windows machine.  But, with a little common sense, it is easy to execute the tutorial on a Unix machine.  For example, when you are asked to run the file <span class="codefrag">beehiveUser.cmd</span>, run the file <span class="codefrag">beehiveUser.sh</span> instead.</p>
+<p>
+<strong>Tutorial Goals</strong>
+</p>
 <p>In this tutorial, you will learn:</p>
 <ul>
                     
@@ -370,26 +370,25 @@
                 
 </ul>
 </div>
-</div>
         
-<a name="N1002A"></a><a name="step1"></a>
+<a name="N10030"></a><a name="step1"></a>
 <h3>Step 1: Begin the Web Service Tutorial</h3>
 <div style="margin-left: 0 ; border: 2px">
-<a name="N10030"></a><a name="To+Download+and+Install+J2SE5"></a>
+<a name="N10036"></a><a name="To+Download+and+Install+J2SE5"></a>
 <h4>To Download and Install J2SE5</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>If you do not have J2SE5 installed, visit <a target="_blank" href="http://java.sun.com/j2se/1.5.0/download.jsp">http://java.sun.com/j2se/1.5.0/download.jsp</a>. 
                 </p>
 <p>Download and install the latest version of J2SE5.</p>
 </div>
-<a name="N10041"></a><a name="To+Install+ANT+1.6.2"></a>
+<a name="N10047"></a><a name="To+Install+ANT+1.6.2"></a>
 <h4>To Install ANT 1.6.2</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>If you do not have Ant 1.6.2 installed, visit <a target="_blank" href="http://svn.apache.org/repos/asf/incubator/beehive/trunk/external/ant/apache-ant-1.6.2-bin.zip">http://svn.apache.org/repos/asf/incubator/beehive/trunk/external/ant/apache-ant-1.6.2-bin.zip</a>.  
                 </p>
 <p>Download the ZIP file and unzip it on your machine.</p>
 </div>
-<a name="N10052"></a><a name="To+Download+and+Install+Tomcat+5"></a>
+<a name="N10058"></a><a name="To+Download+and+Install+Tomcat+5"></a>
 <h4>To Download and Install Tomcat 5</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>If you do not have Tomcat 5 installed, visit <a target="_blank" href="http://svn.apache.org/repos/asf/incubator/beehive/trunk/external/tomcat/jakarta-tomcat-5.0.25.zip">http://svn.apache.org/repos/asf/incubator/beehive/trunk/external/tomcat/jakarta-tomcat-5.0.25.zip</a>
@@ -397,13 +396,13 @@
 </p>
 <p>Download the ZIP file and unzip it on your machine.</p>
 </div>
-<a name="N10063"></a><a name="To+Download+and+Install+a+Beehive+Binary+Distribution"></a>
+<a name="N10069"></a><a name="To+Download+and+Install+a+Beehive+Binary+Distribution"></a>
 <h4>To Download and Install a Beehive Binary Distribution</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>Visit [todo: distribution download link] and download the latest binary distribution of Beehive.</p>
 <p>Unzip the distribution file on your machine</p>
 </div>
-<a name="N10070"></a><a name="To+Set+up+the+Development+Environment"></a>
+<a name="N10076"></a><a name="To+Set+up+the+Development+Environment"></a>
 <h4>To Set up the Development Environment</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>Open the directory where you installed the Beehive distribution.  Open the file <span class="codefrag">beehiveUser.cmd</span> in a text editor.  Edit <span class="codefrag">beehiveUser.cmd</span> to fit your local environment.  The following environmental variables must be set to the appropriate paths on your machine:  <span class="codefrag">BEEHIVE_HOME</span>, <span class="codefrag">JAVA_HOME</span>, <span class="codefrag">ANT_HOME</span>, and <span class="codefrag">CATALINA_HOME</span>.  The following example shows how to edit <span class="codefrag">beehiveUser.cmd</span> for a typical environment.</p>
@@ -426,7 +425,7 @@
 </p>
 <p>Leave the command shell open to use throughout the tutorial</p>
 </div>
-<a name="N100AC"></a><a name="Add+a+Manager+Role+to+Tomcat"></a>
+<a name="N100B2"></a><a name="Add+a+Manager+Role+to+Tomcat"></a>
 <h4>Add a Manager Role to Tomcat</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>Adding the manager role to Tomcat server allows you to run deploy related targets in the Ant file <span class="codefrag">runTomcat.xml</span>.  This file is provided as a convenience for managing the Tomcat server.</p>
@@ -442,7 +441,7 @@
   &lt;user username="manager" password="manager" roles="manager"/&gt;
 &lt;/tomcat-users&gt;</pre>
 </div>
-<a name="N100C4"></a><a name="To+Start+the+Tomcat+Server"></a>
+<a name="N100CA"></a><a name="To+Start+the+Tomcat+Server"></a>
 <h4>To Start the Tomcat Server</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>At the command prompt, enter:</p>
@@ -450,15 +449,15 @@
 </div>
 </div>
         
-<a name="N100D4"></a><a name="step_2"></a>
+<a name="N100DA"></a><a name="step_2"></a>
 <h3>Step 2: Install the Web Service Template</h3>
 <div style="margin-left: 0 ; border: 2px">
-<a name="N100DA"></a><a name="Introduction"></a>
+<a name="N100E0"></a><a name="Introduction"></a>
 <h4>Introduction</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>[todo]</p>
 </div>
-<a name="N100E4"></a><a name="Make+a+Project+Folder"></a>
+<a name="N100EA"></a><a name="Make+a+Project+Folder"></a>
 <h4>Make a Project Folder</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>On your C: drive, create a directory called <span class="codefrag">beehive_projects</span>.</p>
@@ -468,7 +467,7 @@
   beehive_projects
     ws_tutorial</pre>
 </div>
-<a name="N100FF"></a><a name="To+Copy+the+Web+Services+Application+Template"></a>
+<a name="N10105"></a><a name="To+Copy+the+Web+Services+Application+Template"></a>
 <h4>To Copy the Web Services Application Template</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>In this step you will copy the Web Services project template into your project folder.  The project template contains a simple web service and a test JSP page.</p>
@@ -485,7 +484,7 @@
       happyaxis.jsp
       index.html</pre>
 </div>
-<a name="N1012D"></a><a name="Copy+the+Runtime+JARs+into+the+Project+Folder"></a>
+<a name="N10133"></a><a name="Copy+the+Runtime+JARs+into+the+Project+Folder"></a>
 <h4>Copy the Runtime JARs into the Project Folder</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>To copy the runtime JARs into your project, run the following Ant command:</p>
@@ -495,7 +494,7 @@
   deploy.wsm.webapp.runtime</pre>
 <p>This will copy the JAR files from <span class="codefrag">BEEHIVE_HOME/lib/wsm</span> into <span class="codefrag">C:/beehive_projects/ws_tutorial/WEB-INF/lib</span>.</p>
 </div>
-<a name="N10145"></a><a name="Examine+the+Blank.jws+Web+Service"></a>
+<a name="N1014B"></a><a name="Examine+the+Blank.jws+Web+Service"></a>
 <h4>Examine the Blank.jws Web Service</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>You are now ready to compile and run your web service.</p>
@@ -522,14 +521,14 @@
 <p>
 <span class="codefrag">@WebService</span> and <span class="codefrag">@WebMethod</span> are "metadata annotations", a.k.a. "annotations".  Annotations allow you to set properties on Java classes and methods.  They can be used to generate compile-time artifacts such as configuration files or Java classes (this is how many Beehive Control annotations work) or to determine some runtime behavior (this is how Beehive Web Service annotations work).  <span class="codefrag">@WebService</span> annotates (or "decorates") the class Blank: this tells the runtime that Blank is a web service that listens for SOAP messages and responds in kind.  <span class="codefrag">@WebMethod</span> annotates the method sayHelloWorld(): this tells the runtime that the method can be invoked over the web.</p>
 </div>
-<a name="N10170"></a><a name="Compile+and+Deploy+the+Web+Service"></a>
+<a name="N10176"></a><a name="Compile+and+Deploy+the+Web+Service"></a>
 <h4>Compile and Deploy the Web Service</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>In this step you will compile the web service and deploy it to Tomcat, all in one step.</p>
 <p>Run the following Ant command:</p>
 <pre class="code">ant -f %BEEHIVE_HOME%\ant\buildWebapp.xml -Dwebapp.dir=C:\beehive_projects\ws_tutorial -Dcontext.path=ws_tutorial build.webapp deploy</pre>
 </div>
-<a name="N10182"></a><a name="To+Run+the+Web+Service+Provided+in+the+Template"></a>
+<a name="N10188"></a><a name="To+Run+the+Web+Service+Provided+in+the+Template"></a>
 <h4>To Run the Web Service Provided in the Template</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>Visit the index.jsp page: <a target="_blank" href="http://localhost:8080/ws_tutorial/index.jsp">http://localhost:8080/ws_tutorial/index.jsp</a>.</p>
@@ -539,10 +538,10 @@
 </div>
 </div>
         
-<a name="N1019A"></a><a name="step_3"></a>
+<a name="N101A0"></a><a name="step_3"></a>
 <h3>Step 3: Add a Parameterized Method to the Web Service</h3>
 <div style="margin-left: 0 ; border: 2px">
-<a name="N101A0"></a><a name="Edit+the+JWS+File"></a>
+<a name="N101A6"></a><a name="Edit+the+JWS+File"></a>
 <h4>Edit the JWS File</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p></p>
@@ -575,14 +574,14 @@
 }</pre>
 <p>The <span class="codefrag">@WebParam</span> you just added lets you pass a String parameter to the method over the web.  The <span class="codefrag">name="greetee"</span> attribute is optional.  If you do not explicitly specify a <span class="codefrag">name</span> attribute, the parameter will take the default name <span class="codefrag">str0</span> [&lt;--- todo: verify].</p>
 </div>
-<a name="N101C3"></a><a name="Compile+and+Redeploy+the+Web+Service"></a>
+<a name="N101C9"></a><a name="Compile+and+Redeploy+the+Web+Service"></a>
 <h4>Compile and Redeploy the Web Service</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>At the command prompt, enter the following Ant command:</p>
 <pre class="code">ant -f %BEEHIVE_HOME%\ant\buildWebapp.xml -Dwebapp.dir=C:\beehive_projects\ws_tutorial -Dcontext.path=ws_tutorial build.webapp redeploy</pre>
 <p>This Ant command compiles the app, undeploys it, and then deploys it.  Calling <span class="codefrag">ant ... redeploy</span> is equivalent to calling <span class="codefrag">ant ... undeploy deploy</span>.</p>
 </div>
-<a name="N101DB"></a><a name="Test+the+Parameterized+Method"></a>
+<a name="N101E1"></a><a name="Test+the+Parameterized+Method"></a>
 <h4>Test the Parameterized Method</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>Enter the following URL in the address bar of your browser. </p>
@@ -599,7 +598,7 @@
 </div>
 </div>
         
-<a name="N101F1"></a><a name="Step+4%3A+Add+a+Non-Web+Invokable+Method"></a>
+<a name="N101F7"></a><a name="Step+4%3A+Add+a+Non-Web+Invokable+Method"></a>
 <h3>Step 4: Add a Non-Web Invokable Method</h3>
 <div style="margin-left: 0 ; border: 2px">
 <p>Edit the file <span class="codefrag">C:/beehive_projects/ws_tutorial/WEB-INF/src/template/Blank.jws</span> so it appears as follows.</p>
@@ -636,14 +635,14 @@
 }
 </pre>
 <p>Note that the method added, sayNothingOverTheWeb(), does not have the annotation @WebMethod, indicating that it cannot be invoked by SOAP messages over the web.</p>
-<a name="N10205"></a><a name="Compile+and+Redeploy+the+Web+Service-N101F6"></a>
+<a name="N1020B"></a><a name="Compile+and+Redeploy+the+Web+Service-N101FC"></a>
 <h4>Compile and Redeploy the Web Service</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>At the command prompt, enter the following Ant command:</p>
 <pre class="code">ant -f %BEEHIVE_HOME%\ant\buildWebapp.xml -Dwebapp.dir=C:\beehive_projects\ws_tutorial -Dcontext.path=ws_tutorial build.webapp redeploy</pre>
 <p>This Ant command compiles the app, undeploys it, and then deploys it.  Calling <span class="codefrag">ant ... redeploy</span> is equivalent to calling <span class="codefrag">ant ... undeploy deploy</span>.</p>
 </div>
-<a name="N1021D"></a><a name="To+Test+the+Non-Web+Invokable+Method"></a>
+<a name="N10223"></a><a name="To+Test+the+Non-Web+Invokable+Method"></a>
 <h4>To Test the Non-Web Invokable Method</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>Enter the following URL in the address bar of your browser. </p>
@@ -661,7 +660,7 @@
   &lt;/soapenv:Body&gt;
 &lt;/soapenv:Envelope&gt; </pre>
 </div>
-<a name="N10232"></a><a name="Step+5%3A+Change+the+SOAP+Style"></a>
+<a name="N10238"></a><a name="Step+5%3A+Change+the+SOAP+Style"></a>
 <h4>Step 5: Change the SOAP Style</h4>
 <div style="margin-left: 0 ; border: 2px">
 <p>The default SOAP style for JSR-181 web services is DOC-literal.  In this step you will change the style to RPC-encoded.</p>
@@ -699,13 +698,13 @@
         return "Not for for Web consumption!";
     }
 }</pre>
-<a name="N10246"></a><a name="Compile+and+Redeploy+the+Web+Service-N10234"></a>
+<a name="N1024C"></a><a name="Compile+and+Redeploy+the+Web+Service-N1023A"></a>
 <h5>Compile and Redeploy the Web Service</h5>
 <div style="margin-left: 0 ; border: 2px">
 <p>At the command prompt, enter the following Ant command:</p>
 <pre class="code">ant -f %BEEHIVE_HOME%\ant\buildWebapp.xml -Dwebapp.dir=C:\beehive_projects\ws_tutorial -Dcontext.path=ws_tutorial build.webapp redeploy</pre>
 </div>
-<a name="N10255"></a><a name="To+Test+the+Non-Web+Invokable+Method-N10242"></a>
+<a name="N1025B"></a><a name="To+Test+the+Non-Web+Invokable+Method-N10248"></a>
 <h5>To Test the Non-Web Invokable Method</h5>
 <div style="margin-left: 0 ; border: 2px">
 <p>Enter the following URL in the address bar of your browser. </p>

Modified: incubator/beehive/site/src/documentation/content/xdocs/controls/sample_controls-blank.xml
==============================================================================
--- incubator/beehive/site/src/documentation/content/xdocs/controls/sample_controls-blank.xml	(original)
+++ incubator/beehive/site/src/documentation/content/xdocs/controls/sample_controls-blank.xml	Tue Nov  9 11:50:15 2004
@@ -2,16 +2,37 @@
 <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "http://forrest.apache.org/dtd/document-v13.dtd">
 <document>
     <header>
-        <title>"Blank" Control Sample</title>
+        <title>Control Project Sample</title>
     </header>
     <body>
-        <section id="intro">
-            <title>Distributable Control Projects</title>
-<p>"Mentioning the "control project" model for using controls (perhaps as a 2nd controls tutorial?) -- ie, using the controls-blank template to create a controls JAR that is then importable in multiple webapps (WEB-INF/lib), and using this to help isolate business logic in controls from presentation logic in the webapp proper."            </p>
-        </section>
-        <section>
-            <title></title>
+            <section id="intro">
+            <title>The Control Application Template</title>
+<p>Use the "blank" Control sample (located at <code>BEEHIVE_HOME/samples/controls-blank</code>) is a template for building your own Control projects.  
+
+</p>
+
+<p>The template contains a basic 'Hello World' control to get you started.  Control projects can be archived in a JAR file and then imported into multiple applications.  Simple import the JAR archive into the application's WEB-INF/lib directory. </p>
+<!--<source>
+netui-blank
+  resources
+    beehive
+      version
+        images
+          error-handling.jpg - header image for the error.jsp page
+        javascript
+          netui-tree.js - JavaScript file to support the &lt;netui:tree> tag
+  WEB-INF
+  src
+    global
+      Global.app - a global Page Flow useful for common operations, error handling, etc.   
+    log4j.xml - the log4j configuration file
+  netui-config.xml - 
+  netui-validator-rules.xml
+  web.xml
+</source>-->
         </section>
+
+
     </body>
     <footer>
         <legal>Java, J2EE, and JCP are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.<br/>

Modified: incubator/beehive/site/src/documentation/content/xdocs/controls/sample_controls-db.xml
==============================================================================
--- incubator/beehive/site/src/documentation/content/xdocs/controls/sample_controls-db.xml	(original)
+++ incubator/beehive/site/src/documentation/content/xdocs/controls/sample_controls-db.xml	Tue Nov  9 11:50:15 2004
@@ -7,7 +7,87 @@
     <body>
     <section>
         <title>Control Programming: Simplifying Access to Resources</title>
-        <p>Control Programming...simplifying access to a resource, in this case a database.</p>
+        <p>Control Programming...simplifying access to a resource, in this case a database.
+        
+        <!--  From Hoi Lam's email:
+        A Database control makes it easy to access a relational database from your Java code using SQL commands. The Database control handles the work of connecting to the database, so you don’t have to understand JDBC to work with a database.
+
+All Database controls are subclassed from the DatabaseControl interface. The interface defines methods that Database control instances can call from an application.
+
+The methods that you add to a Database control execute SQL commands against the database. You can send any SQL command to the database via the Database control, so that you can retrieve data, perform operations like inserts and updates.
+
+A method on a Database control always has an associated SQL statement, which executes against the database when the method is called. The method’s @SQL annotation describes the method’s SQL statement.  The method’s SQL statement may include substitution parameters. These parameters are replaced at runtime with the values that were passed to the method. The names of the substitution parameters in the SQL statement must match those in the method signature, so that the Database control knows which parameter to replace with which value. 
+
+The following example Database control method illustrates using parameter substitution in Database control methods:
+
+    @SQL(statement="INSERT INTO EMPLOYEE " +
+                   "(id, fName, lName, title) " +
+                   "VALUES ({emp.id}, {emp.fName}, {emp.lName}, {emp.title})")
+    public void insertEmployee(Employee emp) throws SQLException;
+
+In the example above, the SQL statement includes the substitution {emp.id}, {emp.fName}, ... These map to the various class variables of the "emp" parameter in the insertEmployee method. When the method is invoked, the values of any referenced parameters are substituted in the SQL statement before it is executed. Note that parameter substitution is case sensitive, so parameters mentioned in substitutions must exactly match the spelling and case of the parameters to the method.
+
+The return type of the database operation is determined by the return type of the Java method. The Database control attempts to format the results in whatever type you have specified for the method to return.  A method of a Database control can return a single value, a single row, or multiple rows. 
+
+When your method returns a single value, its return type must be compatible with the value returned from the query.  The following example looks up an employee's title.
+
+    @SQL(statement="SELECT title FROM EMPLOYEE WHERE id={id}")
+    public String getEmployeeTitle(int id) throws SQLException;
+
+In this example, the title field is of type VARCHAR, so the return value is declared as String. 
+
+When your method returns a single row with multiple fields, its return type can be a user-defined object or a java.util.HashMap object.  When the return type is a user-defined object,  it must contain members with names that match the names of the columns that will be returned by the query. Because database column names are case-insensitive, the matching names are case-insensitive. The class may also contain other members, members not matching any column names will not be set.  The following example declares an Employee class with members corresponding to fields in the Employee table. The findEmployee method returns an object of type Employee:
+
+    @SQL(statement="SELECT * FROM EMPLOYEE WHERE id={id}")
+    public Employee findEmployee(int id) throws SQLException;
+
+    public class Employee
+    {
+        public int id;
+        public String fName;
+        public String lName;
+        public String title;
+    }
+
+When your method returns multiple rows from the database, its return type can be an array, a java.util.Iterator, or a java.sql.ResultSet.  
+When you want to return an Iterator object, you must specify the iteratorElementType element to the @SQL annotation to indicate the underlying type that the Iterator will contain.  The following example returns a iterator of all employees sorted by their last names.
+
+    @SQL(statement="SELECT * FROM EMPLOYEE ORDER BY lName", iteratorElementType=Employee.class, maxRows=500)
+    public Iterator getEmployeesSortedByLastName() throws SQLException;
+
+You can limit the number of rows returned by setting the maxRows element of the @SQL annotation. This element can protect you from very large resultsets that may be returned by very general queries. The default value of maxRow is 1024.
+
+The Database Control defines two annotations: SQL and ConnectionDataSource.
+
+The SQL Annotation specifies the SQL statement and associated attributes that correspond to a method in a Database control.
+
+    public @interface SQL
+    {
+        String statement()              default "";
+        int maxRows()                   default MAXROWS_ALL;
+        @AnnotationMemberTypes.Optional
+        Class iteratorElementType()     default UndefinedIteratorType.class;
+    }
+
+The "statement" element is required. It specifies the SQL (Structured Query Language) statement that will be executed when the associated Database control method is invoked. The statement may contain substitutions of the form {varName}, where paramName is a parameter of the Database control method (or a member accessible from the parameter).
+
+The "iteratorElementType" is required if Database control method return type is java.util.Iterator. It specifies the underlying class of the Iterator that will be returned by the Database control method. 
+
+The "maxRows" element is optional. It sets the maximum number of records to be returned by the query. The maxRows element limits the size of all types of data sets, including Arrays, Iterator, ResultSet, etc. The default value of this element is 1024.
+
+The ConnectionDataSource annotation specifies the data source that the Database control will use to obtain connection.  At the time of writing, this has not been fully implemented yet.  The Database control currently uses the embedded Derby database driver to obtain connection, and it is expecting the value provided for the "jndiName" element to be a database URL.
+
+    public @interface ConnectionDataSource
+    {
+    	String jndiName();   // no default ... value is required
+    }
+ 
+The Database control is current included in the Beehive distribution as a sample control (\samples\controls-db).  Building this control with the Ant script provided will create a dbControl.jar in \samples\controls-db\build\.  You can start creating your own database control extension by simply including this JAR file in your classpath.
+
+        
+         -->
+        
+        </p>
         <section>
             <title>Structure of the Database Control</title>
         </section>    

Added: incubator/beehive/site/src/documentation/content/xdocs/pageflow/sample_netui-blank.xml
==============================================================================
--- (empty file)
+++ incubator/beehive/site/src/documentation/content/xdocs/pageflow/sample_netui-blank.xml	Tue Nov  9 11:50:15 2004
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "http://forrest.apache.org/dtd/document-v13.dtd">
+<document>
+    <header>
+        <title>Page Flow Project Sample</title>
+    </header>
+    <body>
+        <section id="intro">
+            <title>The Page Flow Application Template</title>
+<p>Use the "blank" Page Flow sample (located at <code>BEEHIVE_HOME/samples/netui-blank</code>) is a template for building your own Page Flow applications.  
+
+</p>
+
+<p>The sample contains everything needed in a basic Page Flow application, except for the runtime JAR files.  To use the template, (1) copy its contents into your project folder, and (2) copy the runtime JARs to the WEB-INF/lib directory.  The following Ant command will copy the necessary runtime JARs to <code>&lt;Project-Folder>/WEB-INF/lib</code>, where <code>&lt;Project-Folder></code> is the path to your Page Flow project folder: </p>
+<source>  ant 
+    -f %BEEHIVE_HOME%\ant\buildWebapp.xml 
+    -Dwebapp.dir=&lt;Project-Folder> 
+    deploy.beehive.webapp.runtime</source>
+<!--<source>
+netui-blank
+  resources
+    beehive
+      version
+        images
+          error-handling.jpg - header image for the error.jsp page
+        javascript
+          netui-tree.js - JavaScript file to support the &lt;netui:tree> tag
+  WEB-INF
+  src
+    global
+      Global.app - a global Page Flow useful for common operations, error handling, etc.   
+    log4j.xml - the log4j configuration file
+  netui-config.xml - 
+  netui-validator-rules.xml
+  web.xml
+</source>-->
+        </section>
+    </body>
+    <footer>
+        <legal>Java, J2EE, and JCP are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.<br/>
+	&copy; 2004, Apache Software Foundation
+	</legal>
+    </footer>
+</document>

Modified: incubator/beehive/site/src/documentation/content/xdocs/site.xml
==============================================================================
--- incubator/beehive/site/src/documentation/content/xdocs/site.xml	(original)
+++ incubator/beehive/site/src/documentation/content/xdocs/site.xml	Tue Nov  9 11:50:15 2004
@@ -27,6 +27,7 @@
             <dash label="Petstore Dashboard" href="wsm/sample_Dashboard.html"/>
             <address label="AddressBook/Employee" href="wsm/sample_AddressBook.html"/>
             <db label="Database Control" href="controls/sample_controls-db.html"/>
+            <control-blank label="Page Flow Project" href="pageflow/sample_netui-blank.html"/>
             <control-blank label="Control Project" href="controls/sample_controls-blank.html"/>
             <wsm-blank label="Web Service Project" href="wsm/sample_wsm-blank.html"/>
         </samples>

Modified: incubator/beehive/site/src/documentation/content/xdocs/wsm/sample_wsm-blank.xml
==============================================================================
--- incubator/beehive/site/src/documentation/content/xdocs/wsm/sample_wsm-blank.xml	(original)
+++ incubator/beehive/site/src/documentation/content/xdocs/wsm/sample_wsm-blank.xml	Tue Nov  9 11:50:15 2004
@@ -2,15 +2,38 @@
 <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "http://forrest.apache.org/dtd/document-v13.dtd">
 <document>
     <header>
-        <title>"Blank" Control Sample</title>
+        <title>Web Service Project Sample</title>
     </header>
     <body>
         <section id="intro">
-            <title>Distributable Control Projects</title>
-<p>"Mentioning the "control project" model for using controls (perhaps as a 2nd controls tutorial?) -- ie, using the controls-blank template to create a controls JAR that is then importable in multiple webapps (WEB-INF/lib), and using this to help isolate business logic in controls from presentation logic in the webapp proper."            </p>
-        </section>
-        <section>
-            <title></title>
+            <title>The Web Service Application Template</title>
+<p>Use the "blank" web service sample (located at <code>BEEHIVE_HOME/samples/wsm-blank</code>) is a template for building your own web service applications.  
+
+</p>
+
+<p>The sample contains everything needed in a basic web service application, except for the runtime JAR files.  To use the template, (1) copy its contents into your project folder, and (2) copy the runtime JARs to the WEB-INF/lib directory.  The following Ant command will copy the necessary runtime JARs to <code>&lt;Project-Folder>/WEB-INF/lib</code>, where <code>&lt;Project-Folder></code> is the path to your web service project folder: </p>
+<source>  ant 
+    -f %BEEHIVE_HOME%\ant\buildWebapp.xml 
+    -Dwebapp.dir=&lt;Project-Folder>  
+    deploy.wsm.webapp.runtime</source>
+<!--<source>
+netui-blank
+  resources
+    beehive
+      version
+        images
+          error-handling.jpg - header image for the error.jsp page
+        javascript
+          netui-tree.js - JavaScript file to support the &lt;netui:tree> tag
+  WEB-INF
+  src
+    global
+      Global.app - a global Page Flow useful for common operations, error handling, etc.   
+    log4j.xml - the log4j configuration file
+  netui-config.xml - 
+  netui-validator-rules.xml
+  web.xml
+</source>-->
         </section>
     </body>
     <footer>

Modified: incubator/beehive/site/src/documentation/content/xdocs/wsm/tutorial_wsm.xml
==============================================================================
--- incubator/beehive/site/src/documentation/content/xdocs/wsm/tutorial_wsm.xml	(original)
+++ incubator/beehive/site/src/documentation/content/xdocs/wsm/tutorial_wsm.xml	Tue Nov  9 11:50:15 2004
@@ -7,16 +7,15 @@
     </header>
     <body>
         <section id="intro">
-            <title>Introduction to the Web Service Tutorial</title>
-            <section>
-                <title>Tutorial Goals</title>
+            <title>Introduction</title>
+            <p>This tutorial introduces you to the basic development cycle for Beehive web services.  The tutorial assumes that you are working on a Windows machine.  But, with a little common sense, it is easy to execute the tutorial on a Unix machine.  For example, when you are asked to run the file <code>beehiveUser.cmd</code>, run the file <code>beehiveUser.sh</code> instead.</p>
+                <p><strong>Tutorial Goals</strong></p>
                 <p>In this tutorial, you will learn:</p>
                 <ul>
                     <li>How to create a basic Beehive web service application.</li>
                     <li>How to use (JSR 175 and 181) metadata annotations.</li>
                     <li>How to deploy and test a web service to Tomcat</li>
                 </ul>
-            </section>
         </section>
         <section id="step1">
             <title>Step 1: Begin the Web Service Tutorial</title>