| <?xml version="1.0"?> |
| <document url="./todo-1.1.xml"> |
| |
| <properties> |
| <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 class="center"><a href="../faqs/helping.html#release"><strong>So, when is the next release coming out?</strong></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="workflow.html">Workflow</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 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:husted@apache.org">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:husted@apache.org">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="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"><strong>A Workflow Proposal is pending.</strong></a></p> |
| </info> |
| <assigned> |
| <a href="mailto:craiger@tataryn.net">Craig Tataryn</a>, |
| <a href="mailto:nic.hobbs@uk.pwcglobal.com">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:mschachter@hp.com">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-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:javabettin@yahoo.com">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:javabettin@yahoo.com">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:javabettin@yahoo.com">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:javabettin@yahoo.com">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><html:options></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><logic:iterate></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:nic.hobbs@uk.pwcglobal.com">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 |
| <strong>not</strong> be added to the Struts-Logic tags. However, a |
| <a href="http://husted.com/struts/resources/logic-niallp.htm"><strong>contributor |
| taglib</strong></a> is available.</p> |
| </info> |
| <assigned> |
| <a href="mailto:niall.pemberton@btInternet.com">Niall Pemberton</a> |
| </assigned> |
| </task> |
| |
| <task name="Iterating Parallel Collections"> |
| <info> |
| <p>Enhance <code><logic:iterate></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 --> 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"><strong>A |
| contributor extension is now available.</strong></a></p> |
| <p> |
| [STRUTS-DEV, Mark Wutka, 06/01/2000 and 06/16/2000] |
| </p> |
| </info> |
| <assigned> |
| <a href="ravi@sengen.com">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="UnitTests"> |
| |
| <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:struts-test@freetocreate.org">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:husted@apache.org">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:husted@apache.org">Ted Husted</a> |
| </assigned> |
| </task> |
| |
| </task-list> |
| |
| |
| </body> |
| |
| </document> |