You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by tb...@apache.org on 2004/05/08 01:21:23 UTC
cvs commit: avalon-components/facilities/dbcp/impl/src/java/org/apache/avalon/dbcp DbcpConnectionManager.java
tbennett 2004/05/07 16:21:23
Added: facilities/dbcp/impl/src/java/org/apache/avalon/dbcp
DbcpConnectionManager.java
Log:
New database Connection Pooling facility
Revision Changes Path
1.1 avalon-components/facilities/dbcp/impl/src/java/org/apache/avalon/dbcp/DbcpConnectionManager.java
Index: DbcpConnectionManager.java
===================================================================
/*
* Copyright 2004 Apache Software Foundation
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied.
*
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.avalon.dbcp;
import java.io.File;
import java.sql.Connection;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.framework.activity.Startable;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.Contextualizable;
import org.apache.avalon.framework.logger.Logger;
/**
* This is a JDBC Connection Manager implementation that uses the
* Jakarta-Commons database connection pooling and dbcp packages
* to serve up pooled connections to datasources.
*
* @avalon.component name="dbcp-manager" lifestyle="singleton"
* @avalon.service type="org.apache.avalon.sql.ConnectionManager"
*/
public class DbcpConnectionManager
implements
Contextualizable,
Configurable,
Initializable,
Startable,
ConnectionManager
{
//---------------------------------------------------------
// state
//---------------------------------------------------------
/**
* The logging channel assigned by the container.
*/
private Logger m_logger;
/**
* The working base directory.
*/
private File m_basedir;
//---------------------------------------------------------
// constructor
//---------------------------------------------------------
/**
* Creates a new instance of the HSQL database server with the
* logging channel supplied by the container.
*
* @param logger the container-supplied logging channel
*/
public DbcpConnectionManager( final Logger logger )
{
m_logger = logger;
}
//---------------------------------------------------------
// Contextualizable
//---------------------------------------------------------
/**
* Contextualization of the server by the container.
*
* @param context the supplied server context
* @exception ContextException if a contextualization error occurs
* @avalon.entry key="urn:avalon:home" type="java.io.File"
*/
public void contextualize( final Context context )
throws ContextException
{
// cache the working base directory
m_basedir = getBaseDirectory( context );
}
//---------------------------------------------------------
// Configurable
//---------------------------------------------------------
/**
* Configuration of the server by the container.
*
* @param config the supplied server configuration
* @exception ConfigurationException if a configuration error occurs
*/
public void configure(Configuration config) throws ConfigurationException {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see org.apache.avalon.framework.activity.Initializable#initialize()
*/
public void initialize() throws Exception {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see org.apache.avalon.framework.activity.Startable#start()
*/
public void start() throws Exception {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see org.apache.avalon.framework.activity.Startable#stop()
*/
public void stop() throws Exception {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see org.apache.avalon.sql.ConnectionManager#getConnection()
*/
public Connection getConnection() {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see org.apache.avalon.sql.ConnectionManager#getConnection(java.lang.String)
*/
public Connection getConnection(String datasource) {
// TODO Auto-generated method stub
return null;
}
/**
* Return the working base directory.
*
* @param context the supplied server context
* @return a <code>File</code> object representing the working
* base directory
* @exception ContextException if a contextualization error occurs
*/
private File getBaseDirectory( final Context context )
throws ContextException
{
File home = (File) context.get( "urn:avalon:home" );
if ( !home.exists() )
{
boolean success = home.mkdirs();
if ( !success )
{
throw new ContextException( "Unable to create component "
+ "home directory: " + home.getAbsolutePath() );
}
}
if ( getLogger().isInfoEnabled() )
{
getLogger().info( "Setting home directory to: " + home );
}
return home;
}
/**
* Return the assigned logging channel.
* @return the logging channel
*/
private Logger getLogger()
{
return m_logger;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org