/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.vertical.work.quartz;
import java.sql.Connection;
import org.quartz.SchedulerConfigException;
import org.quartz.impl.jdbcjobstore.JobStoreTX;
import org.quartz.spi.ClassLoadHelper;
import org.quartz.spi.SchedulerSignaler;
import org.quartz.utils.DBConnectionManager;
import org.springframework.jdbc.support.JdbcUtils;
import com.enonic.cms.store.support.ConnectionFactory;
/**
* This class implements the job store.
*/
public final class QuartzJobStore
extends JobStoreTX
{
/**
* Data source prefix.
*/
private static final String DATA_SOURCE_PREFIX = "quartzDataSource.";
/**
* Initialize the store.
*/
public void initialize( ClassLoadHelper loadHelper, SchedulerSignaler signaler )
throws SchedulerConfigException
{
final ConnectionFactory factory = QuartzHelper.getConnectionFactory();
if ( factory == null )
{
throw new SchedulerConfigException( "No local ConnectionFactory found for configuration" );
}
setDataSource( DATA_SOURCE_PREFIX + getInstanceName() );
DBConnectionManager.getInstance().addConnectionProvider( getDataSource(), new SimpleConnectionProvider( factory ) );
super.initialize( loadHelper, signaler );
}
/**
* Close the connection.
*/
protected void closeConnection( Connection conn )
{
JdbcUtils.closeConnection( conn );
}
}