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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]