Author: husted
Date: Wed Nov  2 05:55:48 2005
New Revision: 330256

URL: http://svn.apache.org/viewcvs?rev=330256&view=rev
Log:
* FAQ: Update for the 1.3.x series. (The Tag FAQs will be moved to a new FAQ 
under Taglib.) 
* Site: Add our old friends Turbine to the similar projects list. 

Modified:
    struts/core/trunk/xdocs/faqs/kickstart.xml
    struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml
    struts/sandbox/trunk/overdrive/PhoneBook/Core/PhoneBook.Core.xml
    struts/site/trunk/xdocs/navigation.xml

Modified: struts/core/trunk/xdocs/faqs/kickstart.xml
URL: 
http://svn.apache.org/viewcvs/struts/core/trunk/xdocs/faqs/kickstart.xml?rev=330256&r1=330255&r2=330256&view=diff
==============================================================================
--- struts/core/trunk/xdocs/faqs/kickstart.xml (original)
+++ struts/core/trunk/xdocs/faqs/kickstart.xml Wed Nov  2 05:55:48 2005
@@ -11,72 +11,58 @@
 <subsection name="Index">
 
 <p>
-Here are answers to the usual getting-started questions. <strong>For an 
in-depth, searchable FAQ, visit our friends at <a 
href="http://www.jguru.com/faq/home.jsp?topic=Struts";>JGuru</a>.</strong>
+Here are answers to the usual getting-started questions. 
 </p>
 
   <ul>
-    <li><a href="#why">Why do we need Struts?</a></li>
-    <li><a href="#how">How does Struts work?</a></li>
-    <li><a href="#compat">Is Struts compatible with other Java 
technologies?</a></li>
-    <li><a href="#who">Who wrote Struts?</a></li>
+    <li><a href="#why">Why do we need Struts Core?</a></li>
+    <li><a href="#how">How does Struts Core work?</a></li>
+    <li><a href="#compat">Is Struts Core compatible with other Java 
technologies?</a></li>
     <li><a href="#struts">Why is it called Struts?</a></li>
-    <li><a href="#license">How is Struts licensed?</a></li>
-    <li><a href="#usage">Can Struts be used in a commercial 
application?</a></li>
-    <li><a href="#credits">Do I have to credit Struts on my own 
website?</a></li>
+    <li><a href="#license">How is Apache Struts licensed?</a></li>
+    <li><a href="#usage">Can Apache Struts be used in a commercial 
application?</a></li>
+    <li><a href="#credits">Do I have to credit Apache Struts on my own 
website?</a></li>
   </ul>
   <ul>
-    <li><a href="#shale">Why are you offering both Struts Shale and Struts 
Classic? Don't they compete for new development?</a></li>
+    <li><a href="#who">Who wrote Struts Core?</a></li>
+    <li><a href="#shale">Why are you offering both Struts Shale and Struts 
Core? Don't they compete for new development?</a></li>
     <li><a href="#2x">Is Shale likely to become Struts 2.x?</a></li>
     <li><a href="#shale-fork">Is Struts Shale a fork?</a></li>
+    <li><a href="#classic">What's the difference between Struts Core and 
Struts Classic</a></li>
   </ul>
   <ul>
-    <li><a href="#where">Where can I get a copy of Struts?</a></li>
-    <li><a href="#install">How do I install Struts?</a></li>
-    <li><a href="#jar">When do I need the struts.jar on my classpath?</a></li>
-    <li><a href="#tests">Does Struts provide its own unit tests?</a></li>
+    <li><a href="#where">Where can I get a copy of Struts Core?</a></li>
+    <li><a href="#install">How do I install Struts Core?</a></li>
+    <li><a href="#jar">When do I need the struts-core.jar on my 
classpath?</a></li>
+    <li><a href="#tests">Does Struts Core provide its own unit tests?</a></li>
   </ul><ul>
     <li><a href="#requests">If the framework doesn't do what I want, can I 
request that a feature be added?</a></li>
-    <li><a href="#help">Where can I get help with Struts?</a></li>
-    <li><a href="#support">Is commercial support available for Struts?</a></li>
-    <li><a href="#providers">Are there ISPs that will host my Struts 
application?</a></li>
+    <li><a href="#help">Where can I get help with Apache Struts?</a></li>
+    <li><a href="#support">Is commercial support available for Apach 
eStruts?</a></li>
+    <li><a href="#providers">Are there ISPs that will host my Apache Struts 
application?</a></li>
+    <li><a href="#ide">Is there a particularly good IDE to use with Struts 
Core?</a></li>
   </ul><ul>
-    <li><a href="#turbine">What's the difference between Struts and Turbine?  
What's the difference between Struts and Expresso?</a></li>
-    <li><a href="#taglibs">Why aren't the Struts tags maintained as part of 
the Jakarta Taglibs project?</a></li>
-    <li><a href="#xhtml">Are the Struts tags XHTML compliant?</a></li>
-    <li><a href="#jsf">What about JSTL and JavaServer Faces?</a></li>
-    <li><a href="#ide">Is there a particularly good IDE to use with 
Struts?</a></li>
- </ul><ul>
-    <li><a href="#digest">Is there a digest for the User list?</a></li>
-    <li><a href="#newsgroup">Is there a Struts Newsgroup?</a></li>
+    <li><a href="#digest">Is there a digest for the Apache Struts User 
list?</a></li>
+    <li><a href="#newsgroup">Is there a Apache Struts Newsgroup?</a></li>
     <li><a href="#mailbounce">Why didn't my posting show up on the user 
list?"</a></li>
     <li><a href="#unsubscribe">How do I unsubscribe from the mailing 
list?</a></li>
   </ul>
 </subsection>
 
 <a name="why"/>
-<subsection name="Why do we need Struts?">
-<p>Java technologies give developers a serious boost when creating and 
maintaining applications to meet the demands of today's public Web sites and 
enterprise intranets. Struts combines Java Servlets, Java ServerPages, custom 
tags, and message resources into a unified framework. The end result is a 
cooperative, synergistic platform, suitable for development teams, independent 
developers, and everyone in between.</p>
+<subsection name="Why do we need Struts Core?">
+<p>Java technologies give developers a serious boost when creating and 
maintaining applications to meet the demands of today's public Web sites and 
enterprise intranets. Struts Core combines standard Java technologies into a 
unified framework. The end result is a cooperative, synergistic framework, 
suitable for development teams, independent developers, and everyone in 
between.</p>
 </subsection>
 
 <a name="how"/>
