001/*
002 * HA-JDBC: High-Availability JDBC
003 * Copyright (C) 2012  Paul Ferraro
004 *
005 * This program is free software: you can redistribute it and/or modify
006 * it under the terms of the GNU Lesser General Public License as published by
007 * the Free Software Foundation, either version 3 of the License, or
008 * (at your option) any later version.
009 *
010 * This program is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
013 * GNU Lesser General Public License for more details.
014 *
015 * You should have received a copy of the GNU Lesser General Public License
016 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
017 */
018package net.sf.hajdbc.sql;
019
020import java.sql.Connection;
021import java.sql.SQLException;
022
023import javax.sql.DataSource;
024import javax.xml.bind.annotation.XmlType;
025
026import net.sf.hajdbc.management.Description;
027import net.sf.hajdbc.management.MBean;
028
029
030/**
031 * A database described by a {@link DataSource}.
032 * @author  Paul Ferraro
033 */
034@MBean
035@Description("Database accessed via a DataSource")
036@XmlType(name = "database")
037public class DataSourceDatabase extends CommonDataSourceDatabase<DataSource>
038{
039        public DataSourceDatabase()
040        {
041                super(DataSource.class);
042        }
043        
044        /**
045         * {@inheritDoc}
046         * @see net.sf.hajdbc.Database#connect(java.lang.Object, java.lang.String)
047         */
048        @Override
049        public Connection connect(DataSource dataSource, String password) throws SQLException
050        {
051                return this.requiresAuthentication() ? dataSource.getConnection(this.getUser(), password) : dataSource.getConnection();
052        }
053}