| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.batchee.container.services.persistence.jdbc; |
| |
| import org.apache.batchee.container.impl.controller.PartitionedStepBuilder; |
| import org.apache.batchee.container.services.persistence.jdbc.database.Database; |
| |
| public class Dictionary { |
| public interface SQL { // needs to be kept aligned with JPA mapping, we can't use reflection to find fields since order can change between executions with java 7 |
| String CREATE_TABLE = "create table "; |
| String INSERT_INTO = "insert into "; |
| String SELECT = "select "; |
| String FROM = " from "; |
| String UPDATE = "update "; |
| String WHERE = " where "; |
| String DELETE = "delete from "; |
| |
| String[] CHECKPOINT_COLUMNS = { "id", "data", "stepName", "type", "INSTANCE_JOBINSTANCEID" }; |
| String CREATE_CHECKPOINT = CREATE_TABLE + "%s(%s %s %s , %s %s, %s %s, %s %s, %s %s, primary key(id))"; |
| String INSERT_CHECKPOINT = INSERT_INTO + "%s(%s, %s, %s, %s) values (?, ?, ?, ?)"; |
| String SELECT_CHECKPOINT = SELECT + "%s" + FROM + "%s" + WHERE + "%s = ? and %s = ? and %s = ?"; |
| String UPDATE_CHECKPOINT = UPDATE + "%s set %s = ?" + WHERE + "%s = ? and %s = ? and %s = ?"; |
| String DELETE_CHECKPOINT = DELETE + "%s" + WHERE + "%s = ?"; |
| String DELETE_CHECKPOINT_UNTIL = DELETE + "%s WHERE %s IN (" + SELECT + " DISTINCT t1.%s FROM %s t1 WHERE (SELECT MAX(t0.%s) FROM %s t0 WHERE t0.%s = t1.%s) < ?)"; |
| |
| String[] JOB_INSTANCE_COLUMNS = { "jobInstanceId", "batchStatus", "exitStatus", "jobName", "jobXml", "latestExecution", "restartOn", "step" }; |
| String CREATE_JOB_INSTANCE = CREATE_TABLE + "%s(%s %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, PRIMARY KEY (%s))"; |
| String JOB_INSTANCE_COUNT_FROM_NAME = SELECT + "count(%s) as jobinstancecount" + FROM + "%s" + WHERE + "%s = ?"; |
| String JOB_INSTANCE_BY_ID = SELECT + "*" + FROM + "%s" + WHERE + "%s = ?"; |
| String JOB_INSTANCE_UPDATE_STATUS = UPDATE + "%s set %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?" + WHERE + "%s = ?"; |
| String JOB_INSTANCE_IDS = SELECT + "%s" + FROM + "%s" + WHERE + "%s = ? order by %s desc"; |
| String JOB_INSTANCE_IDS_FROM_NAME = SELECT + "%s" + FROM + "%s" + WHERE + " %s = ? order by %s desc"; |
| String JOB_NAMES = SELECT + "distinct %s" + FROM + "%s" + WHERE + "%s not like '%s'"; |
| String EXTERNAL_JOB_INSTANCE = SELECT + "distinct %s, %s" + FROM + "%s" + WHERE + "%s not like '%s'"; |
| String JOB_INSTANCE_CREATE = INSERT_INTO + "%s" + "(%s) VALUES(?)"; |
| String JOB_INSTANCE_CREATE_WITH_JOB_XML = INSERT_INTO + "%s" + "(%s, %s) VALUES(?, ?)"; |
| String DELETE_JOB_INSTANCE = DELETE + "%s" + WHERE + "%s = ?"; |
| String DELETE_JOB_INSTANCE_UNTIL = DELETE + "%s" + WHERE + "%s IN (" + SELECT + "distinct t1.%s" + FROM + "%s t1" + WHERE + "(" + SELECT + "max(t0.%s)" + FROM + "%s t0" + |
| WHERE + "t0.%s = t1.%s) < ?)"; |
| |
| String[] JOB_EXECUTION_COLUMNS = { "executionId", "batchStatus", "createTime", "endTime", "exitStatus", "jobProperties", |
| "startTime", "updateTime", "INSTANCE_JOBINSTANCEID" }; |
| String CREATE_JOB_EXECUTION = CREATE_TABLE + "%s(%s %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s)"; |
| String JOB_EXECUTION_TIMESTAMPS = SELECT + " %s, %s, %s, %s" + FROM + "%s" + WHERE + "%s = ?"; |
| String JOB_EXECUTION_BATCH_STATUS = SELECT + "%s" + FROM + "%s" + WHERE + "%s = ?"; |
| String JOB_EXECUTION_EXIT_STATUS = SELECT + "%s" + FROM + "%s" + WHERE + "%s = ?"; |
| String JOB_EXECUTION_PROPERTIES = SELECT + "%s" + FROM + "%s" + WHERE + "%s = ?"; |
| String JOB_EXECUTION_UPDATE = UPDATE + "%s set %s = ?, %s = ? where %s = ?"; |
| String JOB_EXECUTION_SET_FINAL_DATA = UPDATE + "%s set %s = ?, %s = ?, %s = ?, %s = ? where %s = ?"; |
| String JOB_EXECUTION_START = UPDATE + "%s set %s = ?, %s = ?, %s = ? where %s = ?"; |
| |
| String JOB_EXECUTION_FIND_BY_ID = SELECT + "A.%s, A.%s, A.%s, A.%s, A.%s, A.%s, A.%s, A.%s, B.%s" + |
| FROM + "%s as A inner join %s as B on A.%s = B.%s" + WHERE + "%s = ?"; |
| |
| String JOB_EXECUTION_FROM_INSTANCE = SELECT + "A.%s, A.%s, A.%s, A.%s, A.%s, A.%s, A.%s, A.%s, B.%s " + |
| FROM + "%s as A inner join %s as B ON A.%s = B.%s" + WHERE + "B.%s = ?"; |
| String JOB_EXECUTION_RUNNING = SELECT + "A.%s" + FROM + "%s AS A inner join %s AS B ON A.%s = B.%s WHERE A.%s IN (?,?,?) AND B.%s = ?"; |
| String JOB_INSTANCE_STATUS = SELECT + "*" + FROM + "%s as A inner join %s as B on A.%s = B.%s " + WHERE + "B.%s = ?"; |
| String JOB_INSTANCE_FROM_EXECUTION = SELECT + "%s" + FROM + "%s" + WHERE + "%s = ?"; |
| String JOB_EXECUTION_CREATE = INSERT_INTO + "%s(%s, %s, %s, %s, %s) VALUES(?, ?, ?, ?, ?)"; |
| String JOB_EXECUTION_MOST_RECENT = SELECT + "%s" + FROM + "%s" + WHERE + "%s = ? ORDER BY %s DESC"; |
| String DELETE_JOB_EXECUTION = DELETE + "%s" + WHERE + "%s = ?"; |
| String DELETE_JOB_EXECUTION_UNTIL = DELETE + "%s" + WHERE + "%s IN (" + SELECT + "distinct t0.%s" + FROM + "%s t0" + WHERE + "t0.%s < ?)"; |
| |
| String[] STEP_EXECUTION_COLUMNS = { "id", "batchStatus", "exec_commit", "endTime", "exitStatus", "exec_filter", "lastRunStepExecutionId", "numPartitions", |
| "persistentData", "exec_processskip", "exec_read", "exec_readskip", "exec_rollback", "startCount", "startTime", "stepName", |
| "exec_write", "exec_writeskip", "EXECUTION_EXECUTIONID" }; |
| |
| String CREATE_STEP_EXECUTION = CREATE_TABLE + |
| "%s(%s %s %s" + ", %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, %s %s, PRIMARY KEY (id))"; |
| String STEPS_FROM_EXECUTION = SELECT + "*" + FROM + "%s" + WHERE + "%s = ?"; |
| String STEP_FROM_ID = SELECT + "*" + FROM + "%s" + WHERE + "%s = ?"; |
| String STEP_EXECUTION_CREATE = INSERT_INTO + "%s" + "(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; |
| String STEP_EXECUTION_UPDATE_STATUS = UPDATE + "%s SET %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ? WHERE %s = ?"; |
| |
| String STEP_EXECUTION_UPDATE = UPDATE + |
| "%s SET %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ? WHERE %s = ?"; |
| |
| String STEP_EXECUTION_BY_INSTANCE_AND_STEP = SELECT + |
| "B.%s, B.%s, B.%s, B.%s, B.%s, B.%s, B.%s, B.%s" + FROM + "%s A inner join %s B ON A.%s = B.%s " + WHERE + "A.%s = ? and B.%s = ?"; |
| |
| String DELETE_STEP_EXECUTION = DELETE + "%s A inner join %s B ON A.%s = B.%s " + WHERE + "A.%s = ?"; |
| String DELETE_STEP_EXECUTION_UNTIL = DELETE + "%s" + WHERE + "%s in (" + SELECT + "distinct t0.%s" + FROM + "%s t0 inner join %s t1 ON t0.%s=t1.%s" + WHERE + "t1.%s < ?)"; |
| } |
| |
| private final String checkpointTable; |
| private final String createCheckpointTable; |
| private final String insertCheckpoint; |
| private final String selectCheckpoint; |
| private final String updateCheckpoint; |
| private final String deleteCheckpoint; |
| private final String deleteCheckpointUntil; |
| private final String jobInstanceTable; |
| private final String createJobInstanceTable; |
| private final String countJobInstanceByName; |
| private final String findJobInstance; |
| private final String updateJobInstanceStatus; |
| private final String findJoBInstanceIds; |
| private final String findJobInstanceIdsByName; |
| private final String findJobNames; |
| private final String findExternalJobInstances; |
| private final String createJobInstance; |
| private final String createJobInstanceWithJobXml; |
| private final String deleteJobInstance; |
| private final String deleteJobInstanceUntil; |
| private final String jobExecutionTable; |
| private final String createJobExecutionTable; |
| private final String findJobExecutionTimestamps; |
| private final String findJobExecutionBatchStatus; |
| private final String findJobExecutionExitStatus; |
| private final String findJobExecutionJobProperties; |
| private final String updateJobExecution; |
| private final String setJobExecutionFinalData; |
| private final String updateStartedJobExecution; |
| private final String findJobExecutionById; |
| private final String findJobExecutionByInstance; |
| private final String findRunningJobExecutions; |
| private final String findJobStatus; |
| private final String findJobInstanceFromJobExecution; |
| private final String createJobExecution; |
| private final String findMostRecentJobExecution; |
| private final String deleteJobExecution; |
| private final String deleteJobExecutionUntil; |
| private final String stepExecutionTable; |
| private final String createStepExecutionTable; |
| private final String finStepExecutionFromJobExecution; |
| private final String findStepExecutionFromId; |
| private final String createStepExecution; |
| private final String updateStepExecutionStatus; |
| private final String updateStepExecution; |
| private final String findStepExecutionByJobInstanceAndStepName; |
| private final String deleteStepExecution; |
| private final String deleteStepExecutionUntil; |
| |
| private final String[] checkpointColumns; |
| private final String[] jobInstanceColumns; |
| private final String[] jobExecutionColumns; |
| private final String[] stepExecutionColumns; |
| |
| public Dictionary(final String checkpointTable, final String jobInstanceTable, final String jobExecutionTable, |
| final String stepExecutionTable, final Database database) { |
| this.checkpointTable = checkpointTable; |
| this.jobInstanceTable = jobInstanceTable; |
| this.jobExecutionTable = jobExecutionTable; |
| this.stepExecutionTable = stepExecutionTable; |
| |
| { // ensure to be able to build jointures prebuilding columns |
| checkpointColumns = columns(database, SQL.CHECKPOINT_COLUMNS); |
| jobExecutionColumns = columns(database, SQL.JOB_EXECUTION_COLUMNS); |
| jobInstanceColumns = columns(database, SQL.JOB_INSTANCE_COLUMNS); |
| stepExecutionColumns = columns(database, SQL.STEP_EXECUTION_COLUMNS); |
| } |
| |
| { // checkpoint |
| this.createCheckpointTable = String.format(SQL.CREATE_CHECKPOINT, checkpointTable, |
| checkpointColumns[0], database.bigint(), database.autoIncrementId(), |
| checkpointColumns[1], database.blob(), |
| checkpointColumns[2], database.varchar255(), |
| checkpointColumns[3], database.varchar20(), |
| checkpointColumns[4], database.bigint()); |
| this.insertCheckpoint = String.format(SQL.INSERT_CHECKPOINT, checkpointTable, checkpointColumns[1], checkpointColumns[2], checkpointColumns[3], checkpointColumns[4]); |
| this.selectCheckpoint = String.format(SQL.SELECT_CHECKPOINT, checkpointColumns[1], checkpointTable, checkpointColumns[4], checkpointColumns[3], checkpointColumns[2]); |
| this.updateCheckpoint = String.format(SQL.UPDATE_CHECKPOINT, checkpointTable, checkpointColumns[1], checkpointColumns[4], checkpointColumns[3], checkpointColumns[2]); |
| this.deleteCheckpoint = String.format(SQL.DELETE_CHECKPOINT, checkpointTable, checkpointColumns[4]); |
| // String DELETE_CHECKPOINT_UNTIL = DELETE + "%s WHERE %s IN (" + SELECT + " DISTINCT t1.%s FROM %s t1 WHERE (SELECT MAX(t0.%s) FROM %s t0 WHERE t0.%s = t1.%s) < ?)"; |
| this.deleteCheckpointUntil = String.format(SQL.DELETE_CHECKPOINT_UNTIL, checkpointTable, checkpointColumns[0], checkpointColumns[0], checkpointTable, |
| jobExecutionColumns[3], jobExecutionTable, checkpointColumns[4], jobExecutionColumns[8]); |
| } |
| |
| { // jobInstance |
| this.createJobInstanceTable = String.format(SQL.CREATE_JOB_INSTANCE, jobInstanceTable, |
| jobInstanceColumns[0], database.bigint(), database.autoIncrementId(), |
| jobInstanceColumns[1], database.varchar20(), |
| jobInstanceColumns[2], database.varchar255(), |
| jobInstanceColumns[3], database.varchar255(), |
| jobInstanceColumns[4], database.blob(), |
| jobInstanceColumns[5], database.bigint(), |
| jobInstanceColumns[6], database.varchar255(), |
| jobInstanceColumns[7], database.varchar255(), |
| jobInstanceColumns[0]); |
| this.countJobInstanceByName = String.format(SQL.JOB_INSTANCE_COUNT_FROM_NAME, jobInstanceColumns[0], jobInstanceTable, jobInstanceColumns[3]); |
| this.findJobInstance = String.format(SQL.JOB_INSTANCE_BY_ID, jobInstanceTable, jobInstanceColumns[0]); |
| this.updateJobInstanceStatus = String.format(SQL.JOB_INSTANCE_UPDATE_STATUS, jobInstanceTable, jobInstanceColumns[1], jobInstanceColumns[2], jobInstanceColumns[5], |
| jobInstanceColumns[6], jobInstanceColumns[7], jobInstanceColumns[3], jobInstanceColumns[0]); |
| this.findJoBInstanceIds = String.format(SQL.JOB_INSTANCE_IDS, jobInstanceColumns[0], jobInstanceTable, jobInstanceColumns[3], jobInstanceColumns[0]); |
| this.findJobInstanceIdsByName = String.format(SQL.JOB_INSTANCE_IDS_FROM_NAME, jobInstanceColumns[0], jobInstanceTable, jobInstanceColumns[3], jobInstanceColumns[0]); |
| this.findJobNames = String.format(SQL.JOB_NAMES, jobInstanceColumns[3], jobInstanceTable, jobInstanceColumns[3], PartitionedStepBuilder.JOB_ID_SEPARATOR + "%"); |
| this.findExternalJobInstances = String.format(SQL.EXTERNAL_JOB_INSTANCE, jobInstanceColumns[0], jobInstanceColumns[3], jobInstanceTable, |
| jobInstanceColumns[3], PartitionedStepBuilder.JOB_ID_SEPARATOR + "%"); |
| this.createJobInstance = String.format(SQL.JOB_INSTANCE_CREATE, jobInstanceTable, jobInstanceColumns[3]); |
| this.createJobInstanceWithJobXml = String.format(SQL.JOB_INSTANCE_CREATE_WITH_JOB_XML, jobInstanceTable, jobInstanceColumns[3], jobInstanceColumns[4]); |
| this.deleteJobInstance = String.format(SQL.DELETE_JOB_INSTANCE, jobInstanceTable, jobInstanceColumns[0]); |
| this.deleteJobInstanceUntil = String.format(SQL.DELETE_JOB_INSTANCE_UNTIL, jobInstanceTable, jobInstanceColumns[0], jobInstanceColumns[0], jobInstanceTable, |
| jobExecutionColumns[3], jobExecutionTable, jobExecutionColumns[8], jobInstanceColumns[0]); |
| } |
| |
| { // jobExecution |
| this.createJobExecutionTable = String.format(SQL.CREATE_JOB_EXECUTION, jobExecutionTable, |
| jobExecutionColumns[0], database.bigint(), database.autoIncrementId(), |
| jobExecutionColumns[1], database.varchar20(), |
| jobExecutionColumns[2], database.timestamp(), |
| jobExecutionColumns[3], database.timestamp(), |
| jobExecutionColumns[4], database.varchar255(), |
| jobExecutionColumns[5], database.blob(), |
| jobExecutionColumns[6], database.timestamp(), |
| jobExecutionColumns[7], database.timestamp(), |
| jobExecutionColumns[8], database.bigint()); |
| this.findJobExecutionTimestamps = String.format(SQL.JOB_EXECUTION_TIMESTAMPS, jobExecutionColumns[2], jobExecutionColumns[3], jobExecutionColumns[7], |
| jobExecutionColumns[6], jobExecutionTable, jobExecutionColumns[0]); |
| this.findJobExecutionBatchStatus = String.format(SQL.JOB_EXECUTION_BATCH_STATUS, jobExecutionColumns[1], jobExecutionTable, jobExecutionColumns[0]); |
| this.findJobExecutionExitStatus = String.format(SQL.JOB_EXECUTION_EXIT_STATUS, jobExecutionColumns[4], jobExecutionTable, jobExecutionColumns[0]); |
| this.findJobExecutionJobProperties = String.format(SQL.JOB_EXECUTION_PROPERTIES, jobExecutionColumns[5], jobExecutionTable, jobExecutionColumns[0]); |
| this.updateJobExecution = String.format(SQL.JOB_EXECUTION_UPDATE, jobExecutionTable, jobExecutionColumns[1], jobExecutionColumns[7], jobExecutionColumns[0]); |
| this.setJobExecutionFinalData = String.format(SQL.JOB_EXECUTION_SET_FINAL_DATA, jobExecutionTable, jobExecutionColumns[1], jobExecutionColumns[4], |
| jobExecutionColumns[3], jobExecutionColumns[7], jobExecutionColumns[0]); |
| this.updateStartedJobExecution = String.format(SQL.JOB_EXECUTION_START, jobExecutionTable, jobExecutionColumns[1], jobExecutionColumns[6], |
| jobExecutionColumns[7], jobExecutionColumns[0]); |
| this.findJobExecutionById = String.format(SQL.JOB_EXECUTION_FIND_BY_ID, jobExecutionColumns[2], jobExecutionColumns[6], jobExecutionColumns[3], |
| jobExecutionColumns[7], jobExecutionColumns[5], jobExecutionColumns[8], jobExecutionColumns[1], jobExecutionColumns[4], jobInstanceColumns[3], |
| jobExecutionTable, jobInstanceTable, jobExecutionColumns[8], jobInstanceColumns[0], jobExecutionColumns[0]); |
| this.findRunningJobExecutions = String.format(SQL.JOB_EXECUTION_RUNNING, jobExecutionColumns[0], jobExecutionTable, jobInstanceTable, jobExecutionColumns[8], |
| jobInstanceColumns[0], jobExecutionColumns[1], jobInstanceColumns[3]); |
| this.findJobExecutionByInstance = String.format(SQL.JOB_EXECUTION_FROM_INSTANCE, jobExecutionColumns[0], jobExecutionColumns[2], jobExecutionColumns[6], |
| jobExecutionColumns[3], jobExecutionColumns[7], jobExecutionColumns[5], jobExecutionColumns[1], jobExecutionColumns[4], jobInstanceColumns[3], |
| jobExecutionTable, jobInstanceTable, jobExecutionColumns[8], jobInstanceColumns[0], jobInstanceColumns[0]); |
| this.findJobStatus = String.format(SQL.JOB_INSTANCE_STATUS, jobInstanceTable, jobExecutionTable, jobInstanceColumns[0], jobExecutionColumns[8], |
| jobExecutionColumns[0]); |
| this.findJobInstanceFromJobExecution = String.format(SQL.JOB_INSTANCE_FROM_EXECUTION, jobExecutionColumns[8], jobExecutionTable, jobExecutionColumns[0]); |
| this.createJobExecution = String.format(SQL.JOB_EXECUTION_CREATE, jobExecutionTable, jobExecutionColumns[8], jobExecutionColumns[2], jobExecutionColumns[7], |
| jobExecutionColumns[1], jobExecutionColumns[5]); |
| this.findMostRecentJobExecution = String.format(SQL.JOB_EXECUTION_MOST_RECENT, jobExecutionColumns[0], jobExecutionTable, |
| jobExecutionColumns[8], jobExecutionColumns[2]); |
| this.deleteJobExecution = String.format(SQL.DELETE_JOB_EXECUTION, jobExecutionTable, jobExecutionColumns[8]); |
| this.deleteJobExecutionUntil = String.format(SQL.DELETE_JOB_EXECUTION_UNTIL, jobExecutionTable, jobExecutionColumns[0], jobExecutionColumns[0], |
| jobExecutionTable, jobExecutionColumns[3]); |
| } |
| |
| { // step execution |
| this.createStepExecutionTable = String.format(SQL.CREATE_STEP_EXECUTION, stepExecutionTable, |
| stepExecutionColumns[0], database.bigint(), database.autoIncrementId(), |
| stepExecutionColumns[1], database.varchar20(), |
| stepExecutionColumns[2], database.bigint(), |
| stepExecutionColumns[3], database.timestamp(), |
| stepExecutionColumns[4], database.varchar255(), |
| stepExecutionColumns[5], database.bigint(), |
| stepExecutionColumns[6], database.bigint(), |
| stepExecutionColumns[7], database.integer(), |
| stepExecutionColumns[8], database.blob(), |
| stepExecutionColumns[9], database.bigint(), |
| stepExecutionColumns[10], database.bigint(), |
| stepExecutionColumns[11], database.bigint(), |
| stepExecutionColumns[12], database.bigint(), |
| stepExecutionColumns[13], database.integer(), |
| stepExecutionColumns[14], database.timestamp(), |
| stepExecutionColumns[15], database.varchar255(), |
| stepExecutionColumns[16], database.bigint(), |
| stepExecutionColumns[17], database.bigint(), |
| stepExecutionColumns[18], database.bigint()); |
| this.finStepExecutionFromJobExecution = String.format(SQL.STEPS_FROM_EXECUTION, stepExecutionTable, stepExecutionColumns[18]); |
| this.findStepExecutionFromId = String.format(SQL.STEP_FROM_ID, stepExecutionTable, stepExecutionColumns[0]); |
| this.createStepExecution = String.format(SQL.STEP_EXECUTION_CREATE, stepExecutionTable, stepExecutionColumns[18], stepExecutionColumns[1], |
| stepExecutionColumns[4], stepExecutionColumns[15], |
| stepExecutionColumns[10], stepExecutionColumns[16], stepExecutionColumns[2], stepExecutionColumns[12], stepExecutionColumns[11], |
| stepExecutionColumns[9], stepExecutionColumns[5], |
| stepExecutionColumns[17], stepExecutionColumns[14], stepExecutionColumns[3], stepExecutionColumns[8]); |
| this.updateStepExecutionStatus = String.format(SQL.STEP_EXECUTION_UPDATE_STATUS, stepExecutionTable, stepExecutionColumns[8], stepExecutionColumns[1], |
| stepExecutionColumns[4], stepExecutionColumns[6], |
| stepExecutionColumns[7], stepExecutionColumns[13], stepExecutionColumns[0]); |
| this.updateStepExecution = String.format(SQL.STEP_EXECUTION_UPDATE, stepExecutionTable, stepExecutionColumns[18], stepExecutionColumns[1], |
| stepExecutionColumns[4], stepExecutionColumns[15], |
| stepExecutionColumns[10], stepExecutionColumns[16], stepExecutionColumns[2], stepExecutionColumns[12], stepExecutionColumns[11], |
| stepExecutionColumns[9], stepExecutionColumns[5], |
| stepExecutionColumns[17], stepExecutionColumns[14], stepExecutionColumns[3], stepExecutionColumns[8], stepExecutionColumns[0]); |
| this.findStepExecutionByJobInstanceAndStepName = String.format(SQL.STEP_EXECUTION_BY_INSTANCE_AND_STEP, stepExecutionColumns[0], |
| stepExecutionColumns[13], stepExecutionColumns[1], |
| stepExecutionColumns[4], stepExecutionColumns[8], stepExecutionColumns[6], stepExecutionColumns[7], stepExecutionColumns[18], jobExecutionTable, stepExecutionTable, |
| jobExecutionColumns[0], stepExecutionColumns[18], jobExecutionColumns[8], stepExecutionColumns[15]); |
| this.deleteStepExecution = String.format(SQL.DELETE_STEP_EXECUTION, jobExecutionTable, stepExecutionTable, jobExecutionColumns[0], |
| stepExecutionColumns[18], jobExecutionColumns[8]); |
| this.deleteStepExecutionUntil = String.format(SQL.DELETE_STEP_EXECUTION_UNTIL, stepExecutionTable, stepExecutionColumns[0], stepExecutionColumns[0], |
| stepExecutionTable, jobExecutionTable, stepExecutionColumns[18], jobExecutionColumns[0], jobExecutionColumns[3]); |
| } |
| } |
| |
| private static String[] columns(final Database database, final String[] cols) { |
| final String[] out = new String[cols.length]; |
| for (int i = 0; i < cols.length; i++) { |
| out[i] = database.columnName(cols[i]); |
| } |
| return out; |
| } |
| |
| public String getCheckpointTable() { |
| return checkpointTable; |
| } |
| |
| public String getCreateCheckpointTable() { |
| return createCheckpointTable; |
| } |
| |
| public String getInsertCheckpoint() { |
| return insertCheckpoint; |
| } |
| |
| public String getSelectCheckpoint() { |
| return selectCheckpoint; |
| } |
| |
| public String getUpdateCheckpoint() { |
| return updateCheckpoint; |
| } |
| |
| public String getDeleteCheckpoint() { |
| return deleteCheckpoint; |
| } |
| |
| public String getJobInstanceTable() { |
| return jobInstanceTable; |
| } |
| |
| public String getCreateJobInstanceTable() { |
| return createJobInstanceTable; |
| } |
| |
| public String getCountJobInstanceByName() { |
| return countJobInstanceByName; |
| } |
| |
| public String getFindJobInstance() { |
| return findJobInstance; |
| } |
| |
| public String getUpdateJobInstanceStatus() { |
| return updateJobInstanceStatus; |
| } |
| |
| public String getFindJoBInstanceIds() { |
| return findJoBInstanceIds; |
| } |
| |
| public String getFindJobInstanceIdsByName() { |
| return findJobInstanceIdsByName; |
| } |
| |
| public String getFindExternalJobInstances() { |
| return findExternalJobInstances; |
| } |
| |
| public String getFindJobNames() { |
| return findJobNames; |
| } |
| |
| public String getCreateJobInstance() { |
| return createJobInstance; |
| } |
| |
| public String getCreateJobInstanceWithJobXml() { |
| return createJobInstanceWithJobXml; |
| } |
| |
| public String getDeleteJobInstance() { |
| return deleteJobInstance; |
| } |
| |
| public String getJobExecutionTable() { |
| return jobExecutionTable; |
| } |
| |
| public String getCreateJobExecutionTable() { |
| return createJobExecutionTable; |
| } |
| |
| public String getFindJobExecutionTimestamps() { |
| return findJobExecutionTimestamps; |
| } |
| |
| public String getFindJobExecutionBatchStatus() { |
| return findJobExecutionBatchStatus; |
| } |
| |
| public String getFindJobExecutionExitStatus() { |
| return findJobExecutionExitStatus; |
| } |
| |
| public String getFindJobExecutionJobProperties() { |
| return findJobExecutionJobProperties; |
| } |
| |
| public String getUpdateJobExecution() { |
| return updateJobExecution; |
| } |
| |
| public String getSetJobExecutionFinalData() { |
| return setJobExecutionFinalData; |
| } |
| |
| public String getUpdateStartedJobExecution() { |
| return updateStartedJobExecution; |
| } |
| |
| public String getFindJobExecutionById() { |
| return findJobExecutionById; |
| } |
| |
| public String getFindJobExecutionByInstance() { |
| return findJobExecutionByInstance; |
| } |
| |
| public String getFindRunningJobExecutions() { |
| return findRunningJobExecutions; |
| } |
| |
| public String getFindJobStatus() { |
| return findJobStatus; |
| } |
| |
| public String getFindJobInstanceFromJobExecution() { |
| return findJobInstanceFromJobExecution; |
| } |
| |
| public String getCreateJobExecution() { |
| return createJobExecution; |
| } |
| |
| public String getFindMostRecentJobExecution() { |
| return findMostRecentJobExecution; |
| } |
| |
| public String getDeleteJobExecution() { |
| return deleteJobExecution; |
| } |
| |
| public String getStepExecutionTable() { |
| return stepExecutionTable; |
| } |
| |
| public String getCreateStepExecutionTable() { |
| return createStepExecutionTable; |
| } |
| |
| public String getFinStepExecutionFromJobExecution() { |
| return finStepExecutionFromJobExecution; |
| } |
| |
| public String getFindStepExecutionFromId() { |
| return findStepExecutionFromId; |
| } |
| |
| public String getCreateStepExecution() { |
| return createStepExecution; |
| } |
| |
| public String getUpdateStepExecutionStatus() { |
| return updateStepExecutionStatus; |
| } |
| |
| public String getUpdateStepExecution() { |
| return updateStepExecution; |
| } |
| |
| public String getFindStepExecutionByJobInstanceAndStepName() { |
| return findStepExecutionByJobInstanceAndStepName; |
| } |
| |
| public String getDeleteStepExecution() { |
| return deleteStepExecution; |
| } |
| |
| public String checkpointColumn(final int idx) { |
| return checkpointColumns[idx]; |
| } |
| |
| public String jobInstanceColumns(final int idx) { |
| return jobInstanceColumns[idx]; |
| } |
| |
| public String jobExecutionColumns(final int idx) { |
| return jobExecutionColumns[idx]; |
| } |
| |
| public String stepExecutionColumns(final int idx) { |
| return stepExecutionColumns[idx]; |
| } |
| |
| public String getDeleteCheckpointUntil() { |
| return deleteCheckpointUntil; |
| } |
| |
| public String getDeleteJobInstanceUntil() { |
| return deleteJobInstanceUntil; |
| } |
| |
| public String getDeleteJobExecutionUntil() { |
| return deleteJobExecutionUntil; |
| } |
| |
| public String getDeleteStepExecutionUntil() { |
| return deleteStepExecutionUntil; |
| } |
| } |
| |