-<subsection name="How does Struts work?">
-<p>Java Servlets are designed to handle requests made by Web browsers. Java 
ServerPages are designed to create dynamic Web pages that can turn billboard 
sites into live applications. Struts uses a special Servlet as a switchboard to 
route requests from Web browsers to the appropriate ServerPage. This makes Web 
applications much easier to design, create, and maintain.</p>
+<subsection name="How does Struts Core work?">
+<p>Java Servlets are designed to handle requests made by Web browsers. Server 
pages are designed to create dynamic Web pages that can turn billboard sites 
into live applications. Struts Core uses a special Servlet as a switchboard to 
route requests from Web browsers to the appropriate server page. This makes Web 
applications much easier to design, create, and maintain.</p>
 </subsection>
 
 <a name="compat"/>
-<subsection name="Is Struts compatible with other Java technologies?">
+<subsection name="Is Struts Core compatible with other Java technologies?">
 <p>Yes. Struts is committed to supporting industry standards.
-    Struts acts as an integrator of Java technologies so that they can be used 
in the &quot;real world&quot;.</p>
-</subsection>
-
-<a name="who"/>
-<subsection name="Who wrote Struts?">
-    <p>There are several <a href="../volunteers.html">active committers</a> to 
the Struts project, working cooperatively from around the globe.  Dozens of 
individual developers and committers contributed to the Struts 1.x codebase. 
All interested Java developers are invited to <a 
href="helping.html#contribute">contribute to the project</a>.
-    Struts is a <a href="http://apache.org/";>Apache Software Foundation</a>  
project, with the mission to &quot;provide secure, enterprise-grade server 
solutions based on the Java Platform that are developed in an open and 
cooperative fashion&quot;.</p>
-    <p>Struts was created by Craig R. McClanahan and donated to The Apache 
Software Foundation in May 2000. Craig was the primary developer of both Struts 
1.x and <a href="http://jakarta.apache.org/tomcat/index.html";>Tomcat 4</a>. 
Tomcat 4 was the basis for the official reference implementation for a servlet 
2.3 and JSP 1.2 container.</p>
-    <p>Craig's current focus is as architect of the Sun Java Studio Creator 
(formerly Project Rave).
-    Craig also serves as the Specification Lead for <a 
href="http://jcp.org/jsr/detail/127.jsp";>JavaServer Faces (JSR-127)</a>,
-    and is the Web Layer Architect for the Java2 Enterprise Edition (J2EE) 
platform as a whole.</p>
+   Struts acts as an integrator of Java technologies so that they can be used 
in the &quot;real world&quot;.</p>
 </subsection>
 
 <a name="struts"/>
@@ -85,68 +71,85 @@
 </subsection>
 
 <a name="license"/>
-<subsection name="How is Struts licensed?">
-<p>Struts is copyrighted software available under the <a 
href="http://www.apache.org/licenses";>Apache License</a>, a &quot;free-to-use, 
business-friendly license&quot;.</p>
+<subsection name="How is Apache Struts licensed?">
+<p>All Apache Struts products are copyrighted software available under the <a 
href="http://www.apache.org/licenses";>Apache License</a>, a &quot;free-to-use, 
business-friendly license&quot;.</p>
 </subsection>
 
 <a name="usage"/>
-<subsection name="Can Struts be used in a commercial product?">
+<subsection name="Can Apache Struts be used in a commercial product?">
 <p>Yes. The only requirements you must meet are those listed in the <a 
href="http://www.apache.org/licenses";>Apache License</a>.</p>
 </subsection>
 
 <a name="credits"/>
-<subsection name="Do I have to credit Struts on my own website?">
-<p>You need to credit Struts if you <strong>redistribute your own 
framework</strong> based on Struts
+<subsection name="Do I have to credit Apache Struts on my own website?">
+<p>You need to credit Apache Struts if you <strong>redistribute your own 
framework</strong> based on our products
 for other people to use. (See the <a 
href="http://www.apache.org/LICENSE";>Apache License</a> for details.)
-But you do <strong>not</strong> need to credit Struts just because your web 
application utilizes the framework.
+But you do <strong>not</strong> need to credit Apache Struts just because your 
web application utilizes one of our products.
 It's the same situation as using the Apache HTTPD server or Tomcat. Not 
required if its just running your web site.
 Required if you've used the source code to create your own server that you are 
redistributing to other people.</p>
 </subsection>
 
+<a name="who"/>
+<subsection name="Who wrote Struts Core?">
+    <p>There are several <a href="../volunteers.html">active committers</a> to 
the Apache Struts project, working cooperatively from around the globe.  Dozens 
of individual developers and committers contributed to the Struts 1.x codebase. 
All interested developers and wordsmiths are invited to <a 
href="http://struts.apache.org/helping.html#contribute";>contribute to the 
project</a>.</p>
+    <p>The initial Struts codebase (Struts 0.5) was created by Craig R. 
McClanahan in May 2000 and donated to The Apache Software Foundation in May 
2000. Craig was the primary developer of both Struts 1.x and <a 
href="http://jakarta.apache.org/tomcat/index.html";>Tomcat 4</a>. Tomcat 4 was 
the basis for the official reference implementation for a servlet 2.3 and JSP 
1.2 container.</p>
+    <p>After serving as the co-lead of the JSR 127 specification 
(JavaServerFaces), Craig created another version of Struts based on 
JavaServerFaces, called Shale. Both Struts Core and Struts Shale are 
first-class citizens of the Apache Struts project. </p>
+</subsection>
+
 <a name="shale"/>
-<subsection name="Why are you offering both Struts Shale and Struts Classic? 
Don't they compete for new development?">
-<p>We do offer Struts developers a choice, but, hey, choice is good. :)</p>
-<p>People who want to create and maintain Struts Classic are welcome to do 
so.</p>
+<subsection name="Why are you offering both Struts Shale and Struts Core? 
Don't they compete for new development?">
+<p>We do offer Apache Struts developers a choice, but, hey, choice is good. 
:)</p>
+<p>People who want to create and maintain Struts Core are welcome to do so.</p>
 <p>People who want to create and maintain Struts Shale are equally welcome.</p>
 <p>As a volunteer organization, we are not constrained by the economics of 
