blob: 284d79fdc00b1236a90c8ccf499555a74add7db8 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<document>
<properties>
<title>Apache Turbine&#8482;</title>
</properties>
<body>
<section name="Apache Turbine&#8482; Web Application Framework">
<p>
Apache Turbine&#8482; is a servlet based framework that allows experienced Java
developers to quickly build web applications. Turbine allows you
to use personalize the web sites and to use user logins to restrict
access to parts of your application.
</p>
<p>
Turbine is a matured and well established framework that is used as
the base of many other projects (like e.g. the excellent <a
href="https://portals.apache.org/jetspeed-1/">Jetspeed 1 (Retired)</a>
Portals framework.
</p>
<p>
Turbine is an excellent choice for developing applications that make use of a
services-oriented architecture. Some of the functionality
provided with Turbine includes a security management system (decoupled in Fulcrum Security), a
scheduling service (decoupled in Fulcrum Quartz), XML-defined form validation server (Fulcrum Intake),
and an XML-RPC service for web services. It is a
simple task to create new services particular to your application.
</p>
<p>
The Turbine core is free of any dependency on a presentation layer
technology. Both JavaServer Pages (JSP) and
<a href="http://velocity.apache.org/engine/">Velocity</a> are supported
inside Turbine. For developers already familiar with JSP, or have
existing JSP tag libraries, Turbine offers support for the Sun standard.
<strong>Velocity</strong> is the favorite view technology of most users of the Turbine
framework; try it out and see if Velocity can help you develop your
web applications faster and work more easily with non-programming designers.
</p>
<p>
Turbine is developed in an open, participatory environment and
released under the <a href="common/license.html">Apache
Software License</a>. Turbine is intended to be a collaboration of the
best-of-breed developers from around the world. We invite you to
participate in this open development project. To learn more about getting
involved, <a href="how-to-help.html">look at our &quot;How to Help&quot; pages</a>.
</p>
<subsection name="Integration Hints: JS, JSON, REST">
<p> Modelling on the client side with JS-frameworks like KnockoutJS or Vue.JS is supported of course. You may use the provided XML-RPC service,
simple Velocity context or Fulcrum JSON utilities.
You may even want to skip (almost) the entire (server) view part and decide to use just REST-API libraries (Javax.ws.rs, Jersey).
As an example consider registering an JSON Fulcrum service returning a default (Jackson) ObjectMapper object, which may be resolved by a
javax.ws.rs context Provider.
For now no custom security integration is yet provided, but this may be done with web-token or any other token based authentification system
or annotation based.
</p>
</subsection>
</section>
<section name="Turbine Versions">
<p>
Turbine is since version 4.0 developed in a single master/branch.
<ul>
<li><strong><a href="turbine/development/turbine-5-2/">Turbine 5.2</a></strong> is the current development master.
</li>
<li><strong><a href="turbine/development/turbine-5-1/">Turbine 5.1</a></strong> is
is a highly backward compatible version of 5.0. Download it from <a href="https://www.apache.org/dyn/closer.cgi/turbine/turbine-5.1/">Apache Mirrors</a>.
</li>
<li><strong><a href="turbine/turbine-5-0/">Turbine 5.0</a></strong> is using Servlet 3.1, Java 8, Log4J2, Velocity 2. It is already used in some live applications,
download it from one of the <a href="https://www.apache.org/dyn/closer.cgi/turbine/turbine-5.0/">Apache Mirrors</a>.
</li>
<li><strong><a href="turbine/turbine-4-0/">Turbine 4.0</a></strong> should be used only, if starting a project restricted
with Java 7. Download it from one of the
<a href="https://www.apache.org/dyn/closer.cgi/turbine/turbine-4.0/">Apache Mirrors</a>.
Turbine 4.0 uses technologies like an <a href="http://avalon.apache.org/">
Avalon-based</a> container and decoupled components from the
<strong><a href="fulcrum/">Fulcrum</a></strong> sub-project of Turbine (most of the benefits of
these enhancements are realized in the
<a href="turbine/turbine-2-3.3/">2.3.3</a> release). One significant
change in 4.0 is the introduction of a pipeline concept that allows you to define
via <strong>XML</strong> all the stages for processing a request.
</li>
<li><strong><a href="turbine/turbine-2-3-3//">Turbine 2.3.3</a></strong> is
the version you should use when migrating from an older version of
Turbine. The 2.3 branch of Turbine has been switched to maintenance mode, however.
You can download Turbine 2.3.3 from one of the
<a href="https://www.apache.org/dyn/closer.cgi/turbine/turbine-2.3.3/">Apache Mirrors</a></li>
</ul>
</p>
</section>
<section name="Sub Projects">
<p></p>
<ul>
<li>
<a href="/fulcrum/">Fulcrum</a> components are by default in use since Turbine 4.x. It is a collection of services originally
developed as part of Turbine, but now decoupled and usable in any environment
that supports <a href="https://attic.apache.org/projects/avalon.html">Avalon</a> components.
</li>
</ul>
</section>
<section name="Turbine Alumni">
<p>
As a longtime, but now ex-member of the <a href="http://attic.apache.org/projects/jakarta.html">Apache Jakarta Project (before 2018)</a>
(<a href="https://jakarta.apache.org/">old address</a>*), Turbine has influenced quite a number of projects:
</p>
<ul>
<li>
<a href="https://db.apache.org/torque/">Torque</a> is a persistence
layer originally developed as part of Turbine. Torque is now
decoupled and part of the <a href="http://db.apache.org/">Apache Database Project</a>.
</li>
<li>
<a href="https://maven.apache.org/">Maven</a> is an advanced Java
Project Management tool originally developed out of the frustration with the
Turbine build process. Maven is now a toplevel Apache project, residing at <a
href="https://maven.apache.org/">maven.apache.org</a>.
</li>
<li>
In addition, Turbine has spawned a number of <a href="http://commons.apache.org/">Commons</a>
components like <a href="https://commons.apache.org/configuration/">Commons configuration</a> or
<a href="https://commons.apache.org/email/">Commons EMail</a>.
</li>
</ul>
* Note: Be aware, that <a href="https://jakarta.ee/about/">Jakarta EE</a> is since 2019
used as a brand label for the Java EE Cloud Native project.
</section>
<section name="The Apache Software Foundation">
<p>
The <a href="https://www.apache.org">Apache Software Foundation</a> provides support for the
Apache community of open-source software projects. The Apache projects are defined by
collaborative consensus based processes, an open, pragmatic software license and a desire
to create high quality software that leads the way in its field.
</p>
<p>
Apache Turbine, Turbine, Apache, the Apache feather logo, and the Apache Turbine project logo
are trademarks of The Apache Software Foundation.
</p>
<p>
All other marks mentioned may be trademarks or registered trademarks of their respective
owners.
</p>
</section>
</body>
</document>