husted      02/02/19 16:49:36

  Added:       doc/proposals workflow.xml todo-1.1.xml todo-1.0.xml
                        release-plan-1.0b1.xml release-plan-1.0.1.xml
                        project.xml
  Log:
  Commit documentation changes from this weekend.
  
  Revision  Changes    Path
  1.1                  jakarta-struts/doc/proposals/workflow.xml
  
  Index: workflow.xml
  ===================================================================
  <?xml version="1.0"?>
  <document url="./proposal-workflow.xml">
  
    <properties>
      <author>Craig R. McClanahan</author>
      <title>Proposal - Workflow Management System</title>
    </properties>
  
    <body>
  
  
    <section name="Background and Goals">
  
    <p>Struts 1.0 has become an increasingly popular platform for constructing
    web applications based on a Model-View-Controller type design pattern (also
    known as the <em>Front Controller</em> pattern.  It has achieved this
    popularity for many reasons, but key among them have been:</p>
    <ul>
    <li>The simplicity of the basic organizational principles (once you
        understand them)</li>
    <li>The principle of <em>logical naming</em> to assist in isolating
        the view layer and the model layer, so that changes in one do not
        have to impact the other</li>
    <li>A rich set of tools to assist in creating pages with dynamic content
        exposed by the model layer through JavaBeans</li>
    </ul>
  
    <p>One consequence of the original Struts design, however, is that the
    framework does not provide much assistance in organizing business
    transactions that require more than one interaction with the user (i.e.
    they span more than one JSP page and/or Action).  Applications are left
    to manage navigation issues, as well as deal with ActionForms whose
    logical contents crosses page boundaries.</p>
  
    <p>The original Struts design materially assists page designers in creating
    dynamic pages, while protecting them from having to be very concerned with
    the business logic -- other than the names of the JavaBeans used to
    communicate model layer data to the presentation layer.  However, Struts 1.0
    still requires a Java developer to be involved on the business logic side
    (even if all of the functional logic is already available in Java classes)
    in order to create the Action classes.</p>
  
    <p>The purpose of this <em>Workflow Management System</em> proposal is to
       address some of these consequences.  In particular, it intends to address
       the following set of goals:</p>
    <ul>
    <li>Create a means where multiple-user-interaction business processes can be
        configured (scripted), including support for conditional processing
        and branching.</li>
    <li>Support scripting elements that lets business application experts,
        who are not necessarily Java developers, can integrate pre-existing
        business functionality that is available as public methods on
        arbitrary Java classes.</li>
    <li>Assist page designers in creating the user interface elements that
        correspond to navigation links within, or between, work flows.</li>
    </ul>
  
    </section>
  
  
    <section name="Use Cases and Examples">
  
      <p>To give a flavor of what scripted workflow activities might look like,
      it is useful to consider some possible use case scenarios.  The
      syntax that is shown for the examples should be considered as
      illustrative of what should be possible, rather than normative.
      No rigorous attempt has been made to guarantee consistency
      between (or even within) these examples.</p>
  
      <subsection name="Application Logon">
  
        <p>The example application included with Struts (like many other
        web applications) uses application-managed security, including
        a logon form.  Consider that a business logic bean might be available
        (in some scope under key <code>authenticator</code>)
        that knows how to authenticate users given a username and password.
        It could be utilized to script application logon like this:</p>
  
  <pre>
  &lt;activity id="Application Logon"&gt;
  
    &lt;-- Display the logon form (web framework independent) --&gt;
    &lt;web:forward id="display" page="/logon.jsp"/&gt;
  
    &lt;-- Authenticate the username and password, returning a Principal
        if accepted, or null if not --&gt;
    &lt;web:set  name="username" value="$parameter:username"/&gt;
    &lt;web:set  name="password" value="$parameter:password"/&gt;
    &lt;core:invoke bean="authenticator" method="authenticate"&gt;
      &lt;core:param type="java.lang.String" value="$username"/&gt;
      &lt;core:param type="java.lang.String" value="$password"/&gt;
      &lt;core:return name="principal"/&gt;
    &lt;/core:invoke&gt;
  
    &lt;-- If no Principal was returned, branch back to the logon form --&gt;
    &lt;core:if expr="$principal == null"&gt;
      &lt;web:set name="error" value="$messages.lookup('invalid.logon')"/&gt;
      &lt;core:branch idref="display"/&gt;
    &lt;/core:if&gt;
  
    &lt;-- Exit to the "Main Menu" workflow --&gt;
    &lt;core:goto name="Main Menu"/&gt;
  
  &lt;/activity&gt;
  </pre>
  
      </subsection>
  
  
      <subsection name="Simple Multi-Page Wizard">
  
        <p>Many complex data entry operations can be simplified (from the
        user's point of view) by dividing them up into a series of simple
        dialog pages that ask a few (often one) question that leads ultimately
        to a completed set of information required to process a request.
        In many cases, each page of the interaction will have navigation
        controls so that the user can short cut to immediate execution,
        or cancel the entire interaction.  Such an interaction might be
        modelled like this:</p>
  
  <pre>
  &lt;activity id="Simple Wizard Application"&gt;
  
    &lt;!-- Display the first page of the interation --&gt;
    &lt;!-- (Using Struts-specific logical-to-physical mapping) --&gt;
    &lt;struts:forward id="page1" name="Simple Wizard Page 1"&gt;
  
    &lt;!-- Process navigation input from the first page --&gt;
    &lt;!-- (Can do something much like this framework-independently too) --&gt;
    &lt;struts:navigate&gt;
      &lt;struts:branch control="CANCEL" idref="cancel"/&gt;
      &lt;struts:branch control="FINISH" idref="finish"/&gt;
      &lt;struts:branch control="NEXT"   idref="page2"/&gt;
    &lt;/struts:navigate&gt;
  
    &lt;!-- Display the second page of the interation --&gt;
    &lt;struts:forward id="page2" name="Simple Wizard Page 2"&gt;
  
    &lt;!-- Process navigation input from the second page --&gt;
    &lt;struts:navigate&gt;
      &lt;struts:branch control="CANCEL" idref="cancel"/&gt;
      &lt;struts:branch control="FINISH" idref="finish"/&gt;
      &lt;struts:branch control="NEXT"   idref="page3"/&gt;
      &lt;struts:branch control="PREV"   idref="page1"/&gt;
    &lt;/struts:navigate&gt;
  
    &lt;!-- Display the third page of the interation --&gt;
    &lt;struts:forward id="page3" name="Simple Wizard Page 3"&gt;
  
    &lt;!-- Process navigation input from the third page --&gt;
    &lt;struts:navigate&gt;
      &lt;struts:branch control="CANCEL" idref="cancel"/&gt;
      &lt;struts:branch control="FINISH" idref="finish"/&gt;
      &lt;struts:branch control="PREV"   idref="page2"/&gt;
    &lt;/struts:navigate&gt;
  
    &lt;!-- Process the FINISH navigation control as appropriate --&gt;
    &lt;xxx:yyy id="finish" .../&gt;
    &lt;core:goto name="Main Menu"/&gt;
  
    &lt;!-- Process the CANCEL navigation control as appropriate --&gt;
    &lt;xxx:yyy id="cancel" .../&gt;
    &lt;core:goto name="Main Menu"/&gt;
  
  &lt;/activity&gt;
  </pre>
  
  
        <p>Not illustrated above, but also interesting to explore, would be
        the situation where choices on one page affect whether some pages
        in the overall flow might be skipped.</p>
  
      </subsection>
  
  
    </section>
  
  
    <section name="User Visible Features">
  
  
      <p>Workflow system capabilities will be exposed to applications through
      Java APIs that represent both the static description of particular
      activities and the dynamic current state of a computation.  Object
      factory and pluggable implementation patterns shall be used where
      appropriate to maximize the generality and flexibility of the system.</p>
  
  
      <subsection name="Workflow Management System Implementation Objects">
  
        <p>The following classes represent the primary components of the
        workflow management system:</p>
  
        <p><strong>Registry</strong> - Collection into which multiple
        <em>Process</em> and <em>Activity</em> static descriptions can be
        stored and retrieved by String-valued keys.</p>
  
        <p><strong>Process</strong> - The static description of a tree of
        business activities that are executed in a nested fashion, often by
        separate individuals (or application systems).</p>
  
        <p><strong>Activity</strong> - The static description of a sequence
        of Steps that are generally executed by a single individual (or
        application system), within a reasonably short period of time.</p>
  
        <p><strong>Step</strong> - The static description of an individual
        task to be performed as a discrete, indivisible, unit.  Steps can
        also be nested inside other steps, to provide for looping and
        conditional processing.  A rich set of built-in Step implementations
        shall be provided (including powerful capabilities such as the
        execution of an abitrary method on an arbitrary Java object), and
        mechanisms to extend the set of supported Step implementations
        allows arbitrary extensibility.</p>
  
        <p><strong>Context</strong> - The dynamic state of a computation
        through an <em>Activity</em> (or a set of nested <em>Activities</em>),
        including provision of storage space for JavaBeans produced and
        consumed by other Steps.  Contexts keep track of the current Step
        being executed, so that activity processing can be suspended and
        resumed later.</p>
  
        <p><strong>Scope</strong> - A <code>Map</code> into which
        arbitrary Java objects can stored and retrieved by String-valued keys.
        Context support a number of individual Scopes, each of which can be
        plugged in from application logic, to provide integration into
        existing application functionality.  For example, in a web application
        imlementation, Scopes will generally be mapped directly to request
        attributes, session attributes, and servlet context attributes as
        provided by the Servlet API.</p>
  
      </subsection>
  
  
      <subsection name="Built-In Steps">
  
        <p>A rich variety of built-in <em>Step</em> implementations (and
        corresponding XML elements in specified namespaces) will be provided
        as part of the basic workflow engine, and as part of the associated
        Struts integration of this engine.</p>
  
        <p><strong>Bean Interaction</strong> - The ability to get and set
        JavaBeans in arbitrary Scopes (mapped via the Context to real collections
        of objects).</p>
  
        <p><strong>Control Flow</strong> - Conditionals and looping, where
        control flow Steps can contain nested sets of Steps to an arbitrary
        degree.</p>
  
        <p><strong>Method Execution</strong> - Execute arbitrary public methods
        of beans stored in some Scope, passing specified arguments (expressions
        or bean references) and returning the method's result (if any) to a
        named bean in some Scope.  To maximize usefulness of the workflow
        system in composing applications, <strong>no</strong> restrictions
        should be placed on the object types these Steps can interact with.</p>
  
        <p><strong>Activity Management</strong> - GOTO a named Activity
        (exiting the current one), CALL a named Activity (resuming the current
        one when the called Activity returns, RETURN from a called Activity,
        EXIT the Activity system.</p>
  
        <p><strong>User Interaction</strong> - Suspend workflow execution to
        interact with the user in some application specific way.  For example,
        a web application would display a page and wait for input to be
        submitted before resuming the workflow.</p>
  
        <p><strong>Specialized Processing</strong> - Prebuilt Steps for common
        processing functions such as XSLT transformations, performing
        arbitrary SQL queries, sending mail, and so on.</p>
  
      </subsection>
  
  
    </section>
  
  
    <section name="Implementation Notes">
  
    <p>The implementation of this proposal will be divided into three major
    development layers:</p>
    <ul>
    <li>Core workflow management system capabilities and built in Step
        implementations that are independent of application environment.
        [Code in jakarta-commons]</li>
    <li>Specialized implementation of workflow management system components
        that integrate with the Servlet API in a manner that is independent
        of any specific application framework.  [Code in jakarta-commons]</li>
    <li>Specialized implementation of workflow management system components
        that is tightly integrated with Struts's internal architecture and
        custom tag libraries.  [Code in jakarta-struts]</li>
    </ul>
  
    <p>The workflow management system will support the general concept of
    <em>Scopes</em> in which beans can be stashed, with pluggable
    implementations for integration into different working environments.
    None of the APIs in the workflow engine itself will have any reference
    to the web layer (i.e. no imports of <code>javax.servlet.*</code>).</p>
  
      <blockquote><em>
      <p>Suitable object factory and pluggability APIs will be included
      to guarantee extensibility of the basic framework.</p>
      </em></blockquote>
  
    <p>Scripting of business transactions will be codified in XML documents
    that conform to an appropriate DTD and/or schema.  The XML technology
    that is used will facilitate extensible definitions of <em>Steps</em>
    and other components, in both the XML description of these components and
    in the set of Java objects that implements them.</p>
  
      <blockquote><em>
      <p>When designing the detailed syntax of the XML representation
      of Steps, consider whether it is feasible for advanced development
      tools to "compile" activities into individual classes to optimize
      overall performance.</p>
      </em></blockquote>
  
      <blockquote><em>
      <p>When designing the detailed syntax of the XML representation
      of Steps, consideration should be given to emulating the syntax
      of other XML applications that are similar in spirit or detail
      to the concepts of scripting a business transaction.  Useful
      models to consider include:</p>
      <ul>
      <li><a href="http://www.w3.org/TR/xslt";>XSL Transformations (XSLT)</a>
          - Includes control flow mechanisms that are becoming widely
          known and understood, which could be mimiced.</li>
      <li><a href="http://jakarta.apache.org/taglibs/jsptl-doc/intro.html";>
          JSP Standard Tag Library (Early Access)</a> - The design goals for
          many of the JSP custom tags in this library (produced by the
          JSR-052 expert group under the Java Community Process) are similar
          enough to provide a useful model for conditionals, looping, and
          interaction with objects in arbitrary scopes.</li>
      </ul>
      </em></blockquote>
  
      <blockquote><em>
      <p>To maximize the usefulness of built-in actions, an expression
      language that knows how to manipulate objects in the Scopes associated
      with the current Context will need to be supported.  Useful models to
      consider include:</p>
      <ul>
      <li><a href="http://www.w3.org/TR/xpath";>XML Path Language (XPath)</a>
          - Will be familar to XML-oriented application developers because
          it is used throughout the suite of XML specifications.</li>
      <li>JavaScript like expression languages - Will be familiar to page
          developers (as well as Struts developers familiar with the
          nested and indexed property accessor syntax of many Struts tags).</li>
      </ul>
      </em></blockquote>
  
      <blockquote><em>
      <p>From the workflow script developer's point of view, XML namespaces
      will be used to introduce extended sets of Step implementations.  There
      will need to be mechanisms to map a particular namespace to a set of
      legal XML elements (within that namespace) and corresponding Java
      classes that provide the functionality for those Steps.</p>
      </em></blockquote>
  
    <p>The web layer integration will include a mechanism to map scopes (from
    the workflow perspective) into the standard <em>request</em>,
    <em>session</em>, and <em>application</em> scopes of the web layer.
    Thus, workflow scripts will be able to place beans in appropriate
    scopes such that JSP pages can directly pull that data into the presentation,
    much as Struts Actions (and the business logic classes that are called by
    those Actions) can place beans there in a Struts 1.0 based application.
    Utilizing these capabilities, application developers will be able to
    "script" the business logic requirements of many applications, by
    combining functional logic already available as methods on business
    logic beans, without having to involve Java programmers to create new
    Actions (or otherwise synthesize business logic out of the constituent
    pieces).</p>
  
      <blockquote><em>
      <p>Components in the web layer integration may import APIs from the
      Servlet and JSP specifications, but not from any application specific
      framework.  Framework-specific integration will occur on top of the
      generic web layer integration.</p>
      </em></blockquote>
  
    <p>In addition, the Struts integration will include a small custom tag
    library will be included, so that page
    developers can easily create navigational links and controls.  Examples
    of such controls include links to the "next", "previous", and "finish"
    pages of a wizard dialog, a "cancel" button to exit a workflow early, or
    an "invoke" button to invoke a new workflow as a subroutine, and then
    return to the current step of the original workflow.  Utilizing these
    capabilities, page developers can create the individual visible pieces
    of a work flow dialog, without having to be involved in navigational
    complexities.</p>
  
    </section>
  
  
    </body>
  
  </document>
  
  
  
  1.1                  jakarta-struts/doc/proposals/todo-1.1.xml
  
  Index: todo-1.1.xml
  ===================================================================
  <?xml version="1.0"?>
  <document url="./todo-1.1.xml">
  
    <properties>
      <author>Craig R. McClanahan</author>
      <title>Features We'd Like To See - The Struts Project Wish List</title>
    </properties>
  
    <body>
  
  
    <section name="Introduction" href="Intro">
  
    <p>Application frameworks, like the applications we build with them,
    never seem to be completed.  The following major areas of improvement
    are being considered for implementation in a future version 
    of Struts. </p>
  
    <p>Which features are implemented first depends greatly on 
    individual developers becoming involved in the process. Many key 
    features in Struts grew out of code first distributed on the mailing 
    list. If there is a feature here that you need, or already have, please 
    start a thread and show us the code!</p>
  
    <p align="center"><a href="userGuide/kickstart.html#release"><b>So, when is the 
next release coming out?</b></a></p>
  
    <p>An external development that is likely to affect the development of
    Struts 1.1 will be the emerging Standard Tag Library, being produced under
    the <a href="http://www.jcp.org/jsr/detail/52.jsp";>Java Community Process</a>. 
    A very early release is now available at 
    <a href="http://jakarta.apache.org/taglibs/doc/jsptl-doc/intro.html";>Jakarta 
    Taglibs</a>.</p>
  
    <p>The existing Struts tags were used as input to the standardization process,
    but in the case where standard tags with similar functionality are adopted,
    we should migrate Struts tags to maintain maximum compatibility with the
    new standard library.</p>
  
    </section>
  
    <section name="Pending Tasks"  href="pending">
    
    <ul>
    <li><a href="proposal-workflow.html">Workflow</a></li>
    <li><a href="http://husted.com/struts/resources/struts-security.htm";>Role Based 
Actions</a></li>
    <li><a href="http://husted.com/struts/resources/logic-niallp.htm";>If/Else/Switch 
tags</a></li>
    <li><a href="http://husted.com/struts/resources/codemaker.htm";>Code 
generator</a></li>
    </ul>
   
    <p>See also the Tiles, Validator, and Service Manager packages in the contrib 
folder.</p>
  
    <p>The wish list tasks are divided into functional areas that correspond
    to the major components of the Struts Framework. References in square
    brackets are the Java package containing the corresponding source code. 
    Listing a task here is not a guarantee that it will be present in the 
    next release. Again, whether a wish becomes a feature depends on whether 
    there are volunteers who choose to work on the task. </p>
  
    </section>
  
    <task-list name="Struts Documentation" href="Docs">
  
      <info>
        <p>Omnibus task list for items related to the Struts Documentation,
        which do not have direct relationships with code bases.</p>
      </info>
  
      <task name="Taglib Chapters for User Guide">
      <info>
       Incorporate the Taglib documentation and Developer Guides into the User Guide, 
       by including the source of these from their present locations.
      </info>   
      </task>
  
      <task name="TODO stylesheet">
      <info>
       Revise TODO stylesheet to add Status and Source elements, and to support mailto 
       links for volunteers in Assigned element. All elements should support hypertext 
       links. 
       </info>   
      </task>
  
      <task name="Taglib stylesheet">
      <info>
       Add support for "since" element for tracking changes to tags between versions.
      </info>   
      </task>
  
      <task name="Contribution Reviews">
      <info>
       Area to post articles about contributions from Struts developers.
      </info>   
      </task>
  
      <task name="Expanded FAQ">
      <info>
       Area to post a "choice" FAQ of truly common questions.
      </info>   
      </task>
  
    </task-list>
  
  
    <task-list name="Struts Example Application" href="Example">
  
      <info>
        <p>An example web application utilizing the Struts framework and
        custom tag library.</p>
      </info>
  
      <task name="Better Database Support">
        <info>
          <p>Use a "real" database of some sort (while still making Struts
          easy to install.</p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Ted Husted</a>
        </assigned>
  
      </task>
  
      <task name="Locale Switching">
        <info>
          <p>Add support for switching Locales on the fly to the Struts
          example application.</p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Ted Husted</a>
        </assigned>
      </task>
  
    </task-list>
  
  
    <task-list name="MVC Framework [org.apache.struts.action]" href="MVC">
  
      <info>
        <p>This is the core controller servlet, with support for the developer's
        action and form bean classes, plus the supporting data structures.</p>
      </info>
  
      <task name="Remove Deprecations">
        <info>
          <p>Clean out all 1.0 deprecated classes and files, framework-wide.</p>
        </info>
      </task>
  
  
      <task name="ActionForms With Dynamic Properties">
        <info>
          <p>Create mechanisms to support ActionForm implementations where the
          set of properties to be included is dynamically calculated, in addition
          to the current support for properties that are accessed through the
          Java Reflection APIs and are therefore fixed.</p>
        </info>
      </task>
  
      <task name="Workflow Processing">
        <info>
          <p>Create a mechanism by which business logic (now encoded in
          <code>Action</code> classes) can be subdivided into individual work
          <code>Tasks</code> that are combined according to configuration
          information (including flow control and iteration support) in the
          <code>struts-config.xml</code> file.  Support for workflow processing
          would be provided by a set of standard <code>Actions</code>, and
          will offer an alternative mechanism (not a replacement of Actions)
          to organizing your business logic.</p>
          <p><a href="proposal-workflow.html"><b>A Workflow Proposal is 
pending.</b></a></p>    
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Craig Tataryn</a>,
          <a href="mailto:[EMAIL PROTECTED]";>Nic Hobbs</a>
        </assigned>
      </task>
  
      <task name="PropertyEditor Support">
        <info>
          <p>Add support for JavaBeans that include a <code>PropertyEditor</code>
          class for conversion to and from the string representation used in an
          HTML input field.  This support should operate in a manner consistent
          with the way that standard JSP tags do in JSP 1.2.</p>
        </info>
      </task>
  
      <task name="Event and Listener Model">
        <info>
          <p>Retrofit the Struts controller framework with supports for event
          generation (and the corresponding registration of listeners) for all
          interesting events created by the framework.  The list of interesting
          events will undoubtedly be influenced by changes related to other
          work items on this list (such as workflow processing and standard
          validations), so work on this should be coordinated with those
          changes.</p>
          <p>
          [STRUTS-DEV, Robert Leland, 10/10/2000]
          [STRUTS-DEV, David Geary, 12/20/2000]
          [STRUTS-USER, Ted Husted, 12/23/2000]
          </p>
        </info>
      </task>
  
      <task name="EJB Design Patterns">
        <info>
          <p>Begin adding design patterns and support for easy integration with
          Enterprise JavaBeans (EJBs) for encapsulation of business logic and
          application data.</p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Mike Schachter</a>
        </assigned>
      </task>
  
      <task name="HTML No-Cache Support">
        <info>
          <p>Improve the current Struts support for generating no-cache headers
          to provide finer-grained, configurable control on a per-page basis.
          </p>
          <p>
          [STRUTS-DEV, Hou Yunfeng, 10/07/2000]
          [STRUTS-DEV, Matthias Kerkhoff, 11/18/2000]
          </p>
        </info>
      </task>
  
      <task name="Role-Based Action Execution">
        <info>
          <p>Add the ability to require the current user to be in a particular
          security role before they can execute a particular action.
          </p>
          <p>
          <a href="http://husted.com/struts/resources/struts-security.htm";><b>A 
proposed extension is available.</b></a>
          </p>
          <p>
          [STRUTS-DEV, James W., 01/23/2001]
          </p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Nic Hobbs</a>
        </assigned>
      </task>
  
    </task-list>
  
    <task-list name="Bean Tag Library [org.apache.struts.taglib.bean]"
               href="BEAN">
  
      <info>
        <p>This tag library contains basic tags useful in manipulating JavaBeans
        and their properties.  It includes support for getting and setting bean
        properties using simple, nested, and subscripted accessor expressions.
        </p>
      </info>
  
      <task name="XPath Support">
        <info>
          <p>Update all of the relevant tags to include property accessor support
          using the syntax specified by the XPath standard (www.w3c.org).</p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Dave Bettin</a>
        </assigned>
      </task>
  
      <task name="XML DOM Support">
        <info>
          <p>Update all of the relevant tags to get and set attributes from a
          Java object that implements the XML Document Object Model, as well as
          from the current tree of JavaBean objects.  How the underlying data
          object is stored should be transparent to page writers using these
          tags.</p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Dave Bettin</a>
        </assigned>
      </task>
  
      <task name="XML DOM / JDBC RowSet Support">
        <info>
          <p>Update all of the relevant tags to get and set attributes from a
          JDBC RowSet (or ResultSet) object, as well as from XML DOM objects and
          the current tree of JavaBean objects.  How the underlying data object
          is stored should be transparent to page writers using these tags.
          </p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Dave Bettin</a>
        </assigned>
      </task>
  
      <task name="Formatting Support">
        <info>
          <p>Add the ability to use formatting patterns (suitably localized) for
          presenting numbers, dates, times, timestamps, and so on via formatted
          patterns.</p>
          <p>
          [STRUTS-DEV, Oleg Alexeev, 10/27/2000]
          [STRUTS-USER, Ned Seagoon, 12/11/2000]
          [STRUTS-DEV, Ned Seagoon, 12/13/2000]
          [STRUTS-USER, Ned Seagoon, 01/04/2001]
          </p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Dave Bettin</a>
        </assigned>
      </task>
  
    </task-list>
  
  
    <task-list name="HTML Tag Library [org.apache.struts.taglib.html]"
               href="HTML">
  
      <info>
      <p>This tag library contains tags useful in preparing web applications that
      use HTML forms as their primary mechanism for user data entry, as well as
      support for internationalized and localized applications.</p>
      </info>
  
      <task name="Radio Button Groups">
        <info>
          <p>Add a new tag that supports generation of groups of radio buttons.
          </p>
          <p>
          [STRUTS-DEV, Wellington Silva, 08/28/2000]
          </p>
        </info>
      </task>
  
      <task name="Improve Options Tag">
        <info>
          <p>Improve the mechanism by which you define values and corresponding
          labels for <code>&lt;html:options&gt;</code>.</p>
          <p>
          [STRUTS-DEV, David Winterfeldt, 07/27/2000]
          [STRUTS-DEV, David Winterfeldt, 08/02/2000]
          [STRUTS-DEV, Andy Boyko, 11/15/2000]
          [STRUTS-DEV, Andy Boyko, 12/07/2000]
          </p>
        </info>
      </task>
  
      <task name="Additional Attributes">
        <info>
          <p>Support additional HTML 4.0.1 attributes (such as "disabled",
          "readonly", "wrap" on textarea)
          where appropriate.</p>
          <p>
          [STRUTS-USER, , 08/23/2000]
          </p>
        </info>
      </task>
  
      <task name="Improved Iteration Support">
        <info>
          <p>Improve the ability to use the <code>&lt;logic:iterate&gt;</code>
          tag over a collection, and generate a set of input fields for each
          member of the collection (perhaps auto-generating a subscript?).
          A significant use case is master-detail relationships (say, a
          customer and their current orders) where you allow editing of any
          and all fields.</p>
          <p>
          [STRUTS-USER, Lars, 12/06/2000]
          [STRUTS-USER, Chandan Kulkarni, 12/26/2000]
          </p>
        </info>
      </task>
  
      <task name="Multi-Page Form Support">
        <info>
          <p>Create design patterns and improved internal support for forms that
          span multiple pages.</p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Nic Hobbs</a>
        </assigned>
      </task>
  
    </task-list>
  
    <task-list name="Logic Tag Library [org.apache.struts.taglib.logic]"
               href="Logic">
  
      <info>
        <p>This tag library provides mechanisms to conditionally process
        nested body content based on a variety of logical conditions.</p>
      </info>
  
      <task name="'Else' and 'Else If' Capability and Other Conditional Structures">
        <info>
          <p>Add "else" and "else if" constructs to the existing conditional
          tags, in some reasonable format.</p>
          <p>Add conditional tags that emulate the "case" or "switch"
          capability of many programming languages.</p>
          <p>NOTE: Pending the outcome of the JSPTL, this functionality will 
          <b>not</b> be added to the Struts-Logic tags. However, a 
          <a href="http://husted.com/struts/resources/logic-niallp.htm";><b>contributor 
           taglib</b></a> is available.</p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Niall Pemberton</a>
        </assigned>
      </task>
  
      <task name="Iterating Parallel Collections">
        <info>
          <p>Enhance <code>&lt;logic:iterate&gt;</code>, or provide a new
          tag, to iterate over multiple collections in parallel.</p>
          <p>
          [STRUTS-DEV, Jeff R., 08/03/2000]
          </p>
        </info>
      </task>
  
    </task-list>
  
  
    <task-list name="WML Tag Library [org.apache.struts.taglib.wml]"
               href="WML">
  
      <info>
      <p>This tag library will contain tags useful in preparing web applications
      similar to those supported by the HTML tag library, but render output that
      is well-formed XML in accordance with WML specifications.</p>
      </info>
  
    </task-list>
  
  
    <task-list name="XFORMS Tag Library [org.apache.struts.taglib.xforms]"
               href="xforms">
  
      <info>
        <p>This potential new tag library provides access to facilities in the
        emerging XForms standards.</p>
      </info>
  
      <task name="Generalized Form Handling">
        <info>
          <p>Consider how to support more generalized definitions of forms and
          their fields, perhaps based on emerging XForms standards.</p>
        </info>
      </task>
  
    </task-list>
  
  
    <task-list name="XHTML Tag Library [org.apache.struts.taglib.xhtml]"
               href="XHTML">
  
      <info>
      <p>This tag library will contain tags useful in preparing web applications
      similar to those supported by the HTML tag library, but render output that
      is well-formed XML in accordance with the XHTML 1.0 specification.</p>
      </info>
  
    </task-list>
  
  
    <task-list name="Tools Support [org.apache.struts.tools]"
               href="Tools">
  
      <info>
        <p>This package contains code generators and other tools that
        facilitate the creation of Struts-based applications.  Further
        subdivision into specialized packages should be performed as
        appropriate.</p>
      </info>
  
      <task name="XML --&gt; ActionForm Code Generator">
        <info>
          <p>Create a tool that takes an XML-based description of the
          properties of the form bean, and automatically generates
          the corresponding Java class.</p>
          <p><a href="http://husted.com/struts/resources/codemaker.htm";><b>A 
          contributor extension is now available.</b></a></p>
          <p>
          [STRUTS-DEV, Mark Wutka, 06/01/2000 and 06/16/2000]
          </p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Martin Cooper</a>
          <a href="[EMAIL PROTECTED]">Ravindran Ramaiah</a>
        </assigned>
      </task>
  
    </task-list>
  
  
    <task-list name="Utility Classes [org.apache.struts.util]" href="Util">
  
      <info>
        <p>This package contains a variety of utility classes useful within
        Struts as well as in stand-alone applications.</p>
      </info>
  
      <task name="XmlMessageResources">
        <info>
          <p>Implementation of <code>MessageResources</code> and
          <code>MessageResourcesFactory</code> that loads message keys
          and strings from one or more XML resources or files.</p>
          <p>
          [STRUTS-DEV, Scott Sayles, 01/07/2000]
          </p>
        </info>
      </task>
  
      <task name="Enhanced Collections Support">
        <info>
          <p>Improve support in <code>BeanUtils</code>,
          <code>ConvertUtils</code>, and <code>PropertyUtils</code> for property
          values that implement <code>Collection</code>, <code>List</code>, or
          <code>Set</code>, treating them in a manner similar to the way that
          indexed or array-valued properties are handled.</p>
          <p>
          [Bugzilla #640]
          </p>
        </info>
      </task>
    </task-list>
  
    <task-list name="Unit Test Suites" href="Unit Tests">
  
      <info>
        <p>Unit test components compatible with the JUnit and Cactus testing
        frameworks, to test and validate internal APIs of the Struts framework.
        Volunteers will typically agree to develop tests for an entire package
        within the Java source code of Struts.
        </p>
      </info>
  
      <task name="Action">
        <info>
          <p>Unit tests for the <code>org.apache.struts.action</code> package.</p>
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Rob Leland</a>
        </assigned>
      </task>
  
      <task name="Actions">
        <info>
          <p>Unit tests for the <code>org.apache.struts.actions</code> package.</p>
        </info>
      </task>
  
      <task name="Taglib.Bean">
        <info>
          <p>Unit tests for the <code>org.apache.struts.taglib.bean</code> package.</p>
        </info>
      </task>
  
      <task name="Taglib.Html">
        <info>
          <p>Unit tests for the <code>org.apache.struts.taglib.html</code> package.</p>
        </info>
      </task>
  
      <task name="Taglib.Logic">
        <info>
          <p>Unit tests for the <code>org.apache.struts.taglib.logic</code> 
package.</p>
        </info>
      </task>
  
      <task name="Taglib.Template">
        <info>
          <p>Unit tests for the <code>org.apache.struts.taglib.template</code> 
package.</p>
        </info>
      </task>
  
      <task name="Upload">
        <info>
          <p>Unit tests for the <code>org.apache.struts.taglib.upload</code> 
package.</p>
        </info>
      </task>
  
      <task name="Util">
        <info>
          <p>Unit tests for the <code>org.apache.struts.util</code> package.</p>
        </info>
      </task>
  
    </task-list>
  
  
    <task-list name="Additional Possibilities" href="Additional">
  
      <info>
        <p>This section is a catch-all for additional areas of functionality
        to be investigated for inclusion into Struts.</p>
      </info>
  
      <task name="Coarse Grain Components">
        <info>
          [STRUTS-DEV, Cedric Dumoulin, 10/03/2000]
        </info>
      </task>
  
      <task name="Multidimensional Properties">
        <info>
          [STRUTS-DEV, Eric, 11/07/2000]
        </info>
      </task>
  
      <task name="Portal Components">
        <info>
          [STRUTS-DEV, Phil Grimm, 11/22/2000]
        </info>
        <assigned>
          <a href="mailto:[EMAIL PROTECTED]";>Ted Husted</a>
        </assigned>
      </task>
  
      <task name="Storefront Example App">
        <info>
          [STRUTS-DEV, David D'Orto, 12/11/2000]
        </info>
      </task>
  
    </task-list>
  
  
    <task-list name="Contributors Area" href="Contrib">
  
      <info>
        <p>A portion of the Struts web site, and file system, where individually
        contributed add-ons for Struts can be hosted and downloaded.</p>      
      </info>
      
      <task name="Proposal">
       <info>
         <p>Detailed proposal with implementation plan.</p>
         <p> [STRUTS-USER, Ned Seagoon, 12/22/2000]</p>
       </info>
       <assigned>
        <a href="mailto:[EMAIL PROTECTED]";>Ted Husted</a>
       </assigned>
      </task>
  
    </task-list>
  
  
    </body>
  
  </document>
  
  
  
  1.1                  jakarta-struts/doc/proposals/todo-1.0.xml
  
  Index: todo-1.0.xml
  ===================================================================
  <?xml version="1.0"?>
  <document url="./todo-1.1.xml">
  
    <properties>
      <author>Craig R. McClanahan</author>
      <title>The Struts Project TODO List for Version 1.0</title>
    </properties>
  
    <body>
  
  
    <section name="Introduction" href="Intro">
  
    <p>Application frameworks, like the applications we build with them,
    never seem to be completed.  The following are the remaining work items
    before Version 1.0 of Struts can be released.</p>
  
    <p>The TODO list tasks are divided into functional areas that correspond
    to the major components of the Struts Framework.  References in square
    brackets are the Java package containing the corresponding source code.</p>
  
    </section>
  
  
    <task-list name="Struts Documentation" href="Docs">
  
      <info>
        <p>Omnibus task list for items related to the Struts Documentation,
        which do not have direct relationships with code bases.</p>
      </info>
  
    </task-list>
  
  
    <task-list name="Struts Example Application" href="Example">
  
      <info>
        <p>An example web application utilizing the Struts framework and
        custom tag library.</p>
      </info>
  
    </task-list>
  
  
    <task-list name="MVC Framework [org.apache.struts.action]" href="MVC">
  
      <info>
        <p>This is the core controller servlet, with support for the developer's
        action and form bean classes, plus the supporting data structures.</p>
      </info>
  
      <task name="Deprecation Warnings">
        <info>
          <p>Review framework-wide use of features that have now been
          deprecated.</p>
        </info>
      </task>
  
    </task-list>
  
  
    <task-list name="XML Digester [org.apache.struts.digester]" href="Digester">
  
      <info>
        <p>The Digester package supports scripted firing of "rules" based on
        matching a particular pattern of nested XML tags.  Among the predefined
        rules that can be utilized are rules to create new objects, set bean
        properties from the contents of attributes, or call arbitrary methods
        with arguments based on the XML content being parsed.  A common
        use for this technology (illustrated in the Struts ActionServlet), is
        parsing configuration files and building corresponding object trees.</p>
      </info>
  
    </task-list>
  
  
    <task-list name="Bean Tag Library [org.apache.struts.taglib.bean]"
               href="BEAN">
  
      <info>
        <p>This tag library contains basic tags useful in manipulating JavaBeans
        and their properties.  It includes support for getting and setting bean
        properties using simple, nested, and subscripted accessor expressions.
        </p>
      </info>
  
    </task-list>
  
  
    <task-list name="HTML Forms Tag Library [org.apache.struts.taglib.html]"
               href="HTML">
  
      <info>
      <p>This tag library contains tags useful in preparing web applications that
      use HTML forms as their primary mechanism for user data entry, as well as
      support for internationalized and localized applications.</p>
      </info>
  
    </task-list>
  
  
    <task-list name="Utility Classes" href="Util">
  
      <info>
        <p>This package contains a variety of utility classes useful within
        Struts as well as in stand-alone applications.</p>
      </info>
  
      <task name="Update HTML Filtering">
        <info>
          <p>Update the filtering supported by <code>BeanUtils.filter()</code>.
          </p>
          [STRUTS-DEV, Matthias Kerkhoff, 11/13/2000]
        </info>
      </task>
  
    </task-list>
  
  
    </body>
  
  </document>
  
  
  
  1.1                  jakarta-struts/doc/proposals/release-plan-1.0b1.xml
  
  Index: release-plan-1.0b1.xml
  ===================================================================
  <?xml version="1.0"?>
  <document url="./release-plan-1.0b1.xml">
  
    <properties>
      <author>Craig R. McClanahan</author>
      <title>Struts Release Plan (Version 1.0-beta-1)</title>
    </properties>
  
    <body>
  
  
    <section name="Objective" href="Objective">
  
    <p><font size="-2">$Id: release-plan-1.0b1.xml,v 1.1 2002/02/20 00:49:36 husted 
Exp $</font></p>
  
    <p>The objective of the <strong>Struts 1.0-beta-1</strong> release is to
    create a milestone release against which a final series of bug fixes and
    documentation updates can occur before a <strong>Struts 1.0 Final</strong>
    release is created.</p>
  
    </section>
  
  
    <section name="The Plan" href="Plan">
  
    <p>The code base for Struts has been in an informal "feature freeze" for
    several weeks, while development focus has been on bug fixes and the
    completion of required documentation.  Both of these goals have been
    substantially achieved, so it is time for a formal beta release - with
    the goal of moving quickly to a final <strong>Struts 1.0</strong> release
    shortly thereafter, if no disabling defects are found.</p>
  
    <p>Therefore, the following release plan is proposed for Struts 1.0-beta-1:
    </p>
    <ul>
    <li><em>Code Freeze / Tag Date</em> - Wednesday, February 21, 2001</li>
    <li><em>Release Manager</em> - Craig McClanahan</li>
    <li><em>Release Announcement</em> - To the following mailing lists and
        web sites:
        <ul>
        <li>[EMAIL PROTECTED]</li>
        <li>[EMAIL PROTECTED]</li>
        <li>[EMAIL PROTECTED]</li>
        <li>[EMAIL PROTECTED]</li>
        <li>[EMAIL PROTECTED]</li>
        <li>[EMAIL PROTECTED]</li>
        <li><a href="http://www.freshmeat.net";>http://www.freshmeat.net</a></li>
        </ul></li>
    </ul>
  
    </section>
  
  
    <section name="Release Criteria" href="Criteria">
  
    <p>Prior to the release of Struts 1.0-beta-1, the following action items
    must be completed:</p>
    <ul>
    <li>All <a href="http://nagoya.apache.org/bugzilla/";>Bugzilla</a> bug reports
        against Struts 1.0 nightly builds MUST be marked as "Resolved", with any
        of the legal Bugzilla resolutions (FIXED, INVALID, WONTFIX, LATER,
        REMIND, WORKSFORME).</li>
    <li>Bug reports that are resolved as LATER or REMIND will include comments
        as to whether those specific issues will be dealt with in a subsequent
        1.0 beta or final release, or whether they will be scheduled for
        consideration in a subsequent release time frame.</li>
    <li>Any remaining items on the Struts 1.0 TODO list shall be completed.</li>
    <li>The Struts 1.0 Release Notes document shall be updated to describe
        substantial changes and improvements since the Struts 0.5 release,
        along with associated updates to the main Struts Documentation
        Application pages describing the new release.</li>
    <li>All of the Struts example applications that are included with the release
        shall operate successfully in the following servlet containers:
        <ul>
        <li><a href="http://jakarta.apache.org/tomcat";>Tomcat 3.2.1</a></li>
        <li><a href="http://jakarta.apache.org/tomcat";>Tomcat 4.0</a> (Current
            nightly build)</li>
        </ul></li>
    <li>A release vote shall take place on the STRUTS-DEV mailing list to
        approve this plan.  The release vote MUST pass by "Majority Approval"
        of Struts committers.</li>
    </ul>
  
    </section>
  
  
    </body>
  
  </document>
  
  
  
  1.1                  jakarta-struts/doc/proposals/release-plan-1.0.1.xml
  
  Index: release-plan-1.0.1.xml
  ===================================================================
  <?xml version="1.0"?>
  <document url="./release-plan-1.0.1.xml">
  
    <properties>
      <author>Martin F N Cooper</author>
      <title>Struts Release Plan (Version 1.0.1)</title>
    </properties>
  
    <body>
  
  
    <section name="Objective" href="Objective">
  
    <p><font size="-2">$Id: release-plan-1.0.1.xml,v 1.1 2002/02/20 00:49:36 husted 
Exp $</font></p>
  
    <p>The objective of the <strong>Struts 1.0.1</strong> release is to provide
    an official release of all the bug fixes and documentation updates that have
    been made to the STRUTS_1_0_BRANCH branch since the release of Struts 1.0.</p>
  
    </section>
  
  
    <section name="The Plan" href="Plan">
  
    <p>Since the release of Struts 1.0, a number of important bugs have been
    fixed, and some notable improvements have been made to the documentation.
    Currently, these updates are available only to those people who are willing
    to obtain the source code from CVS and build their own version of Struts.
    This release will make these updates available in an official distribution,
    thus making them available to a wider audience.</p>
  
    <p>Therefore, the following release plan is proposed for Struts 1.0.1:
    </p>
    <ul>
    <li><em>Code Freeze / Tag Date</em> - Wednesday, November 21, 2001</li>
    <li><em>Release Manager</em> - Martin Cooper</li>
    <li><em>Release Announcement</em> - To the following mailing lists and
        web sites:
        <ul>
        <li>[EMAIL PROTECTED]</li>
        <li>[EMAIL PROTECTED]</li>
        <li>[EMAIL PROTECTED]</li>
        <li>[EMAIL PROTECTED]</li>
        <li>[EMAIL PROTECTED]</li>
        <li><a href="http://www.freshmeat.net";>http://www.freshmeat.net</a></li>
        </ul></li>
    </ul>
  
    </section>
  
  
    <section name="Release Criteria" href="Criteria">
  
    <p>Prior to the release of Struts 1.0.1, the following action items
    must be completed:</p>
    <ul>
    <li>The Struts 1.0.1 Release Notes document shall be updated to describe
        substantial changes and improvements since the Struts 1.0 release,
        along with associated updates to the main Struts Documentation
        Application pages describing the new release.</li>
    <li>All of the Struts example applications that are included with the release
        shall operate successfully in the following servlet containers:
        <ul>
        <li><a href="http://jakarta.apache.org/tomcat";>Tomcat 3.2.3</a></li>
        <li><a href="http://jakarta.apache.org/tomcat";>Tomcat 4.0.1</a></li>
        </ul></li>
    <li>A release vote shall take place on the <em>struts-dev</em> mailing list
        to approve this plan.  The release vote MUST pass by "Majority Approval"
        of Struts committers.</li>
    </ul>
  
    </section>
  
  
    </body>
  
  </document>
  
  
  
  1.1                  jakarta-struts/doc/proposals/project.xml
  
  Index: project.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <project name="Struts Framework"
           href="http://jakarta.apache.org/struts";
          image="images/struts.gif">
  
      <title>Struts Framework</title>
  
      <menu name="Welcome">
          <item name="Home"                    href="../index.html"/>
          <item name="News &amp; Status"       href="../news_2002.html"/>
          <item name="Kickstart FAQ"           href="../kickstart.html"/> 
          <item name="Resources"               href="../resources.html"/>
          <item name="Who We Are"              href="../volunteers.html"/>
      </menu>
  
      <menu name="Downloads">
          <item name="Binaries"                
href="http://jakarta.apache.org/site/binindex.html"/>
          <item name="Source Code"             
href="http://jakarta.apache.org/site/sourceindex.html"/>
      </menu>
  
      <menu name="Stable Release (1.0.2)">
          <item name="User Guide"
              href="http://jakarta.apache.org/struts/doc-1.0.2/index.html"/>
          <item name="Javadoc"
              href="http://jakarta.apache.org/struts/doc-1.0.2/api/index.html"/>
          <item name="Release Notes" 
              
href="http://jakarta.apache.org/struts/doc-1.0.2/release-notes-1.0.2.html"/>
          <item name="Installation"            
              href="http://jakarta.apache.org/struts/doc-1.0.2/installation.html"/>
      </menu>
  
      <menu name="Nightly Build">
          <item name="User Guide"
              href="../userGuide/index.html"/>
          <item name="Javadoc"
              href="../api/index.html"/>
          <item name="Release Notes" 
              href="../userGuide/release-notes.html"/>
          <item name="Installation"            
              href="../userGuide/installation.html"/>
          <item name="Workflow Proposal"
              href="workflow.html"/>
          <item name="Wish List"
              href="todo-1.1.html"/>
      </menu>
  
  </project>
  
  
  
  
  
  
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to