competition. All we need are volunteers who are ready, willing, and able to do 
the work. So long as we have volunteers, we have work for them to do. :)</p>
-<p>Right now, we have volunteers who want to leverage the new JavaServer Faces 
framework by using Struts Shale for new development. We also have volunteers 
who prefer to leverage their existing investment in Struts Classic. All are 
welcome.</p>
+<p>Right now, we have volunteers who want to leverage the new JavaServer Faces 
framework by using Struts Shale for new development. We also have volunteers 
who prefer to leverage their existing investment in Struts Core. All are 
welcome.</p>
 <p>For more about volunteering, visit our <a 
href="http://struts.apache.org/faqs/helping.html";>how to help page</a>.</p>
 </subsection>
 
 <a name="2x"/>
 <subsection name="Is Shale likely to become Struts 2.x?">
-<p>Struts Shale has its own identity and its own release cycle. Struts Classic 
is one subproject, and Struts Shale is another.</p>
-<p>So, no, it is not likely that Struts Shale will become Struts Classic 
2.x.</p>
-<p>Right now, there are no concrete plans for a 2.x release of Struts Classic. 
The people working on the 1.x series want to evolve the code base without 
breaking backward compatibility.</p>
-<p>The reasons to roll the major version number are when</p>
+<p>Struts Shale has its own identity and its own release cycle. Struts Core is 
one subproject, and Struts Shale is another.</p>
+<p>So, no, it is not likely that Struts Shale will become Struts Core 2.x.</p>
+<p>Right now, there are no concrete plans for a 2.x release of Struts Core. 
The people working on the 1.x series want to evolve the code base without 
breaking backward compatibility.</p>
+<p>In our opinion, the reasons to roll the major version number are when</p>
 <ul>
     <li>a new codebase is created, or</li>
     <li>there is a break in backward compatability.</li>
 </ul>
-<p>Should either of these things happen, then, in that event, there might be a 
Struts Classic 2.x.</p>
-<p>For example, right now, most everyone is using Java 1.3, so that it is what 
Struts Classic targets. But, if someone wanted to start a "Struts Tiger" 
codebase, using the new features of Java 1.5, something like that might be a 
candidate for Struts Classic 2.x.</p>
-<p>But, so long as each Struts Classic release follows the 
deprecate/replace/remove strategy, and targets the mainstream platform, we will 
just keep rolling the minor version number. If this takes us to Struts 1.42 or 
Struts 1.2025, then so be it.</p>
+<p>Should either of these things happen, then, in that event, there might be a 
Struts Core 2.x.</p>
+<p>For example, right now, most of us are using Java 1.3 in production, so 
that is the platform that Struts Core targets. But, if someone wanted to start 
a "Struts Tiger" codebase, using the new features of Java 1.5, something like 
that might be a candidate for Struts Core 2.x.</p>
+<p>But, so long as each Struts Core release follows the 
deprecate/replace/remove strategy, and targets the mainstream platform, we will 
just keep rolling the minor version number. If this takes us to Struts 1.42 or 
Struts 1.2025, then so be it.</p>
 </subsection>
 
 <a name="fork"/>
 <subsection name="Is Struts Shale a fork?">
-<p>No. It's an entirely new product with its own architecture. Struts Shale is 
an MVC framework for web applications, like Struts Classic, but it's a fresh 
start. Struts Shale is the best choice for developers eager to leverage the 
latest technologies, like JavaServer Faces.</p>
+<p>No. It's an entirely new product with its own architecture. Struts Shale is 
an MVC framework for web applications, like Struts Core, but it's a fresh 
start. Struts Shale is the best choice for developers eager to leverage the 
latest technologies, like JavaServer Faces.</p>
 <p>Both frameworks will have a home here so long as there are volunteers ready 
to contribute.</p>
 <p>We encourage you to choose the framework that works best for you. (Even if 
it is not one of ours!)</p>
 </subsection>
 
+<a name="core"/>
+<subsection name="What's the difference between Struts Core and Struts 
Classic?">
+<p>For the Struts Core 1.3.x series, we subdivided the monolithic Struts 1.2.x 
distribution into several discrete subprojects. Struts Classic is a codename 
for the work we needed to do to create and release the new subprojects. </p>
+<p>For a time, we considered bundling those seven products together and 
calling the bundle "Struts Classic". Instead, we are bundling Struts Core and 
any compatible projects into a distribution called "Struts Core Library". This 
bundle includes the original "seven dwarfs" and new subprojects, like Struts 
Scripting.</p>
+</subsection>
+
 <a name="where"/>
-<subsection name="Where can I get a copy of Struts?">
-<p>The best place to download Struts is at <a 
href="http://struts.apache.org/";>struts.apache.org</a>. The nightly builds are 
very stable, and recommended as the best place to start today.</p>
+<subsection name="Where can I get a copy of Struts Core?">
+<p>The best place to download Apahce Struts products is at <a 
href="http://struts.apache.org/";>struts.apache.org</a>. The nightly builds are 
very stable, and recommended as the best place to start today.</p>
 </subsection>
 
 <a name="install"/>
-<subsection name="How do I install Struts?">
+<subsection name="How do I install Struts Core?">
 <p>To develop applications with Struts, you can usually just add the Struts 
JAR file
 to your Java development environment. You can then start using the Struts 
classes as
 part of your own application. A blank Struts application (in the
 <code>webapps</code> directory, open <code>struts-blank.war</code>)
 is provided, which you can just copy to get a quick-start on your own 
brainchild.</p>
+<p>Aside from the Struts Core jar, the blank application includes the other 
Struts Core 
+Library JARs and dependencies. 
+All dependencies are compatible with the Apache License.
+</p>
 <p>Since the full source code for Struts is available, we also provide
 <a href="../userGuide/installation.html">complete instructions</a>
 for compiling your own Struts JAR from scratch. (This is actually easier than 
it looks!)</p>
@@ -158,22 +161,22 @@
 </subsection>
 
 <a name="jar"/>
