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.
Nested Class Summary
interfaceAbstractDataSourceService.DataSourceMap
static classAbstractDataSourceService.DataSourceObjectFactory
DataSourceObjectFactory ObjectFactory for references to DataSources bound in JNDI.
Field Summary
protected MapdsMap
Map of jndiNames to DataSource objects.
Constructor Summary
AbstractDataSourceService()
Constructor.
Method Summary
DataSourceaddConnectionPoolDataSource(String jndiName, ConnectionPoolDataSource cpds)
Add a JDBC2/3 compliant source of poolable connections.
voidaddDataSource(String jndiName, DataSource ds)
Add a DataSource implementation to JettyPlus.
abstract DataSourcecreatePooledDataSource(String jndiName, ConnectionPoolDataSource cpds)
Implement this method to create your pool implementation.
DataSourcegetDataSource(String jndiName)
Get a DataSource implementation from the list of registered DataSources.
protected ReferencegetDataSourceReference(String jndiName, DataSource ds)
Create a Reference for a DataSource.
voidstart()
Start the Service.

Field Detail

dsMap

protected Map dsMap
Map of jndiNames to DataSource objects.

Constructor Detail

AbstractDataSourceService

public AbstractDataSourceService()
Constructor.

Method Detail

addConnectionPoolDataSource

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

addDataSource

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

createPooledDataSource

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

getDataSource

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

getDataSourceReference

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:

start

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.