<?xml version="1.0"?>
<document url="./todo-1.1.xml">

  <properties>
    <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>