-<subsection name="When do I need &quot;struts.jar&quot; on my classpath?">
-<p>When you are compiling an application that uses the Struts classes, you 
must have the &quot;struts.jar&quot; on the classpath your 
<strong>compiler</strong> sees -- it does not <em> have</em> to be on your 
CLASSPATH environment variable.</p>
-<p>Why is that an important distinction? Because if you are using a servlet 
container on your development machine to test your application, the 
&quot;struts.jar&quot; <strong>must not</strong> be on your CLASSPATH 
environment variable when running the container. (This is because each Web 
application must also have their own copy of the Struts classes, and the 
container will become confused if it is on the environment path as well.)</p>
+<subsection name="When do I need &quot;struts-core.jar&quot; on my classpath?">
+<p>When you are compiling an application that uses the Struts classes, you 
must have the &quot;struts-core.jar&quot; on the classpath your 
<strong>compiler</strong> sees -- it does not <em> have</em> to be on your 
CLASSPATH environment variable.</p>
+<p>Why is that an important distinction? Because if you are using a servlet 
container on your development machine to test your application, the 
&quot;struts-core.jar&quot; <strong>must not</strong> be on your CLASSPATH 
environment variable when running the container. (This is because each Web 
application must also have their own copy of the Struts classes, and the 
container will become confused if it is on the environment path as well.)</p>
 <p>There are several general approaches to this issue:</p>
 <ul>
 <li><strong>Use ANT</strong> for building your projects -- it can easily 
assemble classpaths for the compiler.  (This is how Struts itself is  built, 
along with Tomcat and most other Java-based projects).</li>
 <li><strong>Use an IDE</strong> where you can configure the "class path" used  
for compilation independent of the CLASSPATH environment  variable.</li>
-<li><strong>Use a shell script</strong> that temporarily adds struts.jar  to 
the classpath just for compilation, for example<br/>
-<em>javac -classpath /path/to/struts.jar:$CLASSPATH $@</em></li>
+<li><strong>Use a shell script</strong> that temporarily adds struts-core.jar  
to the classpath just for compilation, for example<br/>
+<em>javac -classpath /path/to/struts-core.jar:$CLASSPATH $@</em></li>
 </ul>
 </subsection>
 
 <a name="tests"/>
-<subsection name="Does Struts include its own unit tests?">
+<subsection name="Does Struts Core include its own unit tests?">
 <p>
-Struts currently has two testing environments, to reflect the fact that
+Struts Core currently has two testing environments, to reflect the fact that
 some things can be tested statically, and some really need to be done in
 the environment of a running servlet container.</p>
 <p>
@@ -198,9 +201,9 @@
 <a name="requests"/>
 <subsection name="If the framework doesn't do what I want, can I request that 
a feature be added?">
 <p>
-First, it's important to remember that Struts is an all-volunteer project.
-We don't charge anyone anything to use Struts.
-Committers and other developers work on Struts because they need to use it 
with their own applications.
+First, it's important to remember that Apache Struts is an all-volunteer 
project.
+We don't charge anyone anything to use Apache Struts products.
+Committers and other developers work on Apache Struts products because they 
need to use it with their own applications.
 If others can use it too, that's "icing on the cake".
 If you <a href="../helping.html">submit a patch</a> for a feature that a 
Committer finds useful, then that Committer may choose to volunteer his or her 
time to apply the patch.
 If you just submit an idea without a patch, it is much less likely to be added 
(since first someone else has to volunteer their time to write the patch).
@@ -211,25 +214,22 @@
 </subsection>
 
 <a name="help"/>
-<subsection name="Where can I get help with Struts?">
-<p>The Struts package comes complete with a
+<subsection name="Where can I get help with Struts Core?">
+<p>Struts Core comes complete with a
 <a href="../userGuide/index.html">Users Guide</a> to
 introduce people to the framework and its underlying technologies. Various 
components
 also have their own in-depth Developers Guide, to cover more advanced topics. 
Comprehensive
 <a href="../api/index.html">Javadocs</a> are included
-along with the <strong>full source code</strong>. For your convenience, these 
are bundled together as
-a self-installing application. The <code>struts-documentation.war</code> is 
the same
-bundle that is deployed as the
-<a href="http://struts.apache.org/";>Struts Web site</a>.
+along with the <strong>full source code</strong>.
 </p>
 <p>
 The
-<a href="http://struts.apache.org/using.html#lists";>Strut's mailing list</a> 
is also
+<a href="http://struts.apache.org/mail.html";>Struts user mailing list</a> is 
also
 very active, and welcomes posts from new users. Before posting a new question, 
be
 sure to consult the
-<a href="../mail.html#Archives">
+<a href="http://struts.apache.org/mail.html#Archives";>
 <strong>MAILING LIST ARCHIVE</strong></a> and the very excellent
-<a href="http://www.tuxedo.org/~esr/faqs/smart-questions.html";>
+<a href="http://www.catb.org/~esr/faqs/smart-questions.html";>
 How To Ask Questions The Smart Way</a> by Eric Raymond. Please do be sure
 to <a href="http://expita.com/nomime.html";>turn off HTML</a> in your
 email client before posting.
@@ -238,128 +238,17 @@
 
 <a name="support"/>
 <subsection name="Is commercial support available?">
-<p>There is no official, commercial support for Struts, though third parties 
may offer different degrees of support. </p>
+<p>The Apache Software Foundation does not provide commercial support for any 
of our software products, including Apache Struts products. 
+However, third parties may offer different degrees of support. </p>
 </subsection>
 
 <a name="providers"/>
 <subsection name="Are there ISPs that will host my Struts application?">
-<p>For a listing of some Java and Struts ISPs, visit the <a 
href="http://struts.sf.net/community/index.html";>Struts Community Resources</a> 
area on SourceForge.</p>
-</subsection>
-
-<a name="turbine"/>
-<subsection name="What's the difference between Struts and Turbine? What's the 
difference between Struts and Expresso?">
-<p>
-If you are starting from scratch, packages like
-<a href="http://jakarta.apache.org/turbine";>Turbine</a> and
-<a href="http://jcorporate.com";>Expresso</a>
-can be very helpful since they try to provide all of the basic services that 
your team is likely to need.
-Such services include things like data persistence and logging.
-</p>
-<p>
-If you are not starting from scratch, and need to hook up your web application 
to an existing infrastructure, then "plain vanilla" Struts can be a better 
choice.
-The core Struts framework does not presuppose that you are using a given set 
of data persistence, presentation, or logging tools.
-Anything goes =:0)
-</p>
-<p>
-Compared to other offerings, Struts endeavors to be a minimalist framework.
-We try leverage existing technologies whenever we can and provide only the 
missing pieces you need to combine disparate technologies into a coherent 
application.
-This is great when you want to select your own tools to use with Struts.
-But, if you prefer a more integrated infrastructure, then packages like 
Turbine or Expresso (which uses Struts) are perfectly good ways to go.
-</p>
-<p>See also</p>
-<ul>
-<li>&lt; <a 
href="http://www.mail-archive.com/struts-user@jakarta.apache.org/msg03206.html";>http://www.mail-archive.com/struts-user@jakarta.apache.org/msg03206.html</a>
 &gt;</li>
