All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bonitasoft.engine.configuration.datasource.QuartzConnectionProvider Maven / Gradle / Ivy

package org.bonitasoft.engine.configuration.datasource;

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.quartz.utils.ConnectionProvider;

/**
 * This is a hack to let Quartz access datasource beans from SprigContext
 * Quartz support custom connection providers but not non primitive parameters for them
 */
public class QuartzConnectionProvider implements ConnectionProvider {

    private Boolean isXaDataSource;
    private DataSource dataSource;

    /**
     * this is called by quartz (given by the configuration)
     *
     * @param isXaDataSource true if the datasource returned by this configuration provider should be the xa datasource
     */
    public void setXaDataSource(boolean isXaDataSource) {
        this.isXaDataSource = isXaDataSource;
    }

    @Override
    public Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }

    @Override
    public void shutdown() throws SQLException {

    }

    @Override
    public void initialize() throws SQLException {
        if (isXaDataSource == null) {
            throw new IllegalStateException("Quartz datasource is not set");
        }
        if (isXaDataSource) {
            dataSource = QuartzDataSourceAccessorProvider.getInstance().getBonitaDataSource();
        } else {
            dataSource = QuartzDataSourceAccessorProvider.getInstance().getBonitaNonXaDataSource();
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy