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 2006/03/30 15:27:20 UTC

svn commit: r390119 - in /struts/site/trunk/xdocs: faqs.xml kickstart.fml products.fml

Author: husted
Date: Thu Mar 30 05:27:18 2006
New Revision: 390119

URL: http://svn.apache.org/viewcvs?rev=390119&view=rev
Log:
FAQs 
* Add "newbie" and "roots" FAQs

Added:
    struts/site/trunk/xdocs/products.fml
Modified:
    struts/site/trunk/xdocs/faqs.xml
    struts/site/trunk/xdocs/kickstart.fml

Modified: struts/site/trunk/xdocs/faqs.xml
URL: http://svn.apache.org/viewcvs/struts/site/trunk/xdocs/faqs.xml?rev=390119&r1=390118&r2=390119&view=diff
==============================================================================
--- struts/site/trunk/xdocs/faqs.xml (original)
+++ struts/site/trunk/xdocs/faqs.xml Thu Mar 30 05:27:18 2006
@@ -34,6 +34,10 @@
                 </li>
 
                 <li>
+                    <a href="products.html">Product Line FAQ</a>
+                </li>
+
+                <li>
                     <a href="helping.html">How to Help FAQ</a>
                 </li>
 

Modified: struts/site/trunk/xdocs/kickstart.fml
URL: http://svn.apache.org/viewcvs/struts/site/trunk/xdocs/kickstart.fml?rev=390119&r1=390118&r2=390119&view=diff
==============================================================================
--- struts/site/trunk/xdocs/kickstart.fml (original)
+++ struts/site/trunk/xdocs/kickstart.fml Thu Mar 30 05:27:18 2006
@@ -19,7 +19,57 @@
 <faqs title="Kickstart FAQ">
 
     <part>
-        <title>Project Details</title>
+      <faq id="newbie">
+            <question>I'm new to Apache Struts. How do I get started?
+            </question>
+            <answer>
+            <p>
+            A good starting point to learn more about Struts Action is the
+            website where you found this FAQ.
+            The best available release is
+            <a href="http://struts.apache.org/announce.html#a20050322">
+            Struts 1.2.9.</a>
+            </p>
+
+            <p>
+            The Struts 1.2.9 release has its
+            <a href="http://struts.apache.org/struts-doc-1.2.9/index.html">
+            own area of the website</a>. The main website is devoted to the
+            upcoming version, Struts Action 1.3. This version is at the
+            "<a href="http://svn.apache.org/dist/struts/action-lib/">test
+            build</a>" stage now, but it is still 100% backwardly compatible
+            with Struts 1.2.9.
+            </p>
+
+            <p>
+            Meanwhile, we are in the process of "joining forces" with another
+            project,
+            <a href="http://www.opensymphony.com/webwork/">OpenSymphony
+            WebWork.</a>
+            The WebWork codebase is being
+            <a href="http://incubator.apache.org/projects/webwork2.html">
+            donated to Apache Struts</a>
+            and the WebWork developers have joined the Apache Struts team.
+            Essentially, Struts Action 2.0 will be WebWork 2.3.
+            </p>
+
+            <p>
+            To learn more about using Apache Struts, you can also visit
+            <a href="http://www.StrutsCentral.net/">Struts Central</a>,
+            which catalogs all the known resources about Apache Struts, whether it is
+            <a href="http://struts.apache.org/struts-action/">Action 1</a>,
+            <a href="http://wiki.apache.org/struts/StrutsTi">Action 2</a>,
+            or our offering for JavaServer Faces,
+            <a href="http://struts.apache.org/struts-shale/">Struts Shale</a>.
+            To keep up on the latest news about "everything Struts",
+            point your RSS reader at the
+            <a href="http://www.PlanetStruts.org/">Planet Struts</a> news site.
+            If you still have questions, you can search the
+            <a href="mail.html#Archives">User Mailing List archives,</a>
+            or <a href="mail.html">post your own question to the list</a>.
+            (Plain old Google often works too!)</p>
+            </answer>
+        </faq>
 
         <faq id="struts">
             <question>Why is the project called Struts?</question>
@@ -282,476 +332,10 @@
         </faq>
     </part>
 