-<li>&lt; <a 
href="http://www.mail-archive.com/general@jakarta.apache.org/msg00495.html";>http://www.mail-archive.com/general@jakarta.apache.org/msg00495.html</a>
 &gt;</li>
-<li>&lt; <a 
href="http://jakarta.apache.org/velocity/ymtd/ymtd.html";>http://jakarta.apache.org/velocity/ymtd/ymtd.html</a>
 &gt;</li>
-</ul>
-</subsection>
-
-<a name="taglibs"/>
-<subsection name="Why aren't the Struts tags maintained as part of the Jakarta 
Taglibs project?">
-<p>Development of both products began about the same time. Leading up to the 
release of 1.0, it was thought better to continue to develop the taglibs 
alongside the controller. Now that 1.0 is out, the JavaServer Pages Standard 
Taglib is in active development. Once work on JSTL stabilizes, the Struts 
taglibs will be revisited. Tags which are not linked directly to the framework 
may be hosted at Jakarta Taglibs instead.</p>
-</subsection>
-
-<a name="xhtml"/>
-<subsection name="Are the Struts tags XHTML compliant?">
-<p>If you use an &lt;html:html xhtml="true&gt; or &lt;html:xhtml/&gt; element 
on your page, the tags
-will render as XHTML (since Struts 1.1). </p>
-</subsection>
-
-<a name="wml"/>
-<subsection name="Will the Struts tags support other markup languages such as 
WML">
-<p>
-Struts itself is markup neutral. The original Struts taglibs are only one 
example of how
-presentation layer components can access the framework. The framework objects 
are exposed
-through the standard application, session, and request contexts, where any 
Java component in
-the application can make use of them.
-</p>
-
-<p>Markup extensions that use Struts are available for
-<a href="http://jakarta.apache.org/velocity";>Velocity</a> and
-<a href="http://www.openroad.ca/opencode/";>XLST</a>, among others.
-A new Struts tag library for
-<a href="#jsf">Java Server Faces</a> is also in development.
-</p>
-
-<p>For more about using WAP/WML with Struts see the article
-<a href="http://www.sys-con.com/pbdj/archives2/0904/hamboeck/";>
-WAP up your EAserver</a>.
-</p>
-</subsection>
-
-<a name="jsf"/>
-<subsection name="What about JSTL and JavaServer Faces?">
-    <p>
-       JSTL, the <a href="http://java.sun.com/products/jsp/jstl/";>
-       JavaServer Standard Tag Library</a>, is a set of JSP tags that
-       are designed to make it easier to develop Web applications.
-       <a href="http://java.sun.com/j2ee/javaserverfaces/";>JavaServer Faces</a>
-       (JSF) is a specification for a new technology that promises to make
-       it easier to write MVC applications, both for the Web and for the
-       desktop.
-    </p>
-<p>
-The inventor of Struts, Craig McClanahan, is the specification co-lead for
-JavaServer Faces (JSR 127), and architect of the reference implemenation
-as well as Java Studio Creator. Both JSTL and JSF are complementary to 
Struts.</p>
-<p>
-The mainstay of the Struts framework is the controller components, which
-can be used with any Java presentation technology. As new technologies
-become available, it is certain that new "glue" components will also
-appear to help these technologies work as well with Struts.
-    </p>
-    <p>
-        Struts originally came bundled with a set of custom JSP tags.
-        Today, several extensions are available to help
-        you use Struts with other popular presentation technologies, like
-        XSLT and Velocity. Likewise, extensions for JSTL and JSF are now 
available as well.
-    </p>
-<p>
-    The JSTL reference implementation is available through the
-    <a 
href="http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html";>Jakarta 
Taglibs site</a>.
-    A JSTL taglibs for Struts,
-    <a 
href="../userGuide/building_view.html#struts-el"><strong>Struts-El</strong></a>,
-    is available and distributed with Struts beginning with the 1.1 release.
-</p>
-    <p>
-        The JSF specification and reference implementation is available 
through Sun's
-        The JSF specification and reference implementation is available 
through Sun's
-        <a href="http://java.sun.com/j2ee/javaserverfaces/index.jsp";>Java 
ServerFaces page</a>.
-        An early-release JavaServer Faces taglib for Struts,
-        <strong>Struts-Faces</strong>, is also in early release and available 
through the
-        <a 
href="http://svn.apache.org/builds/jakarta-struts/nightly/struts-faces/";>nightly
 build</a>.
-        The Struts Faces taglib is expected to work with any compliant JSF 
implementation, including
-        <a href="http://www.myfaces.org/";>MyFaces</a>.
-    </p>
-    <p>
-        For more about what JavaServer Faces means to the Struts community,
-        see the <a href="http://wiki.apache.org/struts/StrutsMoreAboutJSF";>
-        StrutsMoreAboutJSF</a> wiki page.
-    </p>
+<p>For a listing of some Java and Struts Core ISPs, visit the <a 
href="http://struts.sf.net/community/index.html";>Struts Community Resources</a> 
area on SourceForge.</p>
 </subsection>
 
 <a name="ide"/>
-<subsection name="Is there a particularly good IDE to use with Struts">
+<subsection name="Is there a particularly good IDE to use with Struts Core">
 <p>
 Struts should work well with any development environment that you would like 
to use, as well as with any programmers editor.
 The members of the Struts development team each use their own tools such as
@@ -386,7 +275,7 @@
 </subsection>
 
 <a name="newsgroup"/>
-<subsection name="Is there a Struts newsgroup?">
+<subsection name="Is there an Apache Struts newsgroup?">
 <p>
 Not a usenet group, but the Struts User list can be accessed with your
 favorite newsgroup reader from the

Modified: struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml?rev=330256&r1=330255&r2=330256&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml Wed Nov  2 
05:55:48 2005
@@ -4,6 +4,44 @@
         <name>Nexus.Core</name>
     </assembly>
     <members>
