Here are answers to the some of the usual Apache Struts getting-started questions.
We do offer Apache Struts developers a choice, but, hey, choice is good. :)
People who want to create and maintain the Struts Action Framework are welcome to do so.
People who want to create and maintain the Struts Shale Framework are equally welcome.
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.
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.
For more about volunteering, visit our how to help page .
No. It's an entirely new product with its own architecture. Shale is to JavaServer Faces what Action is to JavaServer Pages.
Both frameworks will have a home here so long as there are volunteers ready to contribute.
We encourage you to choose the framework that works best for you.
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).
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.
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.
Struts Ti (short for Titanium) is a codename for Struts Action Framework 2.x. In late November 2005, the Ti proposal was amended to include a merger with Open Symphony WebWork . Under this plan, the next stable release of WebWork is being donated to Apache Struts, and the lead WebWork committers are joining the Struts community. The WebWork codebase is being brought into the ASF through the Apache Incubator. Once licensing and related issues are resolved, the codebase will be made part of the Apache Struts framework.
WebWork started as a Struts Revolution . Over the years, it has evolved into a superb action-based framework that retains many Struts 1.x paradigms.
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.
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.
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.
Several migration strategies are being developed.
There will be the Action 1 framework that is currently in production and usually refered to as "Struts". When released, Ti will become the > Action 2 framework. Shale will remain a separate but equal framework that focuses on JavaServer Faces rather than conventional server pages.
OverDrive 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.
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".
The codebase underlying the proposal is being coded in C#, but a version for Java is expected in due course.
For the Struts Action Framework 1.3.x series, we subdivided the monolithic Struts 1.2.x distribution into several discrete subprojects. Struts Classic is a codename for the work we needed to do to create and release the new subprojects.
It's a reference to struts in the architectural sense, a reminder of the nearly invisible pieces that hold up buildings, houses, and bridges.
All Apache Struts products are copyrighted software available under the Apache License , a "free-to-use, business-friendly license".
Yes. The only requirements you must meet are those listed in the Apache License .
You need to credit Apache Struts if you redistribute your own framework based on our products for other people to use. (See the Apache License for details.) But you do not need to credit Apache Struts just because your web application utilizes one of our products. It's the same situation as using the Apache HTTPD server or Tomcat. Not required if its just running your web site. Required if you've used the source code to create your own server that you are redistributing to other people.
First, it's important to remember that Apache Struts is an all-volunteer project. We don't charge anyone anything to use Apache Struts products. Committers and other developers work on Apache Struts products because they need to use it with their own applications. If others can use it too, that's "icing on the cake". If you submit a patch for a feature that a Committer finds useful, then that Committer may choose to volunteer his or her time to apply the patch. If you just submit an idea without a patch, it is much less likely to be added (since first someone else has to volunteer their time to write the patch).
We are grateful for any patches, and we welcome new ideas, but the best way to see that something gets added to the framework is to do as much of the work as you can, rather than rely on the "kindness of strangers". Worst case, you can apply the patch to your copy of Struts and still use the feature in your own application. (Which is what open source is ~really~ all about.)
Struts Action Framework comes complete with a Users Guide to introduce people to the framework and its underlying technologies. Various components also have their own in-depth Developers Guide, to cover more advanced topics. Comprehensive Javadocs are included along with the full source code .
The Struts user mailing list is also very active, and welcomes posts from new users. Before posting a new question, be sure to consult the MAILING LIST ARCHIVE and the very excellent How To Ask Questions The Smart Way by Eric Raymond. Please do be sure to turn off HTML in your email client before posting.
The Apache Software Foundation does not provide commercial support for any of our software products, including Apache Struts products. However, third parties may offer different degrees of support.
For a listing of some Java and Struts Action Framework ISPs, visit the Struts Community Resources area on SourceForge.
Struts should work well with any development environment that you would like to use, as well as with any programmers editor. The members of the Struts development team each use their own tools such as Emacs , IDEA , Eclipse , and NetBeans .
See the Howto Guides for more about configuring IDEs to work with Struts.
Yes. send a blank message to < user-digest-subscribe@struts.apache.org >.
If you are subscribed to the digest, you can also post to the list. Just be sure to send your post to the user list rather than trying to reply to the digest.
Not a usenet group, but the Struts User list can be
accessed with your
favorite newsgroup reader from the
GMane News Site
. Subscribe to groups
gmane.comp.jakarta.struts.devel
for the developer list, or
gmane.comp.jakarta.struts.user
for the user list.
You must be subscribed to the user list or user digest before posting (or use the GMane Newsgroups instead).
From the email account used to subscribe to the list, send a blank message to < user-unsubscribe@struts.apache.org >.
If you are receiving the digest, you must send a blank email to < user-unsubscribe@struts.apache.org > instead.
Next: How to Help FAQ