blob: fd4524af06a6a660c6c20a1fe12e68063d8d067d [file] [log] [blame]
<?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="Kickstart FAQ">
<part>
<p>
Here are answers to the some of the usual Apache Struts
getting-started questions.
</p>
</part>
<part>
<title>Product Line</title>
<faq id="shale">
<question>Why are you offering both Struts Shale and 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) is 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>
.
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.
</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>
</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="ti2">
<question>Does Ti mean there will be three frameworks?</question>
<answer name="Does Ti mean there will be three frameworks?">
<p>
There will be the
<strong>Action 1</strong>
framework that is currently
in production and usually refered to as "Struts".
When released, Ti will become the
<strong>></strong>
Action 2 framework.
Shale will remain a separate but equal framework
that focuses on JavaServer Faces rather than
conventional server pages.
</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="action">
<question>What's the difference between Struts Action Framework
and Struts Classic?</question>
<answer>
<p>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.</p>
</answer>
</faq>
</part>
<part>
<title>Project Details</title>
<faq id="struts">
<question>Why is the project called Struts?</question>
<answer>
<p>It's a reference to struts in the architectural sense, a
reminder of the nearly invisible pieces that hold up
buildings, houses, and bridges.</p>
</answer>
</faq>
<faq id="license">
<question>How is Apache Struts licensed?</question>
<answer>
<p>All Apache Struts products are copyrighted software
available under the
<a href="http://www.apache.org/licenses">Apache
License</a>
, a &quot;free-to-use, business-friendly license&quot;.
</p>
</answer>
</faq>
<faq id="usage">
<question>Can Apache Struts be used in a commercial
product?</question>
<answer>
<p>Yes. The only requirements you must meet are those listed
in the
<a href="http://www.apache.org/licenses">Apache
License</a>
.
</p>
</answer>
</faq>
<faq id="credits">
<question>Do I have to credit Apache Struts on my own
website?</question>
<answer>
<p>You need to credit Apache Struts if you
<strong>redistribute your own framework</strong>
based on our products
for other people to use. (See the
<a href="http://www.apache.org/LICENSE">Apache License</a>
for details.)
But you do
<strong>not</strong>
need to credit Apache Struts just because your web
application utilizes one of our products.
It's the same situation as using the Apache HTTPD server
or Tomcat. Not required if its just running your web site.
Required if you've used the source code to create your own
server that you are redistributing to other people.
</p>
</answer>
</faq>
<faq id="requests">
<question>If a product doesn't do what I want, can I request that
a feature be added?</question>
<answer>
<p>
First, it's important to remember that Apache Struts is an
all-volunteer project.
We don't charge anyone anything to use Apache Struts
products.
Committers and other developers work on Apache Struts
products because they need to use it with their own
applications.
If others can use it too, that's "icing on the cake".
If you
<a href="../helping.html">submit a patch</a>
for a feature that a Committer finds useful, then that
Committer may choose to volunteer his or her time to apply
the patch.
If you just submit an idea without a patch, it is much
less likely to be added (since first someone else has to
volunteer their time to write the patch).
</p>
<p>
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.)
</p>
</answer>
</faq>
<faq id="help">
<question>Where can I get help with Apache Struts?</question>
<answer>
<p>Struts Action Framework comes complete with a
<a href="../userGuide/index.html">Users Guide</a>
to
introduce people to the framework and its underlying
technologies. Various components
also have their own in-depth Developers Guide, to cover
more advanced topics. Comprehensive
<a href="../api/index.html">Javadocs</a>
are included
along with the
<strong>full source code</strong>
.
</p>
<p>
The
<a href="http://struts.apache.org/mail.html">Struts user
mailing list</a>
is also
very active, and welcomes posts from new users. Before
posting a new question, be
sure to consult the
<a href="http://struts.apache.org/mail.html#Archives">
<strong>MAILING LIST ARCHIVE</strong>
</a>
and the very excellent
<a href="http://www.catb.org/~esr/faqs/smart-questions.html">
How To Ask Questions The Smart Way</a>
by Eric Raymond. Please do be sure
to
<a href="http://expita.com/nomime.html">turn off HTML</a>
in your
email client before posting.
</p>
</answer>
</faq>
<faq id="support">
<question>Is commercial support available?</question>
<answer>
<p>The Apache Software Foundation does not provide commercial
support for any of our software products, including Apache
Struts products.
However, third parties may offer different degrees of
support.</p>
</answer>
</faq>
<faq id="providers">
<question>Are there ISPs that will host my Struts
application?</question>
<answer>
<p>For a listing of some Java and Struts Action Framework
ISPs, visit the
<a href="http://struts.sf.net/community/index.html">Struts
Community Resources</a>
area on SourceForge.
</p>
</answer>
</faq>
<faq id="ide">
<question>Is there a particularly good IDE to use with Struts
Action Framework"</question>
<answer>
<p>
Struts should work well with any development environment
that you would like to use, as well as with any
programmers editor.
The members of the Struts development team each use their
own tools such as
<a href="http://www.gnu.org/software/emacs/emacs.html">
Emacs</a>
,
<a href="http://www.intellij.com/idea/">IDEA</a>
,
<a href="http://www.eclipse.org/">Eclipse</a>
,
and
<a href="http://www.netbeans.org/">NetBeans</a>
.
</p>
<p>
See the
<a href="../faqs/index.html">Howto Guides</a>
for more about configuring IDEs to work with Struts.
</p>
</answer>
</faq>
<faq id="digest">
<question>Is there a digest for the User list?</question>
<answer>
<p>
Yes.
<a href="mailto:user-digest-subscribe@struts.apache.org">
send a blank message</a>
to &lt;
<a href="mailto:user-digest-subscribe@struts.apache.org">
user-digest-subscribe@struts.apache.org</a>
&gt;.
</p>
<p>
If you are subscribed to the digest, you can also post to
the list.
Just be sure to send your post to the
<a href="mailto:user@struts.apache.org">user list</a>
rather than trying to reply to the digest.
</p>
</answer>
</faq>
<faq id="newsgroup">
<question>Is there an Apache Struts newsgroup?</question>
<answer>
<p>
Not a usenet group, but the Struts User list can be
accessed with your
favorite newsgroup reader from the
<a href="http://news.gmane.org/">GMane News Site</a>
. Subscribe to groups
<code>gmane.comp.jakarta.struts.devel</code>
for the developer list, or
<code>gmane.comp.jakarta.struts.user</code>
for the user list.
</p>
</answer>
</faq>
<faq id="mailbounce">
<question>Why didn't my posting show up on the user
list?</question>
<answer>
<p>
You must be subscribed to the
<a href="mailto:user-subscribe@struts.apache.org">user
list</a>
or
<a href="mailto:user-digest-subscribe@struts.apache.org">
user digest</a>
before posting
(or use the
<a href="http://news.gmane.org">GMane Newsgroups</a>
instead).
</p>
</answer>
</faq>
<faq id="unsubscribe">
<question>How do I unsubscribe from the mailing list?</question>
<answer>
<p>
<strong>From the email account used to subscribe to the
list,</strong>
<a href="mailto:user-unsubscribe@struts.apache.org">send a
blank message</a>
to &lt;
<a href="mailto:user-unsubscribe@struts.apache.org">
user-unsubscribe@struts.apache.org</a>
&gt;.
</p>
<p>
If you are receiving the digest, you must send a blank
email to
&lt;
<a href="mailto:user-digest-unsubscribe@struts.apache.org">
user-unsubscribe@struts.apache.org</a>
&gt;
instead.
</p>
</answer>
</faq>
</part>
<part>
<p class="right">
<strong>Next:</strong>
<a href="helping.html">How to Help FAQ</a>
</p>
</part>
</faqs>