+        <member name="T:WQD.Core.Controls.FindArgs">
+            <summary>
+            Provide an EventArgs type to interace with FindControls
+            that can be read or bound via an IDictionary object.
+            </summary>
+            
+        </member>
+        <member name="F:WQD.Core.Controls.FindArgs.OldArgs">
+            <summary>
+            A reference to the original arguments for an event, if any.
+            </summary>
+            
+        </member>
+        <member name="F:WQD.Core.Controls.FindArgs.Criteria">
+            <summary>
+            Expose our dictionary instance.
+            </summary>
+            
+        </member>
+        <member 
name="M:WQD.Core.Controls.FindArgs.#ctor(System.Collections.IDictionary)">
+            <summary>
+            Create this instance using the given dictionary.
+            </summary>
+            
+        </member>
+        <member name="M:WQD.Core.Controls.FindArgs.#ctor">
+            <summary>
+            Create a new instance with empty fields.
+            </summary>
+            
+        </member>
+        <member name="M:WQD.Core.Controls.FindArgs.#ctor(System.EventArgs)">
+            <summary>
+            Create a new instance, setting the old event arguments.
+            </summary>
+            <param name="oldArgs">Old Event arguments</param>
+            
+        </member>
         <member name="T:Nexus.Core.Helpers.IViewHelper">
             <summary>
             Provide a facade for use by a code-behind to simplify access to 
the 
@@ -23,7 +61,38 @@
             </summary>
             
         </member>
-        <!-- Badly formed XML comment ignored for member 
"M:Nexus.Core.Helpers.IViewHelper.Read(System.Collections.IDictionary,System.Boolean)"
 -->
+        <member 
name="M:Nexus.Core.Helpers.IViewHelper.Read(System.Collections.IDictionary,System.Boolean)">
+            <summary>
+            Read input into the Criteria from a given Dictionary.
+            </summary>
+            <param name="criteria">Attributes to add to Critiera</param>
+            <param name="nullIfEmpty">Set attributes for empty strings to 
null</param>
+            
+        </member>
+        <member 
name="M:Nexus.Core.Helpers.IViewHelper.AlertsFor(System.String)">
+            <summary>
+            Return the Alerts for the specifiied ID, 
+            formatted for display by a UI control.
+            </summary>
+            <remarks>
+            If messages are localized or customized, 
+            the helper will return correct version for the user.
+            UI specific implementation may markup the errors as needed.
+            </remarks>
+            
+        </member>
+        <member 
name="M:Nexus.Core.Helpers.IViewHelper.HintsFor(System.String)">
+            <summary>
+            Return the Hints for the specifiied ID, 
+            formatted for display by a UI control.
+            </summary>
+            <remarks>
+            If messages are localized or customized, 
+            the helper will return correct version for the user.
+            UI specific implementation may markup the errors as needed.
+            </remarks>
+            
+        </member>
         <member name="P:Nexus.Core.Helpers.IViewHelper.Criteria">
             <summary>
             Store input and output values.
@@ -62,6 +131,17 @@
             </remarks>
             
         </member>
+        <member name="P:Nexus.Core.Helpers.IViewHelper.AlertsText">
+            <summary>
+            Return the Alerts, including any Fault, formatted for display by a 
UI control.
+            </summary>
+            <remarks>
+            If messages are localized or customized, 
+            the helper will return correct version for the user.
+            UI specific implementation may markup the errors as needed.
+            </remarks>
+            
+        </member>
         <member name="P:Nexus.Core.Helpers.IViewHelper.HasAlerts">
             <summary>
             Indicate if alerts are queued.
@@ -92,17 +172,6 @@
             <returns>True if all is well.</returns>
             
         </member>
-        <member name="P:Nexus.Core.Helpers.IViewHelper.ErrorsText">
-            <summary>
-            Return the Alerts, including any Fault, formatted for display by a 
UI control.
-            </summary>
-            <remarks>
-            If messages are localized or customized, 
-            the helper will return correct version for the user.
-            UI specific implementation may markup the errors as needed.
-            </remarks>
-            
-        </member>
         <member name="P:Nexus.Core.Helpers.IViewHelper.Hints">
             <summary>
             Record a list of hint (or advisory) messages, 
@@ -247,26 +316,29 @@
             </remarks>
             
         </member>
-        <member name="P:Nexus.Core.Helpers.ViewHelper.Profile">
-            <summary>
-            Provide the user Profile for this Helper, if any.
-            </summary>
-            
-        </member>
         <member name="T:Nexus.Core.Profile.IProfile">
             <summary>
             Record user settings.
             </summary>
+            
         </member>
         <member name="P:Nexus.Core.Profile.IProfile.UserId">
             <summary>
             Record the User ID.
             </summary>
+            
         </member>
         <member name="P:Nexus.Core.Profile.IProfile.UserLocale">
             <summary>
             Record the User Locale.
             </summary>
+            
+        </member>
+        <member name="P:Nexus.Core.Profile.IProfile.Criteria">
+            <summary>
+            Record other default settings.
+            </summary>
+            
         </member>
         <member name="T:Nexus.Core.Profile.UserIdentity">
             <summary>
@@ -374,6 +446,17 @@
             <param name="name">A Identity Name that may contain a machine name 
reference</param>
             <returns>Identity name with machine name removed</returns>
         </member>
+        <member name="F:Nexus.Core.Profile.UserProfile._UserLocale">
+            <summary>
+            Provide a field for UserLocale property.
+            </summary>
+        </member>
+        <member name="F:Nexus.Core.Profile.UserProfile._Criteria">
+            <summary>
+            Provide a field for Criteria property.
+            </summary>
+            
+        </member>
         <member name="M:Nexus.Core.Profile.UserProfile.#ctor">
             <summary>
             Instantiate a default profile.
@@ -405,7 +488,7 @@
             Record the user id portion of the Identity Name.
             </summary>
             <remarks><p>
-            The UserId can be used to related staff records to user logins.
+            The UserId can be used to relate staff records to user logins.
             </p></remarks>
         </member>
         <member name="T:Nexus.Core.Tables.FieldContext">
@@ -519,6 +602,17 @@
             </summary>
             
         </member>
+        <member 
name="M:Nexus.Core.Tables.IFieldTable.NewFieldContext(System.String)">
+            <summary>
+            Factory method to create a stub context 
+            when field is required and Strict is false.
+            </summary>
+            <remarks><p>
+            The IFieldContext instance should provide a default for Required.
+            </p></remarks>
+            <param name="id">The fieldname</param>
+            <returns>New default context for ID</returns>
+        </member>
         <member 
