forked from geodmms/xdgnjobs

Dennis Kao
2014-01-15 94ae08701bbd7585a0b7e5a92d1975965a503c03
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleUpgradeBlob2UDTJob.java
@@ -1,7 +1,7 @@
package com.ximple.eofms.jobs;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Date;
import org.apache.commons.logging.Log;
@@ -10,63 +10,56 @@
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import oracle.jdbc.OracleConnection;
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
{
public class OracleUpgradeBlob2UDTJob extends AbstractOracleDatabaseJob {
    static Log logger = LogFactory.getLog(OracleUpgradeBlob2UDTJob.class);
    public void execute(JobExecutionContext context) throws JobExecutionException
    {
    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 jobName = jobDetail.getKey().getName();
        String targetSchemaName = null;
        // Log the time the job started
        logger.info(jobName + " fired at " + new Date());
        extractJobConfiguration(jobDetail);
        createSourceDataStore();
        if (getSourceDataStore() == null)
        {
        if (getSourceDataStore() == null) {
            throw new JobExecutionException("Cannot connect source oracle database.");
        }
        AbstractOracleJobContext jobContext = prepareJobContext(targetSchemaName, _filterPath);
        AbstractOracleJobContext jobContext = prepareJobContext(targetSchemaName, _filterPath, isProfileMode(),
                                                                isTransformed());
        jobContext.setSourceDataStore(getSourceDataStore());
        try
        {
            for (String orgSchema : _orgSchema)
            {
        try {
            for (String orgSchema : _orgSchema) {
                exetcuteConvert(jobContext, orgSchema, _dataPath);
            }
        } catch (SQLException e)
        {
        } catch (SQLException e) {
            throw new JobExecutionException("Database error.", e);
        }
    }
    public Log getLogger()
    {
    public Log getLogger() {
        return logger;
    }
    protected AbstractOracleJobContext prepareJobContext(String targetSchemaName, String filterPath)
    {
        return new OracleUpgradeJobContext();
    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
    {
                                 String orgSchema, String dataPath) throws SQLException {
        Connection connection = jobContext.getOracleConnection();
        OracleDatabaseMetaData metaData = (OracleDatabaseMetaData) connection.getMetaData();
        OracleStatement statement = (OracleStatement) connection.createStatement();