001    /*
002     * Copyright 2001,2004 The Apache Software Foundation.
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     * 
008     *      http://www.apache.org/licenses/LICENSE-2.0
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    
017    package org.apache.commons.scaffold.sql;
018    
019    
020    /**
021     * ConnectionAdaptor for Poolman.
022     * <p>
023     * When an application initializes it should create an instance
024     * of this class to use Poolman for SQL connections.
025     *
026     * @author Ted Husted
027     * @version $Revision: 155464 $ $Date: 2005-02-26 13:26:54 +0000 (Sat, 26 Feb 2005) $
028     */
029    
030    import java.sql.SQLException;
031    
032    import javax.sql.DataSource;
033    
034    import com.codestudio.sql.PoolMan;
035    
036    
037    public class PoolmanAdaptor extends ConnectionAdaptor {
038    
039        /**
040         * An exception message to throw if poolman returns null.
041         */
042        private static final String POOLMAN_MESSAGE = "Connection pool " +
043            "not available. Check your poolman.xml config, and be sure " +
044            "you are using a valid dbname parameter (use dbname, not jndiName)";
045    
046    
047            // Inherits JavaDoc
048        protected DataSource getDataSource(String key)
049                throws SQLException {
050    
051            if (null==key) return null;
052    
053            return PoolMan.findDataSource(key);
054    
055        }
056    
057    
058         // Required
059        public PoolmanAdaptor() {
060    
061            setMessage(POOLMAN_MESSAGE);
062            if (null==pool) pool = this;
063    
064        }
065    
066    
067    } // end PoolmanAdaptor
068