name="M:Nexus.Core.Tables.IFieldTable.GetFieldContext(System.String)">
             <summary>
             Obtain the FieldContext for the given ID, observing Strict setting.
@@ -881,7 +975,7 @@
         </member>
         <member name="P:Nexus.Core.Validators.IProcessorContext.Target">
             <summary>
-            Reorod the target value after conversion or formatting.
+            Record the target value after conversion or formatting.
             </summary>
             
         </member>
@@ -1628,44 +1722,6 @@
             <summary>
             Token for Entry Item command name.
             </summary>
-        </member>
-        <member name="T:WQD.Core.Controls.FindArgs">
-            <summary>
-            Provide an EventArgs type to interace with FindControls
-            that can be read or bound via an IDictionary object.
-            </summary>
-            
-        </member>
-        <member name="F:WQD.Core.Controls.FindArgs.OldArgs">
-            <summary>
-            A reference to the original arguments for an event, if any.
-            </summary>
-            
-        </member>
-        <member name="F:WQD.Core.Controls.FindArgs.Criteria">
-            <summary>
-            Expose our dictionary instance.
-            </summary>
-            
-        </member>
-        <member 
name="M:WQD.Core.Controls.FindArgs.#ctor(System.Collections.IDictionary)">
-            <summary>
-            Create this instance using the given dictionary.
-            </summary>
-            
-        </member>
-        <member name="M:WQD.Core.Controls.FindArgs.#ctor">
-            <summary>
-            Create a new instance with empty fields.
-            </summary>
-            
-        </member>
-        <member name="M:WQD.Core.Controls.FindArgs.#ctor(System.EventArgs)">
-            <summary>
-            Create a new instance, setting the old event arguments.
-            </summary>
-            <param name="oldArgs">Old Event arguments</param>
-            
         </member>
     </members>
 </doc>

Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/PhoneBook.Core.xml
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Core/PhoneBook.Core.xml?rev=330256&r1=330255&r2=330256&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/PhoneBook/Core/PhoneBook.Core.xml (original)
+++ struts/sandbox/trunk/overdrive/PhoneBook/Core/PhoneBook.Core.xml Wed Nov  2 
05:55:48 2005
@@ -4,22 +4,70 @@
         <name>PhoneBook.Core</name>
     </assembly>
     <members>
-        <member name="T:PhoneBook.Core.Commands.AppCommand">
+        <member name="T:PhoneBook.Core.Commands.BaseMapper">
             <summary>
-            Add data access methods to RequestCommand.
+            Extend RequestCommand with data access methods.
             </summary>
             
         </member>
+        <member name="F:PhoneBook.Core.Commands.BaseMapper._Mapper">
+            <summary>
+            Provide a field for Mapper property.
+            </summary>
+            
+        </member>
+        <member 
name="M:PhoneBook.Core.Commands.BaseMapper.IsEmpty(System.String)">
+            <summary>
+            Indicate whether string is null or zero length.
+            </summary>
+            <param name="input">Input to validate</param>
+            <returns>True if string is nyull or zero length</returns>
+            
+        </member>
+        <member name="M:PhoneBook.Core.Commands.BaseMapper.GuidString">
+            <summary>
+            Create new Global Universal Identifer as a formatted string.
+            </summary>
+            <returns>String representing a new GUID</returns>
+            <remarks><p>
+            No two calls to this method will ever return duplicate strings.
+            </p></remarks>
+            
+        </member>
+        <member name="P:PhoneBook.Core.Commands.BaseMapper.Mapper">
+            <summary>
+            Expose a preconfigured SqlMapper instance that Commands can use to 
run statements.
+            </summary>
+            <remarks><p>
+            Commands use Mapper to invoke SqlMap statements, such as 
+            <code>
+            object row = Mapper.QueryForObject (QueryID, context);
+            </code>.
+            </p><p>
+            Any SqlMapper API method may be called. 
+            </p><p>
+            The default behavior of BAseNexusCommand is to use the 
+            command ID if the QueryID is null.
+            </p></remarks>
+            <returns>Preconfigured Mapper instance</returns>
+            
+        </member>
+        <member name="T:PhoneBook.Core.Commands.BaseCount">
+            <summary>
+            Invoke a query that returns the count of a result set.
+            </summary>
+        </member>
         <member name="T:PhoneBook.Core.Commands.BaseEntry">
             <summary>
-            Execute database statement for QueryID for a single object, 
+            Execute database statement indicated by QueryID 
+            for a single object, 
             returning each attribute in the main context.
             </summary>
             
         </member>
         <member name="T:PhoneBook.Core.Commands.BaseFilterList">
             <summary>
-            Execute database statement for QueryID 
+            Execute database statement indicated by QueryID 
             and wrap result in KeyValue objects 
             so that lists can be displayed by standard methods.
             </summary>
@@ -27,42 +75,67 @@
         </member>
         <member name="T:PhoneBook.Core.Commands.BaseList">
             <summary>
-            Execute database statement for QueryID, 
-            convert list returned to an AppContextList,  
-            and place converted list in context under ID.
+            Execute database statement indicated by QueryID, 
+            for a list of objects
+            returning each attribute in the main context.
             </summary>
             
         </member>
         <member name="T:PhoneBook.Core.Commands.BaseSave">
             <summary>
-            Base Command for saving an Entity to the persistant store 
(database).
+            Store an entity for future reference.
+            </summary>
+            
+        </member>
+        <member name="F:PhoneBook.Core.Commands.BaseSave._KeyID">
+            <summary>
+            Provide a field for KeyID property.
             </summary>
+            
+        </member>
+        <member name="F:PhoneBook.Core.Commands.BaseSave._InsertID">
+            <summary>
+            Provide a field for InsertID property.
+            </summary>
+        </member>
+        <member name="F:PhoneBook.Core.Commands.BaseSave._UpdateID">
+            <summary>
+            Provide a field for UpdateID property.
+            </summary>
+            
         </member>
         <member 
name="M:PhoneBook.Core.Commands.BaseSave.Save(Nexus.Core.IRequestContext,System.String,System.String,System.String)">
             <summary>
+            Insert or update an entity to the persistent store. 
+            </summary>
+            <remark><p>
             If the "fieldID" is empty, use the insertID statement, 
             otherwise, use the updateID statement.
