package com.ximple.eofms.jobs;
|
|
import java.sql.Connection;
|
import java.sql.SQLException;
|
import java.util.Date;
|
|
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.LogFactory;
|
import org.quartz.JobDetail;
|
import org.quartz.JobExecutionContext;
|
import org.quartz.JobExecutionException;
|
|
import oracle.jdbc.OracleDatabaseMetaData;
|
import oracle.jdbc.OracleStatement;
|
|
import com.ximple.eofms.jobs.context.AbstractOracleJobContext;
|
import com.ximple.eofms.jobs.context.OracleUpgradeJobContext;
|
|
public class OracleUpgradeBlob2UDTJob extends AbstractOracleDatabaseJob {
|
static Log logger = LogFactory.getLog(OracleUpgradeBlob2UDTJob.class);
|
|
public void execute(JobExecutionContext context) throws JobExecutionException {
|
// Every job has its own job detail
|
JobDetail jobDetail = context.getJobDetail();
|
|
// The name is defined in the job definition
|
String jobName = jobDetail.getName();
|
String targetSchemaName = null;
|
|
// Log the time the job started
|
logger.info(jobName + " fired at " + new Date());
|
extractJobConfiguration(jobDetail);
|
createSourceDataStore();
|
if (getSourceDataStore() == null) {
|
throw new JobExecutionException("Cannot connect source oracle database.");
|
}
|
|
AbstractOracleJobContext jobContext = prepareJobContext(targetSchemaName, _filterPath, isProfileMode(),
|
isTransformed());
|
jobContext.setSourceDataStore(getSourceDataStore());
|
|
try {
|
for (String orgSchema : _orgSchema) {
|
exetcuteConvert(jobContext, orgSchema, _dataPath);
|
}
|
} catch (SQLException e) {
|
throw new JobExecutionException("Database error.", e);
|
}
|
}
|
|
public Log getLogger() {
|
return logger;
|
}
|
|
protected AbstractOracleJobContext prepareJobContext(String targetSchemaName, String filterPath,
|
boolean profileMode,
|
boolean useTransform) {
|
return new OracleUpgradeJobContext(profileMode, useTransform);
|
}
|
|
private void exetcuteConvert(AbstractOracleJobContext jobContext,
|
String orgSchema, String dataPath) throws SQLException {
|
Connection connection = jobContext.getOracleConnection();
|
OracleDatabaseMetaData metaData = (OracleDatabaseMetaData) connection.getMetaData();
|
OracleStatement statement = (OracleStatement) connection.createStatement();
|
}
|
}
|