fr.gouv.diplomatie.applitutoriel.integration.conf.DataSourceConf.java Source code

Java tutorial

Introduction

Here is the source code for fr.gouv.diplomatie.applitutoriel.integration.conf.DataSourceConf.java

Source

/**
 * Copyright ou  ou Copr. Ministre de l'Europe et des Affaires trangres (2017)
 * <p/>
 * pole-architecture.dga-dsi-psi@diplomatie.gouv.fr
 * <p/>
 * Ce logiciel est un programme informatique servant  faciliter la cration d'applications Web conformment
 * aux rfrentiels gnraux franais : RGI, RGS et RGAA
 * <p/>
 * Ce logiciel est rgi par la licence CeCILL soumise au droit franais et respectant les principes de
 * diffusion des logiciels libres. Vous pouvez utiliser, modifier et/ou redistribuer ce programme sous les
 * conditions de la licence CeCILL telle que diffuse par le CEA, le CNRS et l'INRIA sur le site
 * "http://www.cecill.info".
 * <p/>
 * En contrepartie de l'accessibilit au code source et des droits de copie, de modification et de
 * redistribution accords par cette licence, il n'est offert aux utilisateurs qu'une garantie limite. Pour
 * les mmes raisons, seule une responsabilit restreinte pse sur l'auteur du programme, le titulaire des
 * droits patrimoniaux et les concdants successifs.
 * <p/>
 * A cet gard l'attention de l'utilisateur est attire sur les risques associs au chargement, 
 * l'utilisation,  la modification et/ou au dveloppement et  la reproduction du logiciel par l'utilisateur
 * tant donn sa spcificit de logiciel libre, qui peut le rendre complexe  manipuler et qui le rserve
 * donc  des dveloppeurs et des professionnels avertis possdant des connaissances informatiques
 * approfondies. Les utilisateurs sont donc invits  charger et tester l'adquation du logiciel  leurs
 * besoins dans des conditions permettant d'assurer la scurit de leurs systmes et ou de leurs donnes et,
 * plus gnralement,  l'utiliser et l'exploiter dans les mmes conditions de scurit.
 * <p/>
 * Le fait que vous puissiez accder  cet en-tte signifie que vous avez pris connaissance de la licence
 * CeCILL, et que vous en avez accept les termes.
 * <p/>
 * <p/>
 * Copyright or  or Copr. Ministry for Europe and Foreign Affairs (2017)
 * <p/>
 * pole-architecture.dga-dsi-psi@diplomatie.gouv.fr
 * <p/>
 * This software is a computer program whose purpose is to facilitate creation of web application in
 * accordance with french general repositories : RGI, RGS and RGAA.
 * <p/>
 * This software is governed by the CeCILL license under French law and abiding by the rules of distribution
 * of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL
 * license as circulated by CEA, CNRS and INRIA at the following URL "http://www.cecill.info".
 * <p/>
 * As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by
 * the license, users are provided only with a limited warranty and the software's author, the holder of the
 * economic rights, and the successive licensors have only limited liability.
 * <p/>
 * In this respect, the user's attention is drawn to the risks associated with loading, using, modifying
 * and/or developing or reproducing the software by the user in light of its specific status of free software,
 * that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for
 * developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged
 * to load and test the software's suitability as regards their requirements in conditions enabling the
 * security of their systems and/or data to be ensured and, more generally, to use and operate it in the same
 * conditions as regards security.
 * <p/>
 * The fact that you are presently reading this means that you have had knowledge of the CeCILL license and
 * that you accept its terms.
 *
 */
package fr.gouv.diplomatie.applitutoriel.integration.conf;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

/**
 * @author MEAE - Ministre de l'Europe et des Affaires trangres
 */
@Configuration
@PropertySource("classpath:jdbc.properties")
public class DataSourceConf {

    @Value("${jdbc.driver}")
    private String driverClassName;

    @Value("${jdbc.url}")
    private String url;

    @Value("${jdbc.username}")
    private String username;

    @Value("${jdbc.password}")
    private String password;

    @Value("${jdbc.validationQuery}")
    private String validationQuery;

    @Value("${jdbc.maxActive}")
    private int maxActive;

    @Value("${jdbc.maxIdle}")
    private int maxIdle;

    @Value("${jdbc.maxWait}")
    private long maxWait;

    @Value("${jdbc.testOnBorrow}")
    private boolean testOnBorrow;

    @Value("${jdbc.testWhileIdle}")
    private boolean testWhileIdle;

    @Value("${jdbc.timeBetweenEvictionRunsMillis}")
    private long timeBetweenEvictionRunsMillis;

    @Value("${jdbc.numTestsPerEvictionRun}")
    private int numTestsPerEvictionRun;

    @Value("${jdbc.removeAbandoned}")
    private boolean removeAbandoned;

    @Value("${jdbc.removeAbandonedTimeout}")
    private int removeAbandonedTimeout;

    @Value("${jdbc.logAbandoned}")
    private boolean logAbandoned;

    @Bean
    public DataSource dataSource() {
        final BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setValidationQuery(validationQuery);
        dataSource.setMaxActive(maxActive);
        dataSource.setMaxIdle(maxIdle);
        dataSource.setMaxWait(maxWait);
        dataSource.setTestOnBorrow(testOnBorrow);
        dataSource.setTestWhileIdle(testWhileIdle);
        dataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
        dataSource.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
        dataSource.setRemoveAbandoned(removeAbandoned);
        dataSource.setRemoveAbandonedTimeout(removeAbandonedTimeout);
        dataSource.setLogAbandoned(logAbandoned);
        return dataSource;
    }

}