On this page, you can find a functional breakdown of Turbine codebase.
This should help you in getting familiar with the tools that Turbine offers
to you. Also, it will help you locate people that are experts in the field
of a specific functional block, so you can contac them if you encouter
a problem, or better yet have made a patch that fixes it.
Turbine Core
In the Core part of Turbine you will find the Turbine Servlet, the
single entry point to your application, and the classes that form the
framework of HTTP-interfaced application following MVC desing pattern.
Here you will find the base classes you will have to extend to fill
in the framework with your application's logic. See the
specification for more details.
Essential Services
This block contains the Service Framework
that forms the basis of Turbine infrastructure. It allows defining
utility classes with pluggable implementation (that means that you
can customize and override the utility classes provided by Turbine
easily) that can take part in the startup and shutdown sequence of the
application.
You will find here the Services that are essential for the operation
of the framework and very useful for building your application, like
Resource service (for accessing configuration settings) and Logging
service (a powerful tool that allows you to trace various aspects of
operation of the application, and send the messages to a multitude
of destinations including system console, text files, unix syslog
daemon, JDBC compliatn database and even a remote Logging service)
Content generation services
This block groups together various services that aid you in the process
of creating the user interface of your application. Most important,
you will find here services that provide templating functionality,
that allows you to create the HTML/XML/WML presentation layer of your
application independently form your Java sources. The services provided
are actually wrappers around templating packages developed independently
from Turbine, such as Velocity.
Also, there is a service that allows you to use Sun's JSP technology for
creating templates. Other services that fall into this block are
the Pull service, allowing you to create tool boxes (read more about
Pull model), Localization service, that allows
you to crate bundles of messages that your application displays translated
into different languages, that can be easily manipulated, and the
Upload service, that handles uploading files from HTML forms.
Database access
Database tools in Turbine include connection pooling service, which
can transparently delegate to J2EE application server's pooling facilities,
of provide connection pooling in lightweight, servlet container only
environment. An important element you will find in this block is
Peers framework, that is one of the corner stones
of Turbine framework along with Services and Modules. Peers allow you to
create relationship between tables in a relational database and classes in
your application. It also allows to create queries in an Object-oriented way.
Object services
One of the greatest advantages of working in Java Servlets environment,
is the statefullness of your application. You can create object and hold
them in memory, to avoid repeated loading information form external
sources, like disk files or the database. Turbine provides a few
Services that will help you with management of these objects. One of them
is Pool service that allows you to create pools of reusable object that
may be acquired from the pool by a thread processing a request, and
recycled when no longer needed. Cache service will help you with
managing objects that contain information that can be reused multiple
times.
Auxilary Services
In this section you will find other services that might be useful
in the building your application. For example
XMLRPC service that allows
communication between applications within a heterogenous environment
using XML-based protocol over HTTP. There are also services allowing
manipulation of XML content using XSLT, and a service that manages
creating contexts for performing JNDI operations.
E-mail messages
Turbine can help you with creating and sending e-mail. Also
with the help of templates, just as those you use for displaying
HTML pages.
Utility classes
This block encompasses the various utility classes contained in
Turbine. You should check those classes, as they solve some common
problems encountered in web application making.
Turbine tools
In this block, you will find tools that ship together with Turbine.
These tools are runnable from the command line, and are used for the
development purposes, not during the normal operation of an application.
The tools include Torque, the tool for
generating Peer Framework classes for your application,
Intake that generates classes for automation
of processing of complex HTML forms, and the
Migrator, the tool that helps you with bringing your application
up to date with newer releases of Turbine, by performing batches
of search-and-replace operations on your sources. When used properly,
it can save you a plenty of typing.