-            </summary>
+            </p></remark>
             <param name="context">The INexusContext we are processing.</param>
             <param name="fieldID">The name of the key field.</param>
             <param name="insertID">The name of the "insert" mapping for the 
Entity.</param>
             <param name="updateID">The name of the "update" mapping for the 
Entity.</param>
             <returns>False</returns>
+            
         </member>
         <member name="P:PhoneBook.Core.Commands.BaseSave.KeyID">
             <summary>
-            The name of the key field.
+            Record the unique identifier for the entity.
             </summary>
+            
         </member>
         <member name="P:PhoneBook.Core.Commands.BaseSave.InsertID">
             <summary>
-            The name of the "insert" mapping for the Entity.
+            Record the name of the "insert" mapping for the entity.
             </summary>
+            
         </member>
         <member name="P:PhoneBook.Core.Commands.BaseSave.UpdateID">
             <summary>
-            The name of the "update" mapping for the Entity.
+            Record the name of the "update" mapping for the entity.
             </summary>
+            
         </member>
         <member name="T:PhoneBook.Core.App">
             <summary>
@@ -118,6 +191,24 @@
             </summary>
             
         </member>
+        <member name="F:PhoneBook.Core.App.ITEM_LIMIT">
+            <summary>
+            Token for SQL LIMIT clause.
+            </summary>
+            
+        </member>
+        <member name="F:PhoneBook.Core.App.ITEM_OFFSET">
+            <summary>
+            Token for SQL OFFSET clause.
+            </summary>
+            
+        </member>
+        <member name="F:PhoneBook.Core.App.ITEM_COUNT">
+            <summary>
+            Token for SQL COUNT clause.
+            </summary>
+            
+        </member>
         <member name="F:PhoneBook.Core.App.ENTRY">
             <summary>
             Token for select one command.
@@ -199,22 +290,115 @@
             </summary>
             
         </member>
+        <member name="F:PhoneBook.Core.AppEntry._Value">
+            <summary>
+            Internal storage.
+            </summary>
+            
+        </member>
+        <member 
name="M:PhoneBook.Core.AppEntry.AddAll(System.Collections.IDictionary)">
+            <summary>
+            Add each source entry to our internal store. 
+            </summary>
+            <remarks><p>
+            Entries with keys that match the property names will be exposed. 
+            Other entries may be added, but can only be retrieved via Get.
+            </p></remarks>
+            <param name="sources">Entries to add</param>
+            
+        </member>
+        <member 
name="M:PhoneBook.Core.AppEntry.Add(System.String,System.String)">
+            <summary>
+            Add a single entry to our internal store.
+            </summary>
+            <remarks><p>
+            Entries with keys that match the property names will be exposed. 
+            Other entries may be added, but can only be retrieved via Get.
+            </p></remarks>
+            <param name="key">ID for entry</param>
+            <param name="value">Content for entry</param>
+            
+        </member>
+        <member name="M:PhoneBook.Core.AppEntry.Get(System.String)">
+            <summary>
+            Provide the value corresponding to key from the internal store.
+            </summary>
+            <param name="key">ID for entry</param>
+            <returns>Content for entry</returns>
+            
+        </member>
+        <member 
name="M:PhoneBook.Core.AppEntry.Set(System.String,System.String)">
+            <summary>
+            Set an entry to the internal store, overwriting any existing entry.
+            </summary>
+            <remarks><p>
+            This is a protected method used by the Properties. 
+            Use an existing Property to set values, 
+            or extend the class to include other Properties. 
+            </p></remarks>
+            <param name="key"></param>
+            <param name="value"></param>
+        </member>
         <member name="T:PhoneBook.Core.AppEntryList">
             <summary>
-            Implement IEntryList for AppEntry objects.
+            Implement Nexus.Core.IEntryList for AppEntry objects.
+            </summary>
+            
+        </member>
+        <member name="T:PhoneBook.Core.AppEntryListProcessor">
+            <summary>
+            Implement Nexus.Core.Validators.EntryListProcess for AppEntryList.
             </summary>
             
         </member>
         <member name="T:PhoneBook.Core.AppUserProfile">
             <summary>
-            Extend UserProfile to include an IsEditor property.
+            Extend UserProfile to include properties specific to this 
application, 
+            such as IsEditor.
             </summary>
+            
+        </member>
+        <member name="F:PhoneBook.Core.AppUserProfile._IsEditor">
+            <summary>
+            Provide a field for IsEditor property.
+            </summary>
+        </member>
+        <member name="F:PhoneBook.Core.AppUserProfile._Entry">
+            <summary>
+            Provide a field for Entry property.
+            </summary>
+            
+        </member>
+        <member name="F:PhoneBook.Core.AppUserProfile._FullName">
+            <summary>
+            Provide a field for FullName property.
+            </summary>
+            
         </member>
         <member 
name="M:PhoneBook.Core.AppUserProfile.#ctor(System.Security.Principal.IIdentity)">
             <summary>
             Instantiate from an IIdentity.
             </summary>
             <param name="id">Identity to copy for this profile.</param>
+            
+        </member>
+        <member name="P:PhoneBook.Core.AppUserProfile.IsEditor">
+            <summary>
+            Indicate whether user has editing priveleges. 
+            </summary>
+            
+        </member>
+        <member name="P:PhoneBook.Core.AppUserProfile.Entry">
+            <summary>
+            Record directory entry for user.
+            </summary>
+            
+        </member>
+        <member name="P:PhoneBook.Core.AppUserProfile.FullName">
+            <summary>
+            Record the user's full name (first and last names).
+            </summary>
+            
         </member>
         <member name="T:PhoneBook.Core.TelephoneProcessor">
             <summary>

Modified: struts/site/trunk/xdocs/navigation.xml
URL: 
http://svn.apache.org/viewcvs/struts/site/trunk/xdocs/navigation.xml?rev=330256&r1=330255&r2=330256&view=diff
==============================================================================
--- struts/site/trunk/xdocs/navigation.xml (original)
+++ struts/site/trunk/xdocs/navigation.xml Wed Nov  2 05:55:48 2005
@@ -146,6 +146,10 @@
                 href="http://jakarta.apache.org/tapestry/";
                 />
             <item
+                name="Jakarta Turbine"
+                href="http://jakarta.apache.org/turbine/";
+                />
+            <item
                 name="OS WebWork"
                 href="http://www.opensymphony.com/webwork/";
                 />



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

Reply via email to