You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by hu...@apache.org on 2005/09/10 11:39:14 UTC
svn commit: r279980 - in /struts/core/trunk/xdocs: index.xml learning.xml
milestones.xml navigation.xml roadmap.xml
Author: husted
Date: Sat Sep 10 02:39:11 2005
New Revision: 279980
URL: http://svn.apache.org/viewcvs?rev=279980&view=rev
Log:
Continued changes to Core for 1.3.x series. Fix links, XMl formatting, product labels. Remove obsolete material.
Modified:
struts/core/trunk/xdocs/index.xml
struts/core/trunk/xdocs/learning.xml
struts/core/trunk/xdocs/milestones.xml
struts/core/trunk/xdocs/navigation.xml
struts/core/trunk/xdocs/roadmap.xml
Modified: struts/core/trunk/xdocs/index.xml
URL: http://svn.apache.org/viewcvs/struts/core/trunk/xdocs/index.xml?rev=279980&r1=279979&r2=279980&view=diff
==============================================================================
--- struts/core/trunk/xdocs/index.xml (original)
+++ struts/core/trunk/xdocs/index.xml Sat Sep 10 02:39:11 2005
@@ -43,9 +43,7 @@
and other presentation systems.
</p>
-</section>
-
-<section name="Struts Core in a Nutshell">
+<subsection name="Struts Core in a Nutshell">
<a name="nutshell"/>
<p>
@@ -144,9 +142,9 @@
and the Developer Guides.
</p>
-</section>
+</subsection>
- <section name="Is Struts Core the best choice for every project?">
+ <subsection name="Is Struts Core the best choice for every project?">
<p>
No. If you need to write a very simple application, with a handful of
@@ -166,11 +164,12 @@
Issues in Struts Adoption</a>.
</p>
+</subsection>
</section>
<section>
<p class="right">
- Next: <a href="Learning">Learning about Struts Core</a>
+ Next: <a href="learning.html">Learning about Struts Core</a>
</p>
</section>
Modified: struts/core/trunk/xdocs/learning.xml
URL: http://svn.apache.org/viewcvs/struts/core/trunk/xdocs/learning.xml?rev=279980&r1=279979&r2=279980&view=diff
==============================================================================
--- struts/core/trunk/xdocs/learning.xml (original)
+++ struts/core/trunk/xdocs/learning.xml Sat Sep 10 02:39:11 2005
@@ -46,80 +46,92 @@
</li>
</ul>
+ <a name="Versions"/>
+ <subsection name="Documentation Versions">
<p>
- You are invited to preview the documentation online and then install
- the documentation bundle locally for closer study.
+ You are invited to preview the documentation online,
+ and then install the documentation bundle locally for closer study.
</p>
<p>
- <strong>NOTE:</strong> If you are previewing the documentation on the website,
- most of the links in this section will refer to the <strong>Nightly Build</strong>.
- When learning about Struts Core, <strong>be sure to refer to the documentation for
- the version you are actually using</strong>.
+ <strong>NOTE:</strong>
+ If you are previewing the documentation on the website,
+ most of the links in this section will refer to the
+ <strong>Nightly Build</strong>.
+ When learning about Struts Core,
+ <strong>be sure to refer to the documentation for the version
+ you are actually using</strong>.
</p>
<p>
- The concise Struts Core <a href="userGuide/index.html"><strong>User Guide</strong></a>
- introduces the Model-View-Controller architecture, and how it relates to
- the major components of Struts Core.
- If you want to find out "How Core works", this is the place to start.
- Along with an architectural overview, the User Guide also includes
- detailed installation instructions and release notes for each version of
- the framework.
+ The concise Struts Core <a href="userGuide/index.html"><strong>
+ User Guide</strong></a>
+ introduces the Model-View-Controller architecture,
+ and how it relates to the major components of Struts Core.
+ If you want to find out "How Core works", this is the place to start.
+ Along with an architectural overview,
+ the User Guide also includes detailed installation instructions
+ and release notes for each version of Struts Core.
</p>
<p>
- For more detail about a specific class or package, the Struts Core
- <a href="api/index.html"><strong>Javadocs</strong></a> are <strong>surprisingly
- comprehensive and carefully maintained</strong>.
- It is <em>strongly</em> recommended that you refer to the
- <a href="api/index.html"> Javadoc</a> for each class as you begin to use
- it.
- This will help ensure that important features and options are not
- overlooked.
- <em>What you don't know, can't help you.</em>
+ For more detail about a specific class or package,
+ the Struts Core <a href="api/index.html"><strong>
+ Javadocs</strong></a> are <strong>surprisingly comprehensive and
+ carefully maintained</strong>.
+ It is <em>strongly</em> recommended that you refer to the
+ <a href="api/index.html"> Javadoc</a> for each class
+ as you begin to use it.
+ This will help ensure that important features and options are not
+ overlooked.
+ <em>What you don't know, can't help you.</em>
</p>
<p id="faqs">
- The Struts Core <strong>FAQs</strong> are designed to fill in any small gaps left by the
- Javadocs or the User Guides.
+ The Struts Core <strong>FAQs</strong> are designed to fill in
+ any gaps left by the Javadocs or the User Guides.
</p>
<ul>
- <li>The <a href="./faqs/kickstart.html">Kickstart FAQ</a>
- answers the most common non-technical questions people first ask about
- Struts Core.
- </li>
- <li>
- The <a href="./faqs/newbie.html">Struts Core Newbie FAQ</a> answers the most
- common technical questions asked by first-timer Struts Core developers.
- </li>
+ <li>
+ The <a href="./faqs/kickstart.html">Kickstart FAQ</a>
+ answers the most common non-technical questions
+ people first ask about Struts Core.
+ </li>
+ <li>
+ The <a href="./faqs/newbie.html">Struts Core Newbie FAQ</a>
+ answers the most common technical questions asked by first-timer
+ Struts Core developers.
+ </li>
</ul>
<p id="howtos">
- The <strong>Howto Guides</strong> are designed to help you get started with some of
- the optional extensions and components available for Struts Core.
- These include topics like using the Secure Socket Layer (SSL) protocol
- with Struts Core and how to unit test your Struts applications.
+ The <strong>Howto Guides</strong> are designed to help you get started
+ with some of the optional extensions and components available
+ for Struts Core.
+ These include topics like using the Secure Socket Layer (SSL) protocol
+ with Struts Core and how to unit test your Struts applications.
</p>
<p>
- If you have any comments on the pages you see here, they can be posted to the Wiki by following the link on the
- bottom of any page.
+ If you have any comments on the pages you see here,
+ they can be posted to the Wiki by following the link
+ on the bottom of any page.
</p>
<p>
- Of course, the only true documentation is the code itself.
- If you have any questions about how Struts Core actually works, do not hesitate
- to <em>use the source</em>.
- For the complete, buildable source code to the entire Struts Core framework,
- see the "src" folder in your <strong>source distribution</strong>.
+ Of course,
+ the only true documentation is the code itself.
+ If you have any questions about how Struts Core actually works,
+ do not hesitate to <em>use the source</em>.
+ For the complete, buildable source code to the entire
+ Struts Core product,
+ see the "src" folder in your <strong>source distribution</strong>.
</p>
-
-</section>
+</subsection>
<a name="Examples"/>
-<section name="Struts Core by Example">
+<subsection name="Struts Core by Example">
<p>
To help you see how it all fits together, several example applications
are available that demonstrate using Struts Core with other
@@ -128,95 +140,120 @@
<ul>
<li>
- Blank - A simple template for starting new Struts applications.</li>
- <li>
- <strong>MailReader</strong> - The original Struts example application. <em>Try me first!</em></li>
- <li>Examples - Various demonstration applications combined as separate modules:<ul>
- <li>
- Exercise - A set of test pages that also demonstrate use of the custom tags.</li>
+ Blank - A simple template for starting new Struts applications.
+ </li>
<li>
- Upload - Demonstrates using the file upload facilities. (Based on Commons Upload.)</li>
+ <strong>MailReader</strong> - The original Struts example
+ application. <em>Try me first!</em>
+ </li>
<li>
- Validator - Demonstrates using the Validator extension.</li>
- </ul></li>
- </ul>
+ Examples - Various demonstration applications combined as separate
+ modules:
+ <ul>
+ <li>
+ Exercise - A set of test pages that also demonstrate
+ use of the custom tags.
+ </li>
+ <li>
+ Upload - Demonstrates using the file upload facilities.
+ (Based on Commons Upload.)
+ </li>
+ <li>
+ Validator - Demonstrates using the Validator extension.
+ </li>
+ </ul>
+ </li>
+ </ul>
<p>
- These applications are available for download from the
- Struts Applications subproject, in both source and binary form.
+ These applications are available for
+ <a href="http://struts.apache.org/acquiring.html">download</a> from
+ the Struts Applications subproject, in both source and binary form.
</p>
<p>
- There are also many third-party example applications available for study, including these three:
+ There are also many third-party example applications available
+ for study, including these three:
</p>
<ul>
<li>
- <a href="http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse">AppFuse</a> - Demonstrates using XDoclet with
- Struts Classic, along with different security packages and Hibernate for database persistence.
+ <a href="http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse">
+ AppFuse</a> - Demonstrates using XDoclet with Struts Classic,
+ along with different security packages and Hibernate for
+ database persistence.
</li>
<li>
- <a href="http://ibatis.apache.org/petstore.html">JPetStore</a> - A streamlined version of the Java
- Petstore application implemented with Struts Classic and iBATIS database layer.
+ <a href="http://ibatis.apache.org/petstore.html">JPetStore</a> -
+ A streamlined version of the Java Petstore application
+ implemented with Struts Classic and iBATIS database layer.
</li>
<li>
- <a href="http://www.codeczar.com/products/logweb/index.html">LogWeb</a> - A Struts Classic webapp for configuring
- Log4J at runtime within a servlet container.
+ <a href="http://www.codeczar.com/products/logweb/index.html">
+ LogWeb</a> - A Struts Classic webapp for configuring
+ Log4J at runtime within a servlet container.
</li>
</ul>
-</section>
+</subsection>
<a name="More"/>
-<section name="Learning More About Struts Core">
+<subsection name="Learning More About Struts Core">
<p>
- The Struts <a href="using.html#Lists">Mailing Lists</a> are a treasure trove of
- useful, interactive information. The user list tends to carry a high
- volume, so always check the published documentation and one of the
- <a href="mail.html#Archives">
- <strong>MAILING LIST ARCHIVES</strong></a> before
- <a href="http://www.catb.org/~esr/faqs/smart-questions.html">posting a
- new question</a>.
- Like as not, it's already been asked and answered.
+ The Struts <a href="http://struts.apache.org/mail.html">Mailing Lists</a>
+ are a treasure trove of useful, interactive information.
+ The user list tends to carry a high volume,
+ so always check the published documentation and one of the
+ <a href="http://struts.apache.org/mail.html#Archives">
+ <strong>MAILING LIST ARCHIVES</strong></a> before
+ <a href="http://www.catb.org/~esr/faqs/smart-questions.html">posting a
+ new question</a>.
+ Like as not, it's already been asked and answered.
</p>
<p>
- If you really can't find the answer to your question in the
- <a href="#faqs">FAQs</a> or one of the
- <a href="mail.html#Archives">
- list archives</a>, you can post your query to the Struts User list --
- <strong>BUT YOU MUST SUBSCRIBE TO THE
- <a href="mailto:user-subscribe@struts.apache.org">USER LIST</a>
- OR THE <a href="mailto:user-digest-subscribe@struts.apache.org">
- USER LIST DIGEST</a> BEFORE POSTING</strong>. </p>
-
- <p>
- The Apache Struts <a href="http://wiki.apache.org/struts"><strong>Wiki</strong></a> is a relatively
- new addition to our documentation team.
- Any Struts user (that means you!) is invited to post new material to the Wiki.
+ If you really can't find the answer to your question in the
+ <a href="#faqs">FAQs</a> or one of the
+ <a href="http://struts.apache.org/mail.html#Archives">
+ list archives</a>, you can post your query to the Struts User list --
+ <strong>BUT YOU MUST SUBSCRIBE TO THE
+ <a href="mailto:user-subscribe@struts.apache.org">USER LIST</a>
+ OR THE <a href="mailto:user-digest-subscribe@struts.apache.org">
+ USER LIST DIGEST</a> BEFORE POSTING</strong>. </p>
+
+ <p>
+ The Apache Struts <a href="http://wiki.apache.org/struts"><strong>
+ Wiki</strong></a> is a relatively new addition to our
+ documentation team.
+ Any Struts user (that means you!) is invited to post new material to
+ the Wiki.
However, the Wiki is not the place to ask incidental questions.
- <strong>All support questions should be directed to the <a href="using.html#Lists">Struts User list</a> or
+ <strong>All support questions should be directed to the
+ <a href="http://struts.apache.org/mail.html">Struts User list</a> or
other support forum</strong>.
</p>
<p>
- The <a href="roadmap.html"><strong>Roadmap</strong></a> page outlines our tentative plans for future development.
+ The <a href="roadmap.html"><strong>Roadmap</strong></a> page outlines
+ our tentative plans for future development.
</p>
-</section>
+</subsection>
<a name="resources"/>
-<section name="Struts Community Resources">
+<subsection name="Struts Community Resources">
<p>
Struts Core has attracted a large and robust community of developers,
which have created a vast number of Struts related resources.
Several pages on our wiki are devoted to listing
- <a href="http://wiki.apache.org/struts/StrutsResources">Apache Struts resources</a>.
+ <a href="http://wiki.apache.org/struts/StrutsResources">Apache Struts
+ resources</a>.
</p>
<ul>
<li>
- <a href="http://wiki.apache.org/struts/StrutsArticles">articles</a>,
+ <a href="http://wiki.apache.org/struts/StrutsArticles">
+ articles</a>,
</li>
<li>
@@ -224,19 +261,21 @@
</li>
<li>
- <a href="http://wiki.apache.org/struts/StrutsApplications">sample applications</a>,
+ <a href="http://wiki.apache.org/struts/StrutsApplications">sample
+ applications</a>,
</li>
<li>
- <a href="http://wiki.apache.org/struts/StrutsTraining">training</a>, and more!
+ <a href="http://wiki.apache.org/struts/StrutsTraining">
+ training</a>, and more!
</li>
</ul>
-</section>
+</subsection>
<a name="books"/>
-<section name="Books about Struts">
+<subsection name="Books about Struts">
<p>
The Apache Software Foundation does not provide printed manuals,
@@ -245,7 +284,8 @@
<a href="http://wiki.apache.org/struts/StrutsBooks">wiki page</a>.
</p>
- </section>
+</subsection>
+</section>
<section>
<p class="right">
Modified: struts/core/trunk/xdocs/milestones.xml
URL: http://svn.apache.org/viewcvs/struts/core/trunk/xdocs/milestones.xml?rev=279980&r1=279979&r2=279980&view=diff
==============================================================================
--- struts/core/trunk/xdocs/milestones.xml (original)
+++ struts/core/trunk/xdocs/milestones.xml Sat Sep 10 02:39:11 2005
@@ -4,24 +4,27 @@
-->
<document url="./milestones.xml">
<properties>
- <title>Roadmap Milestones - The Apache Struts Web Application Framework</title>
+ <title>Roadmap Milestones - Struts Core</title>
</properties>
<body>
<section name="Development Milestones">
<a name="milestones"/>
<p>
- These are some general ideas we have about what may happen in the Struts 1.x
- series. This is a <strong>whiteboard</strong> and everything here is
+ These are some general ideas we have about what may happen in
+ the Struts Classic series.
+ This is a <strong>whiteboard</strong> and everything here is
<strong>subject to change</strong>.
</p>
<a name="struts_1_0"/>
<subsection name="Struts 1.0.0 (complete)">
<p>
- Major refactoring of Struts internals to provide support for modules and a new
- "config" object series. Bundles Struts Tiles and Struts Validator into main
- distribution. The initial release of Struts EL is provided as an optional
- package.
+ Major refactoring of Struts internals to provide support
+ for modules and a new
+ "config" object series. Bundles Struts Tiles and Struts
+ Validator into main distribution.
+ The initial release of Struts EL is provided as an
+ optional package.
</p>
</subsection>
@@ -31,9 +34,17 @@
Continued refactorings of the Struts 1.x product series.
</p>
<ul>
- <li>Removed deprecations created in the 1.0 to 1.1 timeframe, and prior</li>
- <li>Added support for wildcard mappings.</li>
- <li>Other minor enhancements, improvements, and refactorings</li>
+ <li>
+ Removed deprecations created in the 1.0 to 1.1
+ timeframe, and prior
+ </li>
+ <li>
+ Added support for wildcard mappings.
+ </li>
+ <li>
+ Other minor enhancements, improvements, and
+ refactorings
+ </li>
</ul>
</subsection>
@@ -47,83 +58,168 @@
<a name="struts_1_2_x"/>
<subsection name="Struts 1.2.x (pending)">
<p>
- Minor enhancements, improvements, and refactorings only, as needed.
+ Minor enhancements, improvements, and refactorings only,
+ as needed.
New features should be added to the 1.3.x series.
</p>
</subsection>
<a name="struts_1_3_x"/>
- <subsection name="Struts 1.3.x (pending)">
+ <subsection name="Struts Classic 1.3.x (pending)">
<p>
- Evolutionary enhancements to product base, based on existing features or codebases.
+ Evolutionary enhancements to product base,
+ based on existing features or codebases.
</p>
<ul>
- <li>Divide distribution into subprojects
- <ul><li>core, apps, el, faces, site, taglibs</li>
- <li><a href="http://struts.sourceforge.net/struts-flow/index.html">flow</a> (new)</li>
- <li><a href="http://struts.sf.net/struts-bsf/">scripting</a> (new)</li>
- </ul>
+ <li>
+ Divide distribution into subprojects
+ <ul>
+ <li>
+ core, apps, el, faces, site, taglibs, extras
+ </li>
+ <li>
+ flow, scripting, shale
+ </li>
+ </ul>
+ </li>
+ <li>
+ Complete support for Maven builds
+ </li>
+ <li>
+ Move core to "Struts Chain" Request Processor
+ </li>
+ <li>
+ Enhance all configs to extend one configuration
+ element from another,
+ as is done with Tiles Definitions
+ </li>
+ <li>
+ Move to Commons Resources (if available)
+ </li>
+ <li>
+ (TODO) Add a Ant-style properties file to make variable
+ substitutions within the XML elements,
+ as found in iBATIS and Spring.
+ </li>
+ <li>
+ (Pending) Bundle subproject GA releases into
+ Linux-style distributions
+ (Struts Classic 1.3.0 = (Core 1.3.x + Taglibs 1.3.x +
+ Extras 1.3.x))
</li>
- <li>Complete support for Maven builds (pending)</li>
- <li>Move core to "Struts Chain" Request Processor (pending)</li>
- <li>Move to Commons Resources (if available)</li>
- <li>Enhance all configs to extend one configuration element from another,as is done with Tiles Definitions</li>
- <li>Add a Ant-style properties file to make variable substitutions within the XML elements, as found in iBATIS and Spring.</li>
- <li>Bundle subproject GA releases into Linux-style distributions (Struts 1.3.0 = (Core 1.0.x + Taglibs 1.0.x + Extras 1.0.x))</li>
</ul>
<p>
- Experimental members
+ Experimental members (TODO)
</p>
<ul>
- <li>ActionCommand - A <i>Commons Chain</i> Command<i>-like</i> interface with one method: <code>void Execute(ActionContext context)</code></li>
- <li>ActionContext - A <i>Commons Chain Context</i> that implements the Action class logical API (same signatures).</li>
- <li>ViewContext - A <i>Commons Chain Context</i> that implements the combined <a href="http://jakarta.apache.org/velocity/tools/struts/">VelocityStruts</a> logical API (same signatures).</li>
+ <li>
+ ActionCommand - A <i>Commons Chain</i>
+ Command<i>-like</i> interface with one method:
+ <code>void Execute(ActionContext context)</code>
+ </li>
+ <li>
+ ActionContext - A <i>Commons Chain Context</i> that
+ implements the Action class logical API (same
+ signatures).
+ </li>
+ <li>
+ ViewContext - A <i>Commons Chain Context</i> that
+ implements the combined
+ <a href="http://jakarta.apache.org/velocity/tools/struts/">
+ VelocityStruts</a> logical API (same signatures).
+ </li>
</ul>
</subsection>
<a name="struts_1_4_x"/>
- <subsection name="Struts 1.4.x">
+ <subsection name="Struts Classic 1.4.x">
<ul>
- <li>Consider adding support for Portlets by specifying an alternate Request Processor catalog.</li>
- <li>Consider combining DTDs.</li>
- <li>Consider adding catalog element.</li>
- <li>Consider refactoring for Spring.</li>
+ <li>
+ Consider adding support for Portlets by specifying an
+ alternate Request Processor catalog.
+ </li>
+ <li>
+ Consider combining DTDs.
+ </li>
+ <li>
+ Consider adding catalog element.
+ </li>
+ <li>
+ Consider refactoring for Spring.
+ </li>
</ul>
</subsection>
<a name="struts_1_5_x"/>
- <subsection name="Struts 1.5.x">
+ <subsection name="Struts Classic 1.5.x">
<ul>
- <li>Consider a "smart" action type: executes Action class or ActionCommand interface, as given.</li>
- <li>Consider a "populate" method on ActionForm.</li>
- <li>Consider a "FormContext" mechanism.</li>
+ <li>
+ Consider a "smart" action type: executes Action class
+ or ActionCommand interface, as given.
+ </li>
+ <li>
+ Consider a "populate" method on ActionForm.
+ </li>
+ <li>
+ Consider a "FormContext" mechanism.
+ </li>
</ul>
</subsection>
<a name="struts_1_6_x"/>
- <subsection name="Struts 1.6.x">
+ <subsection name="Struts Classic 1.6.x">
<ul>
- <li>Consider multiple controllers.</li>
- <li>Consider an alternate configuration file.</li>
- <li>Consider "Nested" or "hierarchical" and locale-sensitive modules</li>
+ <li>
+ Consider multiple controllers.
+ </li>
+ <li>
+ Consider an alternate configuration file.
+ </li>
+ <li>
+ Consider "Nested" or "hierarchical" and
+ locale-sensitive modules
+ </li>
</ul>
</subsection>
<a name="struts_1_x_x"/>
- <subsection name="Other potential enhancements for the 1.x.x series">
+ <subsection name="Other potential enhancements for the Classic series">
<ul>
- <li>Consider <a href="http://struts.sf.net/struts-cocoon/">Cocoon Plugin</a></li>
- <li>Consider adopting several popular extensions, including:
+ <li>
+ Consider <a href="http://struts.sf.net/struts-cocoon/">
+ Cocoon Plugin</a>
+ </li>
+ <li>
+ Consider adopting several popular extensions, including:
<ul>
- <li><a href="http://struts.application-servers.com/">Layout</a></li>
- <li><a href="http://sslext.sourceforge.net/">SSL Ext</a></li>
- <li><a href="http://stxx.sourceforge.net">Stxx</a> (XLST)</li>
- <li><a href="http://strutstestcase.sourceforge.net/">TestCase</a></li>
+ <li>
+ <a href="http://struts.application-servers.com/">Layout</a>
+ </li>
+ <li>
+ <a href="http://sslext.sourceforge.net/">SSL Ext</a>
+ </li>
+ <li>
+ <a href="http://stxx.sourceforge.net">Stxx</a>
+ (XLST)
+ </li>
+ <li>
+ <a href="http://strutstestcase.sourceforge.net/">
+ TestCase</a></li>
</ul>
</li>
- <li>Consider encouraging the use of <a href="http://sourceforge.net/projects/xdoclet/">XDoclet</a> and other code generation technologies to streamline development.</li>
+ <li>
+ Consider encouraging the use of
+ <a href="http://sourceforge.net/projects/xdoclet/">
+ XDoclet</a> and other code generation technologies
+ to streamline development.
+ </li>
</ul>
</subsection>
</section>
+ <section>
+ <p class="right">Back:
+ <a href="roadmap.html">Roadmap</a></p>
+ </section>
+
</body>
</document>
Modified: struts/core/trunk/xdocs/navigation.xml
URL: http://svn.apache.org/viewcvs/struts/core/trunk/xdocs/navigation.xml?rev=279980&r1=279979&r2=279980&view=diff
==============================================================================
--- struts/core/trunk/xdocs/navigation.xml (original)
+++ struts/core/trunk/xdocs/navigation.xml Sat Sep 10 02:39:11 2005
@@ -24,10 +24,6 @@
href="userGuide/index.html"
/>
<item
- name="Roadmap"
- href="roadmap.html"
- />
- <item
name="Source Repository"
href="http://svn.apache.org/viewcvs.cgi/struts/core/trunk/?root=Apache-SVN"
/>
Modified: struts/core/trunk/xdocs/roadmap.xml
URL: http://svn.apache.org/viewcvs/struts/core/trunk/xdocs/roadmap.xml?rev=279980&r1=279979&r2=279980&view=diff
==============================================================================
--- struts/core/trunk/xdocs/roadmap.xml (original)
+++ struts/core/trunk/xdocs/roadmap.xml Sat Sep 10 02:39:11 2005
@@ -6,7 +6,7 @@
-->
<properties>
- <title>Roadmap - The Apache Struts Web Application Framework</title>
+ <title>Roadmap - Struts Corek</title>
</properties>
<body>
@@ -25,8 +25,8 @@
<p>
This document is provided for discussion purposes only.
All releases and changes to the codebase are subject to
- <a href="./bylaws.html">a vote</a> of the
- <a href="volunteers.html#pmc">Struts PMC</a>.
+ <a href="http://struts.apache.org/bylaws.html">a vote</a> of the
+ <a href="http://struts.apache.org/volunteers.html#pmc">Struts PMC</a>.
</p>
<p>
@@ -40,8 +40,10 @@
<subsection name="Bugzilla Queries">
<p>
- The Struts development team uses the <a href="http://issues.apache.org/bugzilla">Apache Bug Database</a> (Bugzilla)
- to manage problem reports and enhancement requests.
+ The Struts development team uses the
+ <a href="http://issues.apache.org/bugzilla">
+ Apache Bug Database</a> (Bugzilla) to manage problem reports
+ and enhancement suggestions.
For your convenience, here are some common Bugzilla queries:
</p>
@@ -66,58 +68,78 @@
</subsection>
<a name="Struts_1_x"/>
-<subsection name="Struts 1.x">
+<subsection name="Struts Classic 1.x">
<p>
- Releases in the 1.x series will focus on refactoring of existing functionality, with a
- continued emphasis on backward compatibility.
+ Through Struts 1.2.x, the project's codebase was bundled as a single
+ distribution with a single release cycle.
+ Post Struts 1.2.x, the project's codebase is separated into several
+ subprojects, each with it's own distribution and release cycle.
</p>
+
<p>
- New features are being added to the Struts 1.x series,
- but only if backward compatability with the prior release can be retained.
- The 1.x API is evolving through a deprecate/replace/remove protocol.
- Developers are encouraged to stay current with the "best available" release
- and to observe deprecation warnings.
- Features are deprecated before removal, and deprecated features are ultimately removed.
+ Popular third-party extensions that are in active use by the Struts
+ Classic Community may be considered as new subprojects,
+ such as those distributed through the
+ <a href="http://sourceforge.net/projects/struts">
+ Struts SourceForge</a> site.
+ (If you are the author of such an extension,
+ and would like to donate it to Apache Struts,
+ please contact the dev@ list.)
</p>
<p>
- The 1.x series is being refactored into several subprojects, starting with Struts Core.
- Other subprojects may use Struts Core, and each other, as dependencies,
- but Struts Core should not depend on any other subproject.
+ As a convenience, the subprojects repredenting the Struts 1.2.x
+ code base are being bundled into a single distribution called
+ "Struts Classic".
+ Comments previously made about the "Struts 1.x series" now apply to
+ the "Struts Classic" series.
</p>
<p>
- Popular third-party extensions that are in active use by the Struts Community may be considered
- as subprojects, such as those distributed through the
- <a href="http://sourceforge.net/projects/struts">Struts SourceForge</a> site.
- (If you are the author of such an extension, and would like to donate it to Struts and the
- Apache Software Foundation, please contact the dev@ list.)
+ Releases in the Struts Classic series will focus on refactoring of
+ existing functionality, with a continued emphasis on backward
+ compatibility.
+ </p>
+ <p>
+ New features are being added to the Struts Classic series,
+ but only if backward compatability with the prior release can be
+ retained.
+ The Struts Classic API is evolving through a deprecate/replace/remove
+ protocol.
+ Developers are encouraged to stay current with the "best available"
+ release and to observe deprecation warnings.
+ Features are deprecated before removal, and deprecated features are
+ ultimately removed.
</p>
<p>
- Throughout the 1.x series,
- there will be a continued emphasis on expanding unit test coverage for the framework.
+ Throughout the Struts Classic series,
+ there will be a continued emphasis on expanding unit test coverage.
Bug reports should include a failing test case when possible.
Proposals for new features should include a working test suite.
- (Creating features through Test Driven Development is strongly encouraged.)
+ (Creating features through Test Driven Development is encouraged.)
</p>
<p>
Enhancement requests are logged in Bugzilla as they are suggested.
- <strong>The listing of an enhancement in Bugzilla does not imply that is being "planned"</strong>,
- merely that some member of the community has suggested it,
+ <strong>The listing of an enhancement in Bugzilla does not imply that
+ is being "planned"</strong>,
+ merely that someone has suggested it,
and the idea hasn't been ruled out (yet).
</p>
<p>
- Future release <a href="milestones.html">milestones</a> are provided for enhancements
- which are being actively planned or developed
+ Future release <a href="milestones.html">milestones</a> are provided
+ for enhancements which are being actively planned or developed
but may not be ready for the very next release.
- If a report has not been tagged for a specific milestone by a working developer,
+ If a report has not been tagged for a specific milestone
+ by a working developer,
then <strong>it may never be implemented</strong>.
- When developers (including non-Committers) are actually working on an enhancement,
- they should re-tag it for a specific release milestone, such as "1.3.1" or "1.3.2".
+ When developers (including non-Committers) are actually working on an
+ enhancement,
+ they should re-tag it for a specific release milestone,
+ such as "1.3.1" or "1.3.2".
</p>
<p>
@@ -129,26 +151,33 @@
post a note on the ticket that you are working on an enhancement
and then post a patch as soon as possible.
If the development effort doesn't succeed,
- post a note to the ticket explaining what problem you had creating the enhancement,
+ post a note to the ticket explaining what problem you had
+ creating the enhancement,
so that other developers can explore alternatives.
</p>
</subsection>
<a name="Struts_1_3_x"/>
- <subsection name="Struts 1.3.x and beyond">
+ <subsection name="Struts Core 1.3.x and beyond">
<p>
- An outline of the Struts 1.x enhancements proposed here can be found on the
+ An outline of the Struts Core enhancements proposed here
+ can be found on the
<a href="milestones.html">Milestones</a> page.
</p>
<p>
- As planned, in Struts 1.3.x we will integrate Struts Chain from config and add
- an "extends" attribute to all the configuration elements (a la Tiles). While
- we're at it, we may also add a Ant-style properties file to make variable
- substitutions within the XML elements. The substitution feature is supported by
- Spring and iBATIS, among others, and is a useful way to configure applications
+ As planned,
+ in Struts Core 1.3.x we will integrate Struts Chain from config
+ and add an "extends" attribute to all the configuration elements
+ (a la Tiles).
+ While we're at it,
+ we may also add a Ant-style properties file to make variable
+ substitutions within the XML elements.
+ The substitution feature is supported by Spring and iBATIS,
+ among others.
+ Substitutions are a useful way to configure applications
and reduce redundancy.
</p>
@@ -157,384 +186,306 @@
</p>
<p>
- Those items by themselves seem like enough for a release, but we might add a
- few "experimental" classes and interfaces to give us a chance to play with
- Struts Chain in our own applications. We came up with two experimental classes
- and an experimental interface: ActionCommand, ActionContext, and ViewContext.
+ Those items by themselves seem like enough for a release,
+ but we might add a few "experimental" classes and interfaces to
+ give us a chance to use Struts Chain in our own applications.
+ We came up with two experimental classes
+ and an experimental interface:
+ ActionCommand, ActionContext, and ViewContext.
</p>
<p>
- <b>ActionCommand</b> - A Chain Command-like interface with one method:
+ <b>ActionCommand</b> - A Chain Command-like interface with one
+ method:
</p>
<p><code>void execute(ActionContext context)</code></p>
<p>
- Support for conventional Actions would stay in place, but as an alternative, a
- class could implement ActionCommand and unbind itself from the HTTP API.
- </p>
-
- <p>
- <b>ActionContext</b> - A <i>Chain Context</i> that implements the logical Action class API.
+ Support for conventional Actions would stay in place,
+ but as an alternative,
+ a class could implement ActionCommand and unbind itself
+ from the HTTP API.
</p>
<p>
- Existing code could be converted by changing references to context.* and so
- forth. The context could be constructed by the Request Processor, as an optional
- Command in the Chain, so that it could be exposed this through thread-local,
- opening the door for POJO actions that don't implement a particular interface.
+ <b>ActionContext</b> - A <i>Chain Context</i> that implements the
+ logical Action class API.
</p>
<p>
- <b>ViewContext</b> - A <i>Chain Context</i> that implements the logical "Velocity Tools" API.
+ Existing code could be converted by changing references to
+ context.* and so forth.
+ The context could be constructed by the Request Processor,
+ as an optional Command in the Chain,
+ so that it could be exposed this through thread-local,
+ opening the door for POJO actions
+ that don't implement a particular interface.
</p>
<p>
- In a later release, we could move the taglib dependencies from the
- servlet contexts to the ViewContext. View technologies could then look
- exclusively to the ViewContext rather than poke around in the various servlet
- contexts. (Of course, support for the original architecture would remain for
- some time, to give third party libraries the chance to migrate.)
+ <b>ViewContext</b> - A <i>Chain Context</i> that implements the
+ logical "Velocity Tools" API.
</p>
<p>
- After having a chance to work with ActionContext and ViewContext ourselves, we
- could introduce more support for these members in a later release. But for 1.3,
- they could be marked "experimental".
+ In a later release,
+ we could move the taglib dependencies from the servlet contexts
+ to the ViewContext.
+ View technologies could then look exclusively to the ViewContext
+ rather than poke around in the various servlet contexts.
+ (Of course,
+ support for the original architecture would remain for some time,
+ to give third party libraries the chance to migrate.)
</p>
<p>
- The Commons Chain WebContext we now pass around Struts Chain could be called the
- "StrutsContext" to differentiate it from the ActionContext and ViewContext.
+ After having a chance to work with ActionContext and ViewContext
+ ourselves,
+ we could introduce more support for these members in a later
+ release.
+ But for 1.3.x, they could be marked "experimental".
</p>
<p>
- (Are we now starting to call everything "Context" instead of "Action"? Not
- really. We use the "Context" suffix when a member extends Chain Context. This
- convention is unlike the current "Action" soup, since "Context" is a suffix
- that identifies a member's "family" history.)
- </p>
-
- <p><b>Subproject Distributions</b></p>
-
- <p>
- Also as planned, we would extract the Taglibs package into its own subproject.
- (Giving us a chance to make the Taglibs 1.0.1 release utilize the ViewContext.)
- We might also consider extracting "Actions" (plural) and "Plugins" into a
- separate "Extras" subproject. While the members here are popular, they are
- optional, and not essential to the core.
+ The Commons Chain WebContext we now pass around Struts Chain
+ could be called the "StrutsContext" to differentiate it from the
+ ActionContext and ViewContext.
</p>
<p>
- We've mentioned that each subproject should have its own release cycle. We've
- also mentioned the idea of "bundling" subprojects into a master distribution.
- We might consider taking that idea a step further and utilize the "Linux"
- approach. The Struts "1.3.0" distribution could be an aggregation of "Core
- 1.0.x", "Taglibs 1.0.x", and "Extras 1.0.x".
- </p>
-
- <p>
- Later, if we end up with a Taglibs 1.0.1 GA before there is another Core 1.0.x
- GA, we could assemble a "Struts 1.3.1" distribution that aggregates (for
- example) "Core 1.0.0", "Taglibs 1.0.1", and "Extras 1.0.0".
- </p>
-
- <p>
- The Struts aggregate distribution doesn't have to be complicated, perhaps just
- a ZIP of whatever subproject GA distributions work with the "best available"
- core.
+ (Are we now starting to call everything "Context" instead of
+ "Action"?
+ Not really.
+ We use the "Context" suffix when a member extends Chain Context.
+ This convention is unlike the current "Action" soup,
+ since "Context" is a suffix that identifies a member's
+ "family" history.)
</p>
+ </subsection>
- <p><b>1.4 considerations</b></p>
+ <a name="Struts_1_4_x"/>
+ <subsection name="Struts Core 1.4.x considerations">
<p>
- One we get past 1.3.x, there are some other things that we might consider.
+ One we get past 1.3.x,
+ there are some other things that we might consider.
</p>
<p>
- <b>Consider combining DTDs.</b> Right now, using "standard" extensions like Tiles and
- Validator mean using more than one configuration file. While using multiple
- configurations files can be a good thing, we should also try and support the
- idea of having a single configuration file. This might not work-out for Tiles,
- but we might be able to at least integrate the Validator configuration with the
- DynaForm configuration.
+ <b>Consider combining DTDs.</b>
+ Right now,
+ using "standard" extensions like Tiles and Validator mean using
+ more than one configuration file.
+ While using multiple configurations files can be a good thing,
+ we should also try and support the idea of having a single
+ configuration file.
+ This might not work-out for Tiles,
+ but we might be able to at least integrate the Validator
+ configuration with the DynaForm configuration.
</p>
<p>
- <b>Consider adding catalog element.</b> Depending on how the work goes with the
- experimental ActionCommand interface, we might identifiy a need to add a
- catalog element to the Struts configuration, to support using a Chain of
- ActionCommands.
+ <b>Consider adding catalog element.</b>
+ Depending on how the work goes with the experimental
+ ActionCommand interface,
+ we might identifiy a need to add a catalog element to the
+ Struts Core configuration,
+ to support using a Chain of ActionCommands.
</p>
<p>
- <b>Consider refactoring for Spring.</b> We identified the need for adding a IOC
- container to Struts some time ago, but stalled on the point of which to use.
- Since then, Spring has gained a lot of momentum. Spring is used by the MyFaces
- and Beehive teams, and its on the radar for Shale. There is already a
- Struts-Spring component in the Spring distribution and other common ground.
+ <b>Consider refactoring for Spring.</b>
+ We identified the need for adding a IOC container to Struts
+ some time ago,
+ but stalled on the point of which to use.
+ Since then,
+ Spring has gained a lot of momentum.
+ Spring is used by the MyFaces and Beehive teams,
+ and its on the radar for Shale.
+ There is already a Struts-Spring component in the Spring
+ distribution and other common ground.
</p>
+ </subsection>
- <p><b>1.5 considerations</b></p>
+ <a name="Struts_1_5_x"/>
+ <subsection name="Struts Core 1.5.x considerations">
<p>
- Based on our own work with the "experimental" members introduced in 1.3.x, we
- might consider some other changes.
+ Based on our own work with the "experimental" members
+ introduced in 1.3.x,
+ we might consider some other changes.
</p>
<p>
- <b>Consider a "smart" action type.</b> The idea is that a command in Struts chain
- could look at the type indicated by the ActionMapping so both Action classes
- and ActionCommand implementations are supported. People could then
- mix-and-match Actions with ActionCommands (or even chains of ActionCommands).
- We might even support placing an ActionCommand interface on ActionForm, so
- people could skip having a seperate Action or ActionCommand class. The ActionForm
- could do it all.
+ <b>Consider a "smart" action type.</b>
+ The idea is that a command in Struts chain could look at the type
+ indicated by the ActionMapping so both Action classes and
+ ActionCommand implementations are supported.
+ People could then mix-and-match Actions with ActionCommands
+ (or even chains of ActionCommands).
+ We might even try placing an ActionCommand interface on
+ ActionForm,
+ so people could skip having a seperate Action or ActionCommand
+ class.
+ The ActionForm could do it all.
</p>
<p>
- <b>Consider a "populate" method on ActionForm.</b> From an OOP standpoint, it might be
- cleaner if an ActionForm populated itself rather than rely on an "god" class to
- populate it from the outside.
+ <b>Consider a "populate" method on ActionForm.</b>
+ From an OOP standpoint,
+ it might be cleaner if an ActionForm populated itself rather than
+ rely on a "god" class to populate it from the outside.
</p>
<p>
- <b>Consider a "FormContext" mechanism.</b> Rather than "throw-away" a request-based
- ActionForm, the object could be seralized as a hidden-field or session-object
- and restored on the next request. Many other frameworks support this behavior
- now. Struts would have a slightly different spin, since we look at the form as
- an named entity rather than as an anonymous aggregation of other objects.
+ <b>Consider a "FormContext" mechanism.</b>
+ Rather than "throw-away" a request-based ActionForm,
+ the object could be seralized as a hidden-field or session-object
+ and restored on the next request.
+ Many other frameworks support this behavior now.
+ Struts would have a slightly different spin,
+ since we look at the form as an named entity rather than as an
+ anonymous aggregation of other objects.
</p>
- <p><b>1.6 considerations</b></p>
+ </subsection>
+
+ <a name="Struts_1_6_x"/>
+ <subsection name="Struts Core 1.6.x considerations">
<p>
- <b>Consider multiple controllers.</b> One reason we introduced modules was because
- "there can only be one" Struts controller in an application. With the
- context-based changes we making, we might be able to introduce a mechanism to
- support a collection of Struts controllers, each identified by its servlet or
- filter name, each with it's own URI pattern. The key to being able to do
- something like this is for view members to look to the ViewContext rather than
- the various servlet contexts. Each Struts controller would place the
- appropriate ViewContext in its own requests.
+ <b>Consider multiple controllers.</b>
+ One reason we introduced modules was because "there can only be
+ one" Struts controller in an application.
+ With the context-based changes we making,
+ we might be able to introduce a mechanism to support a collection
+ of Struts controllers,
+ each identified by its servlet or filter name,
+ each with it's own URI pattern.
+ The key to being able to do something like this is for view
+ members to look to the ViewContext rather than the various servlet
+ contexts.
+ Each Struts controller would place the appropriate ViewContext in
+ its own requests.
</p>
<p>
- <b>Consider an alternate configuration file.</b> There are idiosyncrasies in the
- element/attribute names of the struts-config which often confuse new
- developers. By either supporting alternative configuration loaders, or applying
- a stylesheet to a XML configuration, we could support both the "classic" and a
- new configuration.
+ <b>Consider an alternate configuration file.</b>
+ There are idiosyncrasies in the element/attribute names of the
+ struts-config which often confuse new developers.
+ By either supporting alternative configuration loaders,
+ or applying a stylesheet to a XML configuration,
+ we could support both the "classic" and a new configuration.
</p>
</subsection>
- <a name="Struts_2_0"/>
- <subsection name="Struts 2.0.x">
-
- <p>
- Struts 2.x (aka Struts "Next Generation") will include broader enhancements.
- We anticipate that the implementation will utilize the Servlet 2.4 / JSP 2.0
- platform, and perhaps Java 1.5, but may optionally support earlier platforms.
- </p>
-
- <p>
- We anticipate that Struts 2.x would rely on JSTL and the JavaServer Faces
- API as supporting technologies.
- However, the focus of the Struts framework will remain on the Controller
- aspect of a Model 2/MVC architecture.
- The core framework will continue to be both Model and View independent.
- </p>
-
- <p>
- Development of Struts 2.x would include taking a completely fresh look at
- the internal architecture.
- The goal for 2.x would be to incorporate everything we've learned in the past
- years of Struts usage, and create something even better.
- Development will follow current best practices, like Test Driven Development,
- and rely on technologies like Maven for project management.
- </p>
-
- <p>
- Of course, it is anticipated that the Struts team would continue to support
- the 1.x codebase for a long time with bugfixes and incremental enhancements.
- (Mainly because many of us will still be using it on our production sites!)
- Accordingly, it is anticipated that the development of the 2.x and 1.x
- series would occur in tandem.
- At some point, 2.x milestones may appear alongside new 1.x releases.
- </p>
-
- <p>
- As Struts 1.x evolves, some (or all) target features may overlap.
- Target features for Struts 2.x include:
- </p>
-
- <ul>
-
- <li>
- Comprehensive unit test coverage for all core features
- </li>
-
- <li>
- Enhanced support for using Struts in large team environments.
- </li>
-
- <li>
- Transparent support for a portlet environment (JSR 168), with
- minimal-to-no changes in your business logic and pages.
- </li>
-
- <li>
- Direct support for JSTL/JSF taglibs and the JSF API
- </li>
-
- <li>
- Enhanced support for other presentation layers, such as XLST
- </li>
-
- <li>
- Enhanced support for scriptable Actions, using technologies like BSF or Jelly
- </li>
-
- <li>
- Refactoring for new technologies available on the Servlet 2.4/ JSP 2.0 platform
- </li>
-
- </ul>
-
- <p>
- An early proposal for one possible implementation of Struts 2.x, "Struts Jericho",
- is available through the <a href="http://wiki.apache.org/struts/StrutsJericho">wiki</a>.
- </p>
-
- <p>
- A second proposal for Struts 2.x, "Struts Shale", has accepted as a subproject
- instead. See the <a href="http://wiki.apache.org/struts/StrutsShale">wiki.</a> for more.
- </p>
-
- <p>
- Proposals aside, it is quite possible that Struts 1.x will simply evolve into
- what people envision as Struts 2.x. Should that happen, and each release is backwardly
- compatible with the prior release, it would not be necessary to increment the major version
- number at all. Instead of Struts 2.x, we may yet see Struts 1.64 :)
- </p>
-
-</subsection>
-
<a name="Portlets"/>
<subsection name="Portlet (JSR-168) Whiteboard">
<p>
- There are three major issues with supporting JSR-168 (and I'm sure a bunch of smaller ones as well):
+ There are three major issues with supporting JSR-168
+ (and probably a bunch of smaller ones as well):
</p>
<ul>
<li>
- Struts APIs assume servlet API objects (ServletContext, ServletRequest, ServletResponse), whereas JSR-168
- talks about PortletContext, PortletRequest, and PortletResponse.
- We'd either need to change the calling sequence for Action.execute() -- problematic for backwards
- compatibility -- or fake it somehow in a portlet environment.
+ Struts APIs assume servlet API objects (ServletContext,
+ ServletRequest, ServletResponse), whereas JSR-168 talks about
+ PortletContext, PortletRequest, and PortletResponse.
+ We'd either need to change the calling sequence for
+ Action.execute() -- problematic for backwards compatibility --
+ or fake it somehow in a portlet environment.
</li>
<li>
- The lifecycle of a portlet request is actually divided into two chunks -- processing and then rendering.
- From a Struts perspective, that means making sure that the first part of the request processor pipeline
- need to happen in the "process" part, and the forwarding to the resulting page needs to happen in the
+ The lifecycle of a portlet request is actually divided into two
+ chunks -- processing and then rendering.
+ From a Struts perspective,
+ that means making sure that the first part of the request
+ processor pipeline need to happen in the "process" part,
+ and the forwarding to the resulting page needs to happen in the
"render" part.
</li>
<li>
- Today, Struts owns the process of calculating URLs for pages and actions.
- Because it's in a webapp, it knows exactly what to do for the developer.
- However, in a portlet container it's actually the portal server that manages URLs, so a Struts-based
- portlet would need to interact with the portlet APIs for this purpose.
+ Today,
+ Struts owns the process of calculating URLs for pages and actions.
+ Because it's in a webapp,
+ it knows exactly what to do for the developer.
+ However,
+ in a portlet container it's actually the portal server that
+ manages URLs,
+ so a Struts-based portlet would need to interact with the portlet
+ APIs for this purpose.
</li>
</ul>
<p>
- A strong goal should be that a Struts application should be usable either as a webapp or as a portlet, with
- little (ideally no) changes.
- Therefore, we should build whatever it takes to support this into the standard Struts distribution, which would
- then be used in both environments.
+ A strong goal should be that a Struts Core application should be
+ usable either as a webapp or as a portlet,
+ with little (ideally no) changes.
+ Therefore, we should build whatever it takes to support this into
+ the standard Struts Core distribution,
+ which woulf then be used in both environments.
</p>
</subsection>
- <a name="jsf"/>
- <subsection name="JavaServer Faces">
-
- <p>
- Struts is providing support for <a href="http://java.sun.com/j2ee/javaserverfaces/">JavaServer Faces</a>
- through the Struts Faces Integration Library. The Struts Faces tablib allows developers to migrate
- pages to JSF but retain use of their Actions. Pages can be migrated on a one-by-one basis. The
- Struts Faces taglib is still under development, and a 1.0.x release is forthcoming.
- </p>
- <p>
- As JSF comes into broader use, it is expected that
- Struts developers will continue to offer enhancements to make it even easier to use Struts with JSF,
- such as the <a href="http://wiki.apache.org/struts/StrutsShale">Struts Shale</a> proposal.
- </p>
-
- <p>
- The <a href="http://incubator.apache.org/myfaces/">MyFaces team</a> is in the process of joining the Apache Software Founcation. Once the Apache MyFaces team has access to the Apache TCK, it
- is expected to be recognized as a certified JSF implementation.
- </p>
-
- <p>
- For more about Struts and JavaServer faces, see:
- </p>
-
- <ul>
- <li>Craig McClanahan's <a href="http://blogs.sun.com/roller/page/craigmcc/20040927">blog entry</a></li>
- <li>Our <a href="faqs/kickstart.html#jsf">FAQ</a></li>
- <li><a href="http://www.jamesholmes.com/JavaServerFaces/">Java Server Faces Resources at JamesHolmes.com</a></li>
- </ul>
- </subsection>
-
<a name="Proposals"/>
<subsection name="Relevant Proposals">
<ul>
-
<li>
- <a href="http://cvs.apache.org/viewcvs/jakarta-commons-sandbox/chain/">Commons Chain of Responsiblity
- package</a>
+ <a href="http://cvs.apache.org/viewcvs/jakarta-commons-sandbox/chain/">
+ Commons Chain of Responsiblity package</a>
</li>
<li>
- <a href="http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/">CoRe Request Processor</a>
+ <a href="http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/">
+ CoRe Request Processor</a>
</li>
<li>
- <a href="http://wiki.apache.org/struts/StrutsRelease126">Release Plan 1.2.6</a>
+ <a href="http://wiki.apache.org/struts/StrutsRelease126">
+ Release Plan 1.2.6</a>
</li>
<li>
- <a href="proposals/struts-faces.html">struts-faces taglib</a>
+ <a href="proposals/struts-faces.html">struts-faces taglib</a>
</li>
- <li>
- <a href="http://wiki.apache.org/struts/StrutsJericho">Struts Jericho</a>
- </li>
+ <li>
+ <a href="http://wiki.apache.org/struts/StrutsJericho">
+ Struts Jericho</a>
+ </li>
- <li>
- <a href="http://wiki.apache.org/struts/StrutsShale">Struts Shale</a>
+ <li>
+ <a href="http://wiki.apache.org/struts/StrutsShale">
+ Struts Shale</a>
</li>
<li>
- <a href="http://wiki.apache.org/struts/StrutsOverDrive">Struts OverDrive</a>
- </li>
+ <a href="http://wiki.apache.org/struts/StrutsOverDrive">
+ Struts OverDrive</a>
+ </li>
+ <li>
+ <a href="http://wiki.apache.org/struts/StrutsTi">
+ Struts Ti</a>
+ </li>
</ul>
</subsection>
-<subsection>
+</section>
+
+<section>
<p class="right">Next:
<a href="userGuide/index.html">User Guide</a></p>
-</subsection>
-
</section>
+
</body></document>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org