001    /*
002     * Copyright 2002-2005 the original author or authors.
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.jencks.factory;
018    
019    import org.apache.geronimo.connector.outbound.connectionmanagerconfig.SinglePool;
020    import org.springframework.beans.factory.FactoryBean;
021    import org.springframework.beans.factory.InitializingBean;
022    
023    /**
024     * This FactoryBean creates the partitionned pool strategy for
025     * the Geronimo connection manager.
026     * <p/>
027     * This class is based on the common pool properties defined in
028     * the AbstractGeronimoPool class.
029     *
030     * @author Thierry Templier
031     * @see SinglePool
032     * @see AbstractGeronimoPool
033     * @see ConnectionManagerFactoryBean#setPoolingSupport(PoolingSupport)
034     */
035    public class SinglePoolFactoryBean extends AbstractGeronimoPool implements FactoryBean, InitializingBean {
036    
037        private SinglePool pool;
038    
039        public Object getObject() throws Exception {
040            return pool;
041        }
042    
043        public Class getObjectType() {
044            return SinglePool.class;
045        }
046    
047        public boolean isSingleton() {
048            return true;
049        }
050    
051        public void afterPropertiesSet() throws Exception {
052            this.pool = new SinglePool(maxSize, minSize, blockingTimeoutMilliseconds,
053                    idleTimeoutMinutes, matchOne, matchAll, selectOneAssumeMatch);
054        }
055    
056    }