Getting Started

The purpose of this document is to define simple documentation on getting started with Turbine. For information about the overall structure of Turbine, please refer to the Functional Specification Document (FSD) as well as the other documentation that is available.

The first thing that you should do is download and install the Turbine Developer Kit (TDK). The TDK has everything that you need to get started with Turbine, including the Tomcat Servlet Engine which is preconfigured to run Turbine. The TDK also has sample applications as well as scripts that allow you to quickly build your own application. As time progresses, we will be including more and more helpful information in the TDK. Please see the Turbine Development Kit Howto for more information.

Code Organization

Turbine can be used in three different ways depending on what you need. You can choose to only use one way or choose to use all three. It is up to you.

  • As a servlet framework with Turbine as the controller.
  • As a framework of useful code in your application.
  • As a Object-Relational Tool.

In all cases, it means that you simply link against the API and code provided in the turbine.jar file. In other words, if you want to only use the Object Relational aspects of Turbine, then you would use Torque to build your Object Relational code and then add the turbine.jar into your classpath. Another example is if you want to use Turbine's connection pool code. All you need to do is tell Turbine where its configuration file is, add turbine.jar to your classpath and then add the appropriate Turbine Java code into your application.

Turbine is now a fairly large codebase. This can be daunting to people who are just starting out with Turbine. However, the code is fairly well organized and as you learn about each part of the code, the entire architecture starts to make sense and is really quite easy to master. All of our code is well javadoc'd so we encourage you to review not only the actual source code, but also the documentation. :-) The different parts of Turbine are:

  • org.apache.turbine.modules - This is where the code for the Modules system is stored. The different Modules are described in more detail in the funtional specification document .
  • - OM stands for Object Model. This is where the code that represents Turbine's Object Model lives. The code in here is for handling a lot of Turbine's RDBMS relationships. For example, there is code that represents what a Turbine User is as well as code for the BaseObject and BasePeer which is for the Peer based Object Relational Tool.
  • - This is where the Services Framework lives. The Services framework is a core aspect of Turbine. Essentially it is a framework for creating Singleton objects which may also have an init() and destroy() lifecycle. There are Services for many different things. For example, the Database Connection Pool is a service and so is the Logging (which is backed by Log4J ).
  • org.apache.turbine.torque - Torque is our generic tool for building autogenerated code. The benefit of this is that we are able to do things like take a database that is defined as an XML file and then autogenerate the .sql for a specific database as well as Java code that can allow you to easily build an Object Relational system.
  • org.apache.turbine.util - The Util package is just that. A package of utility code that is used within Turbine. There is code that will allow you to easily send template based email using WebMacro or Velocity as well as many other commonly used web application tools.

Standalone Usage

Turbine can be easily used on its own. In order to do so, all you need to do is something like this before you attempt to make a call to Turbine based code:

TurbineConfig tc = new TurbineConfig("/path","");

What that does is it tells Turbine the path to its configuration file based on the relative path from "/path" (insert your own path). This is held as a static in memory and therefore you only need to do it once. You do not even have to worry about hanging on to the TurbineConfig object. For more information, please see the javadoc for the TurbineConfig object.

Generating the Turbine Javadocs

To generate the Javadocs for Turbine check out Turbine from CVS, cd to the 'build' directory and execute the javadocs target:

cd jakarta-turbine/build
ant javadocs

The javadocs will be generated in the ../docs/apidocs directory.

Further Questions and Comments

If you have further questions or comments, please send them to the Turbine Mailing list .