-
-    <part>
-        <title>Product Line</title>
-
-        <faq id="shale">
-            <question>Why are you offering both the Struts Shale and the Struts Action
-                Framework? Don't they compete for new development?</question>
-            <answer>
-                <p>We do offer Apache Struts developers a choice, but, hey,
-                    choice is good. :)</p>
-                <p>People who want to create and maintain the
-                    <a href="announce.html#a20051214.4">Struts Action
-                        Framework</a>
-                    are welcome to do so.
-                </p>
-                <p>People who want to create and maintain the
-                    <a href="announce.html#a20051214.2">Struts Shale
-                        Framework</a>
-                    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 Action
-                    Framework. 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>
-            </answer>
-        </faq>
-
-        <faq id="fork">
-            <question>Is Struts Shale a fork?</question>
-            <answer>
-                <p>No. It's an entirely new product with its own architecture.
-                    Shale is to JavaServer Faces what Action is to JavaServer
-                    Pages.
-                </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.</p>
-            </answer>
-        </faq>
-
-        <faq id="struts">
-            <question>If Shale is a new product, why is it called
-                Struts?</question>
-            <answer>
-                <p>
-                    Apache Struts embraces standards, and JavaServer Faces
-                    (JSF) is a new standard.
-                    JSF is not the first standard that Struts has assimilated
-                    (and, undoubtedly, it will not be the last).
-                </p>
-                <p>
-                    For example, many of the original Struts taglibs overlap
-                    with the JavaServer Pages Standard Tag Library (JSTL).
-                    Some of us want to continue using the original tags.
-                    Others want to be able to use JSTL as much as possible.
-                    As a result, David Karr created the Struts EL taglibs.
-                    The Struts EL subproject provides JSTL versions of only
-                    the Struts tags that do not overlap with JSTL.
-                    Meanwhile, the original taglibs are available and
-                    maintained for those that choose to use them.
-                </p>
-                <p>
-                    Likewise, some of us want to use JSF as much as possible.
-                    Others want to continue using the original Action
-                    framework.
-                    As a result, Craig McClanahan created the Struts Shale
-                    framework.
-                    Shale provides the same utility as the Action framework by
-                    building on the JSF feature set.
-                    Since Shale does for JSF what Action does for JSP, we
-                    consider Shale to be another Struts framework.
-                </p>
-            </answer>
-        </faq>
-
-        <faq id="ti">
-            <question>What about Ti? What about WebWork?</question>
-            <answer>
-                <p>
-                    <a href="http://wiki.apache.org/struts/StrutsTi">Struts
-                        Ti</a>
-                    (short for Titanium) was a codename for Struts Action
-                    Framework 2.x.
-                    In late November 2005, the Ti proposal was amended to
-                    include a merger with
-                    <a href="http://www.opensymphony.com/webwork/">Open
-                        Symphony WebWork</a>
-                    .
-                    Pursuant to this plan, WebWork 2.3 was
-                    donated to the ASF in March 2006,
-                    and the active WebWork committers joined the Apache Struts project.
-                    The WebWork 2.3 codebase is being brought into the ASF through
-                    the
-                    <a href="http://incubator.apache.org/projects/webwork2.html">
-                        Apache Incubator.</a>
-                    Once licensing and related issues are resolved,
-                    the codebase will be made part of the Apache Struts
-                    framework.
-                </p>
-                <p>
-                    WebWork started as a
-                    <a href="http://incubator.apache.org/learn/rules-for-revolutionaries.html">
-                        Struts Revolution.</a>
-                    Over the years, it has evolved into a superb action-based
-                    framework that retains many Struts 1.x paradigms.
-                </p>
-                <p>
-                    People who have worked with both Struts 1.x and WebWork
-                    2.x tend to agree that it is a logical candidate for
-                    Struts Action Framework 2.x.
-                    If you look the Struts Action 1.x roadmap and the WebWork
-                    2.x feature set,
-                    you'll see that WebWork has already does most of what we
-                    wanted Struts Action to do.
-                    If we finished the roadmap ourselves, Struts Action would
-                    end up as a WebWork workalike.
-                    Rather than reinvent the wheel,
-                    Ti has become a proposal to put the WebWork wheel back on
-                    the Struts axle.
-                </p>
-                <p>
-                    At this point, the Ti codename has being dropped,
-                    and we are referring to the incoming WebWork codebase as Action
-                    2.
-                </p>
-            </answer>
-        </faq>
-
-        <faq id="xwork">
-            <question>What about other Open Symphony products, like
-                XWork?</question>
-            <answer>
-
-                <p>
-                    For the time being, there is no plan to migrate XWork to
-                    the ASF. Struts Action has always had many dependencies on
-                    external
-                    packages. So long as packages like XWork and Sitemesh are doing
-                    well at OpenSymphony, there is no reason to make further changes.
-                </p>
-            </answer>
-        </faq>
-
-        <faq id="migrate">
-            <question>Will it be difficult to migration from Action 1 to
-                Action 2?</question>
-            <answer>
-                <p>
-                    Many of us have significant Struts Action 1.x
-                    applications in production.
-                    Being able to migrate both applications and developer
-                    skill sets is important to all of us.
-                </p>
-                <p>
-                    Several
-                    <a href="http://wiki.apache.org/struts/MigrationStrategy">
-                        migration strategies</a>
-                    are being developed.
-                </p>
-            </answer>
-        </faq>
-
-        <faq id="overdrive">
-            <question>What about OverDrive or Struts Nexus?</question>
-            <answer>
-                <p>
-                    <a href="http://wiki.apache.org/struts/StrutsOverDrive">
-                        OverDrive</a>
-                    is a working proposal to use a set of case-study
-                    applications
-                    to drive the design and creation of a business layer
-                    framework.
-                    The codename for the business layer framework under
-                    development is "Nexus".
-                    Like Action and Shale, the Nexus internals are based on
-                    the Chain of Responsibility pattern.
-                </p>
-                <p>
-                    OverDrive and Nexus do not complete with frameworks like
-                    Action and Shale.
-                    Nexus begins where these frameworks end.
-                    Nexus is the "rest of the stack".
-                </p>
-                <p>
-                    The codebase underlying the proposal is being coded in C#,
-                    but a version for Java is expected in due course.
-                </p>
-            </answer>
-        </faq>
-
-        <faq id="choice">
-            <question>Which Apache Struts Framework should I use on my next
-                project?</question>
-
-            <answer>
-                <p>
-                    First, you should decide which user interface technology you
-                    would like to use:
-                    <a href="http://java.sun.com/j2ee/javaserverfaces/">JavaServer
-                        Faces</a>
-                    (JSF),
-                    conventional
-                    <a href="http://java.sun.com/products/jsp/">JavaServer Pages</a>
-                    (JSP),
-                    or another templating technology like
-                    <a href="http://jakarta.apache.org/velocity/">Velocity</a>
-                    .
-                </p>
-                <p>
-                    JSF is designed to work well with visual design tools, much
-                    like ASP.NET. Some people are finding that JSF is a faster way to
-                    write new applications. A good place to learn more about JSF is
-                    <a href="http://jsfcentral.com/">JSF Central</a>
-                    .
-                </p>
-                <p>
-                    Conventional JSP is a tried and true strategy.
-                    When used as part of a MVC architecture, applications based on
-                    server pages or templates are known to be easy to create,
-                    maintain, and extend over time.
-                </p>
-                <p>
-                    If you are a sole developer working on a small application,
-                    then you might not even need a framework.
-                    Simple applications can be written with JSF or JSP with
-                    <a href="http://java.sun.com/products/jsp/jstl/index.jsp">
-                        JSTL</a>
-                    "out of the box."
-                    (If you choose JSF, be sure to give
-                    <a href="http://developers.sun.com/prodtech/javatools/jscreator/">
-                        Java Studio Creator</a>
-                    a try.)
-                </p>
-                <p>
-                    Multi-developer teams working on larger applications will
-                    probably find a MVC framework useful. In that case,
-                    we would suggest
-                    <a href="http://struts.apache.org/struts-shale/index.html">Struts
-                        Shale</a>
-                    for JSF
-                    or
-                    <a href="http://struts.apache.org/struts-action/index.html">
-                        Struts Action</a>
-                    for JSP.
-                    Other likely candidates for a Web MVC framework include
-                    <a href="http://cocoon.apache.org/">Apache Cocoon,</a>
-                    <a href="http://jakarta.apache.org/tapestry/">Apache Tapestry,</a>
-                    <a href="http://jakarta.apache.org/turbine/">Apache Turbine,</a>
-                    ,
-                    <a href="http://www.springframework.org/docs/reference/mvc.html">Spring MVC.</a>
-                    , and
-                    <a href="http://wicket.sourceforge.net/">Wicket.</a>
-                </p>
-            </answer>
-        </faq>
-
-        <faq>
-            <question>So many decisions! Shouldn't it be simplier?</question>
-            <answer>
-                <p>
-                    Yes, there seems to be nothing but choice when it comes to
-                    developing web applications.
-                </p>
-
-                <p>
-                    To begin with, someone has to choose between ASPX, Java, PHP,
-                    Python, Ruby, et al.
-                    Once you choose Java, then you have to choose a web container,
-                    such as Jetty, Tomcat, Resin, WebLogic, or WebSphere, to name a
-                    few.
-                    Of course, you also have to build the application that runs in
-                    the container, which is where
-                    <a href="#choice">choosing Apache Struts</a>
-                    comes in. Then, most teams also use a data access framework.
-                    Choices there include Cayenne, iBATIS, Hibernate, and OJB.
-                </p>
-
-                <p>
-                    (Right about now, Ruby's single-stack approach must be sounding
-                    pretty good!)
-                </p>
-
-                <p>
-                    But, wait, there's more! You also have to choose an editor or
-                    IDE:
-                    Eclipse? IDEA? NetBeans? UltraEdit? Some other?
-                    (Many teams decide to use more than one!)
-                    And do we use Ant, Maven, or the IDE to build it all?
-                </p>
-
-                <p>
-                    Lest we forget: Someone also needs to choose a database system
-                    (DB2? Derby? Oracle? PostGres? MySQL?), a version control system
-                    (CVS? Subversion? Perforce?),
-                    a development methodology (eXtreme Programming? RUP? Scrum?
-                    Waterfall?),
-                    and, if you're lucky, an issue tracker (Bugzilla? JIRA? Scarab?).
-                </p>
-                <p>
-                    Welcome to the jungle!
-                </p>
-            </answer>
-        </faq>
-
-        <faq id="next">
-            <question>
-                Is Shale the Next Struts? Or is Action 2 the Next Struts?
-            </question>
-            <answer>
-                <p>
-                    Yes.
-                </p>
-                <p>
-                    Shale is the Next Struts for JSF. Action 2 is the next Struts for
-                    JSP.
-                </p>
-                <p>
-                    If you'd like a head-start on Action 2,
-                    you could start new development with WebWork 2 today.
-                    <a href="announce.html#a20051214.3">
-                        WebWork has joined Apache Struts,</a>
-                    and Action 2 will be an updated release of WebWork 2.2.
-                    Undoubtedly, there will be some changes,
-                    just as there were changes between WebWork 2.1 and Webwork 2.2,
-                    but the core API and architecture will remain the same.
-                </p>
-            </answer>
-        </faq>
-
-        <faq id="steering">
-            <question>Shouldn't the Apache Struts team focus on a single technology
-                and help reduce choice for the rest of us?</question>
-            <answer>
-                <p>
-                    Apache Struts is neither a steering committee nor a vendor. We're
-                    a group of engineers creating the web application frameworks that
-                    we want to use to build our own applications. Some of us are
-                    working on JSF applications, some of us are working on JSP
-                    applications, and some of us are working on both. Since we have
-                    volunteers to work on two frameworks, we offer two
-                    frameworks.</p>
-
-                <p>The Struts committers work for different employers all over
-                    the world. It is not feasible for us to say this technology or
-                    that technology is the only technology anyone in our group can
-                    use.
-                    One of our employers might choose JSF, and another might stick
-                    with JSP. We are a working group of engineers who live in the
-                    real world, and we are faced with all the same choices every Java
-                    engineer faces today.
-                </p>
-                <p>
-                    Entities like Microsoft, and Sun, and Zend, exist to promote one
-                    technology over another, mainly to make it easier for them to
-                    sell you something.
-                    The Apache Struts team is not trying to sell you anything.
-                    We're collaborating on the frameworks that we want to use, and
-                    we are trying to share the wealth with others who might want to
-                    help us.
-                    If you choose to use one of our frameworks, that's great. We're
-                    glad we could help. If you'd like to help us make the frameworks
-                    even better, feel free to return the favor. We don't want your
-                    money, but
-                    <a href="helping.html">we could use your help.</a>
-                </p>
-            </answer>
-
-            <faq id="subprojects">
-                <question>Why are there so many "extensions" for Action 1 now?</question>
-                <answer>
-                    <p>
-                        Over the years, the Action 1 framework grew to include not only a
-                        controller and a set of taglibs but several other extensions,
-                        like Tiles, EL, Scripting, and Flow. There were also some
-                        optional classes that some people liked, but not everyone needed
-                        (like DispatchAction).
-                    </p>
-
-                    <p>
-                        Releasing all of this code together has been like hanging wall
-                        paper. We smooth a crease here, and another wrinkle crops up over
-                        there. In order to promote lighter, regular releases, we've
-                        subdivided the monolithic Struts 1.2 distribution into seven
-                        distinct subprojects: Action, EL, Extras, Site, Taglib, and
-                        Tiles.
-                    </p>
-
-                    <p>
-                        Now, if we want to make a change to a JSP tag, we can release
-                        Taglib without re-releasing everything else. Likewise, if we want
-                        to add a nifty new Action to Extras, we can just release Extras,
-                        without re-releasing everything else.
-                    </p>
-
-                    <p>
-                        Of course, the next question is: "Which versions work with the
-                        best available release of Action?" To answer that question,
-                        we provide the Struts Action Library, which contains the set of
-                        JARs that work with the "best available" release of Action 1.3.
-                    </p>
-                </answer>
-            </faq>
-
-            <faq id="dependencies">
-                <question>
-                    But what if a new feature in Taglibs depends on a new feature in
-                    Action 1? Won't you still have to release them together?
-                </question>
-                <answer>
-                    <p>
-                        Hmmm, almost. This sort of thing already happens with the Commons
-                        components. We might have to release a new version of Commons
-                        Validator and test it against the development build of Struts
-                        Action. The same thing would continue to happen. It's just
-                        instead of
-                        being a Commons component and a Struts component, it's two
-                        Struts components. No big woof.
-                    </p>
-                    <p>
-                        The difference is that now we get to choose what is released
-                        together. The infrastructure does not make that decision for us.
-                    </p>
-                </answer>
-            </faq>
-
-            <faq id="confusing">
-                <question>Won't it be confusing for people to bundle, say, Action 1.3.4
-                    with Taglib 1.3.2?</question>
-                <answer>
-                    <p>
-                        We also bundle Action 1.3.0 with Commons-Validator 1.2.0.
-                        and Commons-BeanUtils 1.7.0, and several other JARs with their
-                        own version numbers. Same difference.
-                    </p>
-                    <p>
-                        To make it easy for people to grab the "best available"
-                        combination of JARs, we offer the Struts Action Library.
-                    </p>
-                </answer>
-            </faq>
-
-            <faq id="classic">
-                <question>Is Struts Classic another name for the Struts Action Framework?
-                </question>
-                <answer>
-                    <p>Struts Classic is a codename for the work we needed to do to
-                        create and release the seven new subprojects we extracted from
-                        Struts 1.2. It is not a product per-se, but shorthand for the
-                        1.3.0 build of the seven projects.
-                    </p>
-                </answer>
-            </faq>
-
-        </faq>
-    </part>
-
     <part>
         <p class="right">
             <strong>Next:</strong>
