package org.springframework.jdbc.datasource;

import org.springframework.jdbc.CannotGetJdbcConnectionException;

public class AlternateDriverManagerDataSource extends DriverManagerDataSource {
	
	private String driverClassName;
	
	/**
	 * Constructor for bean-style configuration.
	 */
	public AlternateDriverManagerDataSource() {
	}

	/**
	 * Create a new SingleConnectionDataSource with the given standard
	 * DriverManager parameters.
	 */
	public AlternateDriverManagerDataSource(String driverClassName, String url, String username, String password)
			throws CannotGetJdbcConnectionException {
		setDriverClassName(driverClassName);
		setUrl(url);
		setUsername(username);
		setPassword(password);
	}
	/* (non-Javadoc)
	 * @see org.springframework.jdbc.datasource.DriverManagerDataSource#setDriverClassName(java.lang.String)
	 */
	public void setDriverClassName(String driverClassName) {
		this.driverClassName = driverClassName;
		try {
			Class.forName(this.driverClassName, true, this.getClass().getClassLoader());
		}
		catch (ClassNotFoundException ex) {
			throw new CannotGetJdbcConnectionException("Could not load JDBC driver class [" +		 
					this.driverClassName + "]", ex);																		
		}
		logger.info("Loaded JDBC driver: " + this.driverClassName);
	}
	
	/**
	 * @return Returns the driverClassName.
	 */
	public String getDriverClassName() {
		return driverClassName;
	}
}
