org.mortbay.jetty.plus
Class AbstractDataSourceService
public abstract
class
AbstractDataSourceService
extends AbstractService
AbstractDataSourceService
Base class for DataSource Service implementations.
This class provides support for plugging DataSources and
DataSource Connection pooling implementations into JettyPlus.
A DefaultDataSourceService subclass provides a Connection pooling
implementation courtesy of XAPool project http://xapool.experlog.com.
If you wish to incorporate a different connection pooling implementation,
then subclass this class an implement the addDataSource(name, connectionpoolingdatasource)
method.
Method Summary |
DataSource | addConnectionPoolDataSource(String jndiName, ConnectionPoolDataSource cpds) Add a JDBC2/3 compliant source of poolable connections.
|
void | addDataSource(String jndiName, DataSource ds) Add a DataSource implementation to JettyPlus.
|
abstract DataSource | createPooledDataSource(String jndiName, ConnectionPoolDataSource cpds) Implement this method to create your pool implementation.
|
DataSource | getDataSource(String jndiName) Get a DataSource implementation from the list of registered DataSources. |
protected Reference | getDataSourceReference(String jndiName, DataSource ds) Create a Reference for a DataSource.
|
void | start()
Start the Service. |
protected Map dsMap
Map of jndiNames to DataSource objects.
public AbstractDataSourceService()
Constructor.
public DataSource addConnectionPoolDataSource(String jndiName, ConnectionPoolDataSource cpds)
Add a JDBC2/3 compliant source of poolable connections.
The pool implementation is pluggable in JettyPlus. To use
a particular pool implementation (eg XAPool, DBCP etc),
subclass this class and implement the method createPooledDataSource()
to instantiate the pool. A DefaultDataSourceService is provided that uses
XAPool to plug in a Pool implementation.
The DataSource returned by this method must be capable of
interacting with the pool implemenation, as the DataSource
will be bound into JNDI and will be accessed by webapps
doing a lookup on java:comp/env/
Parameters: jndiName cpds
Returns:
Throws: Exception
public void addDataSource(String jndiName, DataSource ds)
Add a DataSource implementation to JettyPlus.
Note that the particular javax.sql.DataSource implementation
may implement many other features, such as internal connection
pooling. If this is the case, and you want to take advantage
Parameters: jndiName then name the client uses to lookup the DataSource relative to java:comp/env ds the javax.sql.DataSource implementation
Throws: Exception
public abstract DataSource createPooledDataSource(String jndiName, ConnectionPoolDataSource cpds)
Implement this method to create your pool implementation.
The method must return a javax.sql.DataSource that will be bound
into JNDI for client lookups on java:comp/env
Parameters: jndiName cpds
Returns:
Throws: Exception
public DataSource getDataSource(String jndiName)
Get a DataSource implementation from the list of registered DataSources.
Parameters: jndiName the name of the DataSource from addDataSource()
Returns: the DataSource object
protected Reference getDataSourceReference(String jndiName, DataSource ds)
Create a Reference for a DataSource.
The Reference will be bound into JNDI. Lookups on the Reference
will return the instance of the DataSource as stored in the dsMap.
Parameters: jndiName ds
Returns:
public void start()
Start the Service. Called by org.mortbay.jetty.plus.Server.start().
This will bind all of the registered DataSources into the global java:
namespace in JNDI.
Copyright © 2004 Mortbay Consulting Pty. Ltd. All Rights Reserved.