The key jar file is the hibernate-avalon.jar file, it contains the Avalon wrapper
for Hibernate, and can be used with any Avalon container.

Setting up Avalon Configuration

We leverage the Avalon based HibernateService that is hosted as part of the
HibernateExt project. You must specify the name of the service, as well as the implementing
service in your componentConfiguration.xml file. Other configuration parameters can be passed
in as well.

Setup Hibernate mapping files

This section will not go into depth on how to configure the hibernate.cfg.xml and
hibernate.hbm.xml files. However, if you don't specify in the componentConfiguration.xml
file where they are located, then they should be placed in your src/java/ directory.

The exact configuration is dependent on the environment Turbine is running in, however
I highly recommend that you use the JNDI look up of the datasource, and use DBCP for your
connection pooling. I have found that when using Hibernate in cactus tests, you may need to
increase the pool size required in order to not run out of connections, however this doesn't
seem to apply to running as a web application.

Create static ServiceLocator class.

Currently this class is not integrated into Turbine, so you will need to provide an implemation yourself.
This provides a static method of retrieving your Hibernate Session.

Create Servlet Filter.

The servlet Filter is required if you use lazy loading of objects because you need to open a Hibernate sesion, and keeps it open through the view layer.
This ensures that each user get's their own Hibernate Session. ?? Should this be done
through some sort of SessionValidator?

By using this TechnicianManager class, we could feasibly swap out the Hibernate code
for another OM strategy. Even better would be to have a TechnicianManager interface
and a TechicianManagerImpl class. Possibly loaded via Avalon as a component!

Setup PersitenceException handling

By catching a generice Persistence Exception that wraps all the
thrown exceptions we can just catch a single exception and then
retrieve what type of exception it is.