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