-            <a href="helping.html">How to Help FAQ</a>
+            <a href="products.html">Product Line FAQ</a>
         </p>
     </part>
 

Added: struts/site/trunk/xdocs/products.fml
URL: http://svn.apache.org/viewcvs/struts/site/trunk/xdocs/products.fml?rev=390119&view=auto
==============================================================================
--- struts/site/trunk/xdocs/products.fml (added)
+++ struts/site/trunk/xdocs/products.fml Thu Mar 30 05:27:18 2006
@@ -0,0 +1,544 @@
+<?xml version="1.0"?>
+<!--
+Copyright 1999-2005 The Apache Software Foundation
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<!--
+// ======================================================================== 78
+-->
+<faqs title="Product Line FAQ">
+    <title>Product Line</title>
+
+    <part>
+        <faq id="shale">
+            <question>Why are you offering both the Struts Shale and the Struts Action
+                Framework? Don't they compete for new development?</question>
+            <answer>
+                <p>We do offer Apache Struts developers a choice, but, hey,
+                    choice is good. :)</p>
+                <p>People who want to create and maintain the
+                    <a href="announce.html#a20051214.4">Struts Action
+                        Framework</a>
+                    are welcome to do so.
+                </p>
+                <p>People who want to create and maintain the
+                    <a href="announce.html#a20051214.2">Struts Shale
+                        Framework</a>
+                    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 Action
+                    Framework. 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>
+            </answer>
+        </faq>
+
+        <faq id="fork">
+            <question>Is Struts Shale a fork?</question>
+            <answer>
+                <p>No. It's an entirely new product with its own architecture.
+                    Shale is to JavaServer Faces what Action is to JavaServer
+                    Pages.
+                </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.</p>
+            </answer>
+        </faq>
+
+        <faq id="struts">
+            <question>If Shale is a new product, why is it called
+                Struts?</question>
+            <answer>
+                <p>
+                    Apache Struts embraces standards, and JavaServer Faces
+                    (JSF) is a new standard.
+                    JSF is not the first standard that Struts has assimilated
+                    (and, undoubtedly, it will not be the last).
+                </p>
+                <p>
+                    For example, many of the original Struts taglibs overlap
+                    with the JavaServer Pages Standard Tag Library (JSTL).
+                    Some of us want to continue using the original tags.
+                    Others want to be able to use JSTL as much as possible.
+                    As a result, David Karr created the Struts EL taglibs.
+                    The Struts EL subproject provides JSTL versions of only
+                    the Struts tags that do not overlap with JSTL.
+                    Meanwhile, the original taglibs are available and
+                    maintained for those that choose to use them.
+                </p>
+                <p>
+                    Likewise, some of us want to use JSF as much as possible.
+                    Others want to continue using the original Action
+                    framework.
+                    As a result, Craig McClanahan created the Struts Shale
+                    framework.
+                    Shale provides the same utility as the Action framework by
+                    building on the JSF feature set.
+                    Since Shale does for JSF what Action does for JSP, we
+                    consider Shale to be another Struts framework.
+                </p>
+            </answer>
+        </faq>
+
+        <faq id="ti">
+            <question>What about Ti? What about WebWork?</question>
+            <answer>
+                <p>
+                    <a href="http://wiki.apache.org/struts/StrutsTi">Struts
+                        Ti</a>
+                    (short for Titanium) was a codename for Struts Action
+                    Framework 2.x.
+                    In late November 2005, the Ti proposal was amended to
+                    include a merger with
+                    <a href="http://www.opensymphony.com/webwork/">Open
+                        Symphony WebWork.</a>
+                    Pursuant to this plan, WebWork 2.3 was
+                    donated to the ASF in March 2006,
+                    and the active WebWork committers joined the Apache Struts project.
+                    The WebWork 2.3 codebase is being brought into the ASF through
+                    the
+                    <a href="http://incubator.apache.org/projects/webwork2.html">
+                        Apache Incubator.</a>
+                    Once licensing and related issues are resolved,
+                    the codebase will be made part of the Apache Struts
+                    framework.
+                </p>
+                <p>
+                    WebWork started as a
+                    <a href="http://incubator.apache.org/learn/rules-for-revolutionaries.html">
+                        Struts Revolution.</a>
+                    Over the years, it has evolved into a superb action-based
+                    framework that retains many Struts 1.x paradigms.
+                </p>
+                <p>
+                    People who have worked with both Struts 1.x and WebWork
+                    2.x tend to agree that it is a logical candidate for
+                    Struts Action Framework 2.x.
+                    If you look the Struts Action 1.x roadmap and the WebWork
+                    2.x feature set,
+                    you'll see that WebWork has already does most of what we
+                    wanted Struts Action to do.
+                    If we finished the roadmap ourselves, Struts Action would
+                    end up as a WebWork workalike.
+                    Rather than reinvent the wheel,
+                    Ti has become a proposal to put the WebWork wheel back on
+                    the Struts axle.
+                </p>
+                <p>
+                    At this point, the Ti codename has being dropped,
+                    and we are referring to the incoming WebWork codebase as Action
+                    2.
+                </p>
+            </answer>
+        </faq>
+
+        <faq id="roots">
+            <question>If they share the same roots,
+            why did WebWork evolve more quickly than Action 1?</question>
+            <answer>
+            <p>
+              The Struts Action 1.x series is deeply into "backward compatibility" mode.
+              Backward compatibility has almost become an obsession with us.
+              Before making any API change, we deprecate the existing member,
+              and make at least one milestone release before removing the member.
+              Each Struts Action milestone is drop-and-go compatibility with the last.
+              Maintaining this degree of stability takes a lot of effort,
+              but given the installed base, we feel it is worth the time and trouble.
+            </p>
+            <p>
+              There have been several proposals for a new Struts Action 2 codebase.
+              The first was
+              <a href="http://wiki.apache.org/struts/StrutsJericho">Jericho,</a>
+              followed by
+              <a href="http://wiki.apache.org/struts/StrutsShale">Shale,</a>
+              and then
+              <a href="http://wiki.apache.org/struts/StrutsTi">Ti.</a>
+            </p>
+            <p>
+              Jericho never progressed past the trial balloon stage.
+              Shale is based on JavaServer Faces, and, when the time came,
+              the Apache Struts PMC found that many of us were not ready to
+              adopt JSF just yet.
+              Shale is now a separate but equal framework,
+              created and maintained by the Struts community.
+           </p>
+           <p>
+               The Ti proposal included the idea of collaborating with other
+               projects to build a "best of breed" framework that incorporated
+               everything we had learned over the past five years.
+               The original Ti proposal includes technology developed by
+               <a href="http://beehive.apache.org/">Apache BeeHive,</a>
+               <a href="http://www.springframework.org/">Spring,</a> and
+               <a href="http://www.opensymphony.com/webwork/">OpenSympony WebWork.</a>
+           </p>
+           <p>
+                In the course of developing the initial Ti codebase,
+                the WebWork developers offered to "join forces" with
+                the Apache Struts developers,
+                so that we could work more closely together.
+           </p>
+           <p>
+                Out of these collaborations,
+                the <a href="http://struts.apache.org/announce.html#a20051214.3">
+                Apache Struts/OpenSymphony WebWork</a> merger was born.
+           </p>
+            </answer>
+        </faq>
+
+        <faq id="xwork">
+            <question>What about other Open Symphony products, like
+                XWork?</question>
+            <answer>
+
+                <p>
+                    For the time being, there is no plan to migrate XWork to
+                    the ASF. Struts Action has always had many dependencies on
+                    external
+                    packages. So long as packages like XWork and Sitemesh are doing
+                    well at OpenSymphony, there is no reason to make further changes.
+                </p>
+            </answer>
+        </faq>
+
+        <faq id="migrate">
+            <question>Will it be difficult to migration from Action 1 to
+                Action 2?</question>
+            <answer>
+                <p>
+                    Many of us have significant Struts Action 1.x
+                    applications in production.
+                    Being able to migrate both applications and developer
+                    skill sets is important to all of us.
+                </p>
+                <p>
+                    Several
+                    <a href="http://wiki.apache.org/struts/MigrationStrategy">
+                        migration strategies</a>
+                    are being developed.
+                </p>
+            </answer>
+        </faq>
+
+        <faq id="overdrive">
+            <question>What about OverDrive or Struts Nexus?</question>
+            <answer>
+                <p>
+                    <a href="http://wiki.apache.org/struts/StrutsOverDrive">
+                        OverDrive</a>
+                    is a working proposal to use a set of case-study
+                    applications
+                    to drive the design and creation of a business layer
+                    framework.
+                    The codename for the business layer framework under
+                    development is "Nexus".
+                    Like Action and Shale, the Nexus internals are based on
+                    the Chain of Responsibility pattern.
+                </p>
+                <p>
+                    OverDrive and Nexus do not complete with frameworks like
+                    Action and Shale.
+                    Nexus begins where these frameworks end.
+                    Nexus is the "rest of the stack".
+                </p>
+                <p>
+                    The codebase underlying the proposal is being coded in C#,
+                    but a version for Java is expected in due course.
+                </p>
+            </answer>
+        </faq>
+
+        <faq id="choice">
+            <question>Which Apache Struts Framework should I use on my next
+                project?</question>
+
+            <answer>
+                <p>
+                    First, you should decide which user interface technology you
+                    would like to use:
+                    <a href="http://java.sun.com/j2ee/javaserverfaces/">JavaServer
+                        Faces</a>
+                    (JSF),
+                    conventional
+                    <a href="http://java.sun.com/products/jsp/">JavaServer Pages</a>
+                    (JSP),
+                    or another templating technology like
+                    <a href="http://jakarta.apache.org/velocity/">Velocity</a>
+                    .
+                </p>
+                <p>
+                    JSF is designed to work well with visual design tools, much
+                    like ASP.NET. Some people are finding that JSF is a faster way to
+                    write new applications. A good place to learn more about JSF is
+                    <a href="http://jsfcentral.com/">JSF Central</a>
+                    .
+                </p>
+                <p>
+                    Conventional JSP is a tried and true strategy.
+                    When used as part of a MVC architecture, applications based on
+                    server pages or templates are known to be easy to create,
+                    maintain, and extend over time.
+                </p>
+                <p>
+                    If you are a sole developer working on a small application,
+                    then you might not even need a framework.
+                    Simple applications can be written with JSF or JSP with
+                    <a href="http://java.sun.com/products/jsp/jstl/index.jsp">
+                        JSTL</a>
+                    "out of the box."
+                    (If you choose JSF, be sure to give
+                    <a href="http://developers.sun.com/prodtech/javatools/jscreator/">
+                        Java Studio Creator</a>
+                    a try.)
+                </p>
+                <p>
+                    Multi-developer teams working on larger applications will
+                    probably find a MVC framework useful. In that case,
+                    we would suggest
+                    <a href="http://struts.apache.org/struts-shale/index.html">Struts
+                        Shale</a>
+                    for JSF
+                    or
+                    <a href="http://struts.apache.org/struts-action/index.html">
+                        Struts Action</a>
+                    for JSP.
+                    Other likely candidates for a Web MVC framework include
+                    <a href="http://cocoon.apache.org/">Apache Cocoon,</a>
+                    <a href="http://jakarta.apache.org/tapestry/">Apache Tapestry,</a>
+                    <a href="http://jakarta.apache.org/turbine/">Apache Turbine,</a>
+                    ,
+                    <a href="http://www.springframework.org/docs/reference/mvc.html">Spring MVC.</a>
+                    , and
+                    <a href="http://wicket.sourceforge.net/">Wicket.</a>
+                </p>
+            </answer>
+        </faq>
+
+        <faq>
+            <question>So many decisions! Shouldn't it be simplier?</question>
+            <answer>
+                <p>
+                    Yes, there seems to be nothing but choice when it comes to
+                    developing web applications.
+                </p>
+
+                <p>
+                    To begin with, someone has to choose between ASPX, Java, PHP,
+                    Python, Ruby, et al.
+                    Once you choose Java, then you have to choose a web container,
+                    such as Jetty, Tomcat, Resin, WebLogic, or WebSphere, to name a
+                    few.
+                    Of course, you also have to build the application that runs in
+                    the container, which is where
+                    <a href="#choice">choosing Apache Struts</a>
+                    comes in. Then, most teams also use a data access framework.
+                    Choices there include Cayenne, iBATIS, Hibernate, and OJB.
+                </p>
+
+                <p>
+                    (Right about now, Ruby's single-stack approach must be sounding
+                    pretty good!)
+                </p>
+
+                <p>
+                    But, wait, there's more! You also have to choose an editor or
+                    IDE:
+                    Eclipse? IDEA? NetBeans? UltraEdit? Some other?
+                    (Many teams decide to use more than one!)
+                    And do we use Ant, Maven, or the IDE to build it all?
+                </p>
+
+                <p>
+                    Lest we forget: Someone also needs to choose a database system
+                    (DB2? Derby? Oracle? PostGres? MySQL?), a version control system
+                    (CVS? Subversion? Perforce?),
+                    a development methodology (eXtreme Programming? RUP? Scrum?
+                    Waterfall?),
+                    and, if you're lucky, an issue tracker (Bugzilla? JIRA? Scarab?).
+                </p>
+                <p>
+                    Welcome to the jungle!
+                </p>
+            </answer>
+        </faq>
+
+        <faq id="next">
+            <question>
+                Is Shale the Next Struts? Or is Action 2 the Next Struts?
+            </question>
+            <answer>
+                <p>
+                    Yes.
+                </p>
+                <p>
+                    Shale is the Next Struts for JSF. Action 2 is the next Struts for
+                    JSP.
+                </p>
+                <p>
+                    If you'd like a head-start on Action 2,
+                    you could start new development with WebWork 2 today.
+                    <a href="announce.html#a20051214.3">
+                        WebWork has joined Apache Struts,</a>
+                    and Action 2 will be an updated release of WebWork 2.2.
+                    Undoubtedly, there will be some changes,
+                    just as there were changes between WebWork 2.1 and Webwork 2.2,
+                    but the core API and architecture will remain the same.
+                </p>
+            </answer>
+        </faq>
+
+        <faq id="steering">
+            <question>Shouldn't the Apache Struts team focus on a single technology
+                and help reduce choice for the rest of us?</question>
+            <answer>
+                <p>
+                    Apache Struts is neither a steering committee nor a vendor. We're
+                    a group of engineers creating the web application frameworks that
+                    we want to use to build our own applications. Some of us are
+                    working on JSF applications, some of us are working on JSP
+                    applications, and some of us are working on both. Since we have
+                    volunteers to work on two frameworks, we offer two
+                    frameworks.</p>
+
+                <p>The Struts committers work for different employers all over
+                    the world. It is not feasible for us to say this technology or
+                    that technology is the only technology anyone in our group can
+                    use.
+                    One of our employers might choose JSF, and another might stick
+                    with JSP. We are a working group of engineers who live in the
+                    real world, and we are faced with all the same choices every Java
+                    engineer faces today.
+                </p>
+                <p>
+                    Entities like Microsoft, and Sun, and Zend, exist to promote one
+                    technology over another, mainly to make it easier for them to
+                    sell you something.
+                    The Apache Struts team is not trying to sell you anything.
+                    We're collaborating on the frameworks that we want to use, and
+                    we are trying to share the wealth with others who might want to
+                    help us.
+                    If you choose to use one of our frameworks, that's great. We're
+                    glad we could help. If you'd like to help us make the frameworks
+                    even better, feel free to return the favor. We don't want your
+                    money, but
+                    <a href="helping.html">we could use your help.</a>
+                </p>
+            </answer>
+
+            <faq id="subprojects">
+                <question>Why are there so many "extensions" for Action 1 now?</question>
+                <answer>
+                    <p>
+                        Over the years, the Action 1 framework grew to include not only a
+                        controller and a set of taglibs but several other extensions,
+                        like Tiles, EL, Scripting, and Flow. There were also some
+                        optional classes that some people liked, but not everyone needed
+                        (like DispatchAction).
+                    </p>
+
+                    <p>
+                        Releasing all of this code together has been like hanging wall
+                        paper. We smooth a crease here, and another wrinkle crops up over
+                        there. In order to promote lighter, regular releases, we've
+                        subdivided the monolithic Struts 1.2 distribution into seven
+                        distinct subprojects: Action, EL, Extras, Site, Taglib, and
+                        Tiles.
+                    </p>
+
+                    <p>
+                        Now, if we want to make a change to a JSP tag, we can release
+                        Taglib without re-releasing everything else. Likewise, if we want
+                        to add a nifty new Action to Extras, we can just release Extras,
+                        without re-releasing everything else.
+                    </p>
+
+                    <p>
+                        Of course, the next question is: "Which versions work with the
+                        best available release of Action?" To answer that question,
+                        we provide the Struts Action Library, which contains the set of
+                        JARs that work with the "best available" release of Action 1.3.
+                    </p>
+                </answer>
+            </faq>
+
+            <faq id="dependencies">
+                <question>
+                    But what if a new feature in Taglibs depends on a new feature in
+                    Action 1? Won't you still have to release them together?
+                </question>
+                <answer>
+                    <p>
+                        Hmmm, almost. This sort of thing already happens with the Commons
+                        components. We might have to release a new version of Commons
+                        Validator and test it against the development build of Struts
+                        Action. The same thing would continue to happen. It's just
+                        instead of
+                        being a Commons component and a Struts component, it's two
+                        Struts components. No big woof.
+                    </p>
+                    <p>
+                        The difference is that now we get to choose what is released
+                        together. The infrastructure does not make that decision for us.
+                    </p>
+                </answer>
+            </faq>
+
+            <faq id="confusing">
+                <question>Won't it be confusing for people to bundle, say, Action 1.3.4
+                    with Taglib 1.3.2?</question>
+                <answer>
+                    <p>
+                        We also bundle Action 1.3.0 with Commons-Validator 1.2.0.
+                        and Commons-BeanUtils 1.7.0, and several other JARs with their
+                        own version numbers. Same difference.
+                    </p>
+                    <p>
+                        To make it easy for people to grab the "best available"
+                        combination of JARs, we offer the Struts Action Library.
+                    </p>
+                </answer>
+            </faq>
+
+            <faq id="classic">
+                <question>Is Struts Classic another name for the Struts Action Framework?
+                </question>
+                <answer>
+                    <p>Struts Classic is a codename for the work we needed to do to
+                        create and release the seven new subprojects we extracted from
+                        Struts 1.2. It is not a product per-se, but shorthand for the
+                        1.3.0 build of the seven projects.
+                    </p>
+                </answer>
+            </faq>
+
+        </faq>
+    </part>
+
+    <part>
+        <p class="right">
+            <strong>Next:</strong>
+            <a href="helping.html">How to Help FAQ</a>
+        </p>
+    </part>
+
+</faqs>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org