BATCH-453: Added stop support to SimpleJobOperator and generated correct sql for remaining schema files.
This commit is contained in:
@@ -44,7 +44,7 @@ public interface JobExplorer {
|
||||
|
||||
/**
|
||||
* @param executionId
|
||||
* @return the {@link JobExecution} with this id, or null
|
||||
* @return the {@link JobExecution} with this id, or null if not found
|
||||
*/
|
||||
JobExecution getJobExecution(Long executionId);
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import java.util.Set;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.batch.core.BatchStatus;
|
||||
import org.springframework.batch.core.Job;
|
||||
import org.springframework.batch.core.JobExecution;
|
||||
import org.springframework.batch.core.JobInstance;
|
||||
@@ -45,6 +46,7 @@ import org.springframework.batch.core.launch.NoSuchJobExecutionException;
|
||||
import org.springframework.batch.core.launch.NoSuchJobInstanceException;
|
||||
import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException;
|
||||
import org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException;
|
||||
import org.springframework.batch.core.repository.JobRepository;
|
||||
import org.springframework.batch.core.repository.JobRestartException;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
@@ -52,6 +54,7 @@ import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
* @author Lucas Ward
|
||||
*
|
||||
*/
|
||||
public class SimpleJobOperator implements JobOperator, InitializingBean {
|
||||
@@ -67,6 +70,8 @@ public class SimpleJobOperator implements JobOperator, InitializingBean {
|
||||
private JobExplorer jobExplorer;
|
||||
|
||||
private JobLauncher jobLauncher;
|
||||
|
||||
private JobRepository jobRepository;
|
||||
|
||||
private JobParametersConverter jobParametersConverter = new DefaultJobParametersConverter();
|
||||
|
||||
@@ -106,6 +111,10 @@ public class SimpleJobOperator implements JobOperator, InitializingBean {
|
||||
public void setJobExplorer(JobExplorer jobExplorer) {
|
||||
this.jobExplorer = jobExplorer;
|
||||
}
|
||||
|
||||
public void setJobRepository(JobRepository jobRepository) {
|
||||
this.jobRepository = jobRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
* Public setter for the {@link JobLauncher}.
|
||||
@@ -356,7 +365,20 @@ public class SimpleJobOperator implements JobOperator, InitializingBean {
|
||||
* org.springframework.batch.core.launch.JobOperator#stop(java.lang.Long)
|
||||
*/
|
||||
public boolean stop(long executionId) throws NoSuchJobExecutionException {
|
||||
throw new UnsupportedOperationException("See BATCH-453 for implementation.");
|
||||
|
||||
JobExecution jobExecution = jobExplorer.getJobExecution(executionId);
|
||||
|
||||
if(jobExecution == null){
|
||||
throw new NoSuchJobExecutionException("No JobExecution found for id: [" + executionId + "]");
|
||||
}
|
||||
|
||||
//Indicate the execution should be stopped by setting it's status to 'STOPPING'. It is assumed that
|
||||
//the step implementation will check this status at chunk boundaries.
|
||||
jobExecution.setStatus(BatchStatus.STOPPING);
|
||||
jobRepository.update(jobExecution);
|
||||
|
||||
// TODO: I'm not sure that we can really know if the execution stopped
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ CREATE TABLE BATCH_JOB_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED TIMESTAMP,
|
||||
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
|
||||
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
|
||||
) ;
|
||||
@@ -60,20 +61,14 @@ CREATE TABLE BATCH_STEP_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED TIMESTAMP,
|
||||
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
|
||||
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
|
||||
) ;
|
||||
|
||||
CREATE TABLE BATCH_EXECUTION_CONTEXT (
|
||||
EXECUTION_ID BIGINT NOT NULL,
|
||||
DISCRIMINATOR VARCHAR(1) NOT NULL,
|
||||
TYPE_CD VARCHAR(6) NOT NULL,
|
||||
KEY_NAME VARCHAR(1000) NOT NULL,
|
||||
STRING_VAL VARCHAR(1000) ,
|
||||
DATE_VAL TIMESTAMP DEFAULT NULL,
|
||||
LONG_VAL BIGINT ,
|
||||
DOUBLE_VAL DOUBLE PRECISION ,
|
||||
OBJECT_VAL BLOB
|
||||
CREATE TABLE BATCH_MAP_STORE (
|
||||
MAP_STORE_ID BIGINT NOT NULL PRIMARY KEY ,
|
||||
OBJECT_VAL BLOB NOT NULL
|
||||
) ;
|
||||
|
||||
CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ;
|
||||
|
||||
@@ -28,6 +28,7 @@ CREATE TABLE BATCH_JOB_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED TIMESTAMP,
|
||||
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
|
||||
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
|
||||
) ;
|
||||
@@ -60,20 +61,14 @@ CREATE TABLE BATCH_STEP_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED TIMESTAMP,
|
||||
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
|
||||
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
|
||||
) ;
|
||||
|
||||
CREATE TABLE BATCH_EXECUTION_CONTEXT (
|
||||
EXECUTION_ID BIGINT NOT NULL,
|
||||
DISCRIMINATOR VARCHAR(1) NOT NULL,
|
||||
TYPE_CD VARCHAR(6) NOT NULL,
|
||||
KEY_NAME VARCHAR(1000) NOT NULL,
|
||||
STRING_VAL VARCHAR(1000) ,
|
||||
DATE_VAL TIMESTAMP DEFAULT NULL,
|
||||
LONG_VAL BIGINT ,
|
||||
DOUBLE_VAL DOUBLE PRECISION ,
|
||||
OBJECT_VAL BLOB
|
||||
CREATE TABLE BATCH_MAP_STORE (
|
||||
MAP_STORE_ID BIGINT NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
||||
OBJECT_VAL BLOB NOT NULL
|
||||
) ;
|
||||
|
||||
CREATE TABLE BATCH_STEP_EXECUTION_SEQ (ID BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, DUMMY VARCHAR(1));
|
||||
|
||||
@@ -27,8 +27,8 @@ CREATE TABLE BATCH_JOB_EXECUTION (
|
||||
STATUS VARCHAR(10) ,
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED TIMESTAMP ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED TIMESTAMP,
|
||||
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
|
||||
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
|
||||
) ;
|
||||
@@ -60,22 +60,15 @@ CREATE TABLE BATCH_STEP_EXECUTION (
|
||||
ROLLBACK_COUNT BIGINT ,
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED TIMESTAMP ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED TIMESTAMP,
|
||||
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
|
||||
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
|
||||
) ;
|
||||
|
||||
CREATE TABLE BATCH_EXECUTION_CONTEXT (
|
||||
EXECUTION_ID BIGINT NOT NULL,
|
||||
DISCRIMINATOR VARCHAR(1) NOT NULL,
|
||||
TYPE_CD VARCHAR(6) NOT NULL,
|
||||
KEY_NAME VARCHAR(1000) NOT NULL,
|
||||
STRING_VAL VARCHAR(1000) ,
|
||||
DATE_VAL TIMESTAMP DEFAULT NULL,
|
||||
LONG_VAL BIGINT ,
|
||||
DOUBLE_VAL DOUBLE PRECISION ,
|
||||
OBJECT_VAL LONGVARBINARY
|
||||
CREATE TABLE BATCH_MAP_STORE (
|
||||
MAP_STORE_ID BIGINT IDENTITY NOT NULL PRIMARY KEY ,
|
||||
OBJECT_VAL LONGVARBINARY NOT NULL
|
||||
) ;
|
||||
|
||||
CREATE TABLE BATCH_STEP_EXECUTION_SEQ (
|
||||
|
||||
@@ -28,6 +28,7 @@ CREATE TABLE BATCH_JOB_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED DATETIME,
|
||||
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
|
||||
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
|
||||
) type=InnoDB;
|
||||
@@ -60,20 +61,14 @@ CREATE TABLE BATCH_STEP_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED DATETIME,
|
||||
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
|
||||
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
|
||||
) type=InnoDB;
|
||||
|
||||
CREATE TABLE BATCH_EXECUTION_CONTEXT (
|
||||
EXECUTION_ID BIGINT NOT NULL,
|
||||
DISCRIMINATOR VARCHAR(1) NOT NULL,
|
||||
TYPE_CD VARCHAR(6) NOT NULL,
|
||||
KEY_NAME VARCHAR(1000) NOT NULL,
|
||||
STRING_VAL VARCHAR(1000) ,
|
||||
DATE_VAL DATETIME DEFAULT NULL,
|
||||
LONG_VAL BIGINT ,
|
||||
DOUBLE_VAL DOUBLE PRECISION ,
|
||||
OBJECT_VAL BLOB
|
||||
CREATE TABLE BATCH_MAP_STORE (
|
||||
MAP_STORE_ID BIGINT NOT NULL PRIMARY KEY ,
|
||||
OBJECT_VAL BLOB NOT NULL
|
||||
) type=InnoDB;
|
||||
|
||||
CREATE TABLE BATCH_STEP_EXECUTION_SEQ (ID BIGINT NOT NULL) type=MYISAM;
|
||||
|
||||
@@ -28,6 +28,7 @@ CREATE TABLE BATCH_JOB_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR2(20) ,
|
||||
EXIT_MESSAGE VARCHAR2(2500) ,
|
||||
LAST_UPDATED TIMESTAMP,
|
||||
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
|
||||
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
|
||||
) ;
|
||||
@@ -60,20 +61,14 @@ CREATE TABLE BATCH_STEP_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR2(20) ,
|
||||
EXIT_MESSAGE VARCHAR2(2500) ,
|
||||
LAST_UPDATED TIMESTAMP,
|
||||
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
|
||||
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
|
||||
) ;
|
||||
|
||||
CREATE TABLE BATCH_EXECUTION_CONTEXT (
|
||||
EXECUTION_ID NUMBER(38) NOT NULL,
|
||||
DISCRIMINATOR VARCHAR2(1) NOT NULL,
|
||||
TYPE_CD VARCHAR2(6) NOT NULL,
|
||||
KEY_NAME VARCHAR2(1000) NOT NULL,
|
||||
STRING_VAL VARCHAR2(1000) ,
|
||||
DATE_VAL TIMESTAMP DEFAULT NULL,
|
||||
LONG_VAL NUMBER(38) ,
|
||||
DOUBLE_VAL NUMBER ,
|
||||
OBJECT_VAL BLOB
|
||||
CREATE TABLE BATCH_MAP_STORE (
|
||||
MAP_STORE_ID NUMBER(38) NOT NULL PRIMARY KEY ,
|
||||
OBJECT_VAL BLOB NOT NULL
|
||||
) ;
|
||||
|
||||
CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ;
|
||||
|
||||
@@ -28,6 +28,7 @@ CREATE TABLE BATCH_JOB_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED TIMESTAMP,
|
||||
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
|
||||
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
|
||||
) ;
|
||||
@@ -60,20 +61,14 @@ CREATE TABLE BATCH_STEP_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED TIMESTAMP,
|
||||
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
|
||||
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
|
||||
) ;
|
||||
|
||||
CREATE TABLE BATCH_EXECUTION_CONTEXT (
|
||||
EXECUTION_ID BIGINT NOT NULL,
|
||||
DISCRIMINATOR VARCHAR(1) NOT NULL,
|
||||
TYPE_CD VARCHAR(6) NOT NULL,
|
||||
KEY_NAME VARCHAR(1000) NOT NULL,
|
||||
STRING_VAL VARCHAR(1000) ,
|
||||
DATE_VAL TIMESTAMP DEFAULT NULL,
|
||||
LONG_VAL BIGINT ,
|
||||
DOUBLE_VAL DOUBLE PRECISION ,
|
||||
OBJECT_VAL BYTEA
|
||||
CREATE TABLE BATCH_MAP_STORE (
|
||||
MAP_STORE_ID BIGINT NOT NULL PRIMARY KEY ,
|
||||
OBJECT_VAL BYTEA NOT NULL
|
||||
) ;
|
||||
|
||||
CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ;
|
||||
|
||||
@@ -28,6 +28,7 @@ CREATE TABLE BATCH_JOB_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED DATETIME,
|
||||
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
|
||||
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
|
||||
) ;
|
||||
@@ -60,20 +61,14 @@ CREATE TABLE BATCH_STEP_EXECUTION (
|
||||
CONTINUABLE CHAR(1) ,
|
||||
EXIT_CODE VARCHAR(20) ,
|
||||
EXIT_MESSAGE VARCHAR(2500) ,
|
||||
LAST_UPDATED DATETIME,
|
||||
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
|
||||
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
|
||||
) ;
|
||||
|
||||
CREATE TABLE BATCH_EXECUTION_CONTEXT (
|
||||
EXECUTION_ID BIGINT NOT NULL,
|
||||
DISCRIMINATOR VARCHAR(1) NOT NULL,
|
||||
TYPE_CD VARCHAR(6) NOT NULL,
|
||||
KEY_NAME VARCHAR(1000) NOT NULL,
|
||||
STRING_VAL VARCHAR(1000) ,
|
||||
DATE_VAL DATETIME DEFAULT NULL,
|
||||
LONG_VAL BIGINT ,
|
||||
DOUBLE_VAL DOUBLE PRECISION ,
|
||||
OBJECT_VAL IMAGE
|
||||
CREATE TABLE BATCH_MAP_STORE (
|
||||
MAP_STORE_ID BIGINT NOT NULL PRIMARY KEY ,
|
||||
OBJECT_VAL IMAGE NOT NULL
|
||||
) ;
|
||||
|
||||
CREATE TABLE BATCH_STEP_EXECUTION_SEQ (ID BIGINT IDENTITY);
|
||||
|
||||
@@ -28,6 +28,7 @@ CREATE TABLE BATCH_JOB_EXECUTION (
|
||||
CONTINUABLE CHAR(1) NULL,
|
||||
EXIT_CODE VARCHAR(20) NULL,
|
||||
EXIT_MESSAGE VARCHAR(2500) NULL,
|
||||
LAST_UPDATED DATETIME,
|
||||
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
|
||||
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
|
||||
) ;
|
||||
@@ -60,20 +61,14 @@ CREATE TABLE BATCH_STEP_EXECUTION (
|
||||
CONTINUABLE CHAR(1) NULL,
|
||||
EXIT_CODE VARCHAR(20) NULL,
|
||||
EXIT_MESSAGE VARCHAR(2500) NULL,
|
||||
LAST_UPDATED DATETIME,
|
||||
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
|
||||
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
|
||||
) ;
|
||||
|
||||
CREATE TABLE BATCH_EXECUTION_CONTEXT (
|
||||
EXECUTION_ID BIGINT NOT NULL,
|
||||
DISCRIMINATOR VARCHAR(1) NOT NULL,
|
||||
TYPE_CD VARCHAR(6) NOT NULL,
|
||||
KEY_NAME VARCHAR(1000) NOT NULL,
|
||||
STRING_VAL VARCHAR(1000) NULL,
|
||||
DATE_VAL DATETIME DEFAULT NULL,
|
||||
LONG_VAL BIGINT NULL,
|
||||
DOUBLE_VAL DOUBLE PRECISION NULL,
|
||||
OBJECT_VAL IMAGE NULL
|
||||
CREATE TABLE BATCH_MAP_STORE (
|
||||
MAP_STORE_ID BIGINT NOT NULL PRIMARY KEY ,
|
||||
OBJECT_VAL IMAGE NOT NULL
|
||||
) ;
|
||||
|
||||
CREATE TABLE BATCH_STEP_EXECUTION_SEQ (ID BIGINT IDENTITY);
|
||||
|
||||
@@ -7,7 +7,7 @@ CREATE TABLE BATCH_JOB_INSTANCE (
|
||||
|
||||
CREATE TABLE BATCH_JOB_EXECUTION (
|
||||
JOB_EXECUTION_ID ${BIGINT} $!{IDENTITY} NOT NULL PRIMARY KEY $!{GENERATED},
|
||||
VERSION ${BIGINT} $!{NULL},
|
||||
VERSION ${BIGINT} $!{NULL},
|
||||
JOB_INSTANCE_ID ${BIGINT} NOT NULL,
|
||||
CREATE_TIME ${TIMESTAMP} NOT NULL,
|
||||
START_TIME ${TIMESTAMP} DEFAULT NULL $!{NULL},
|
||||
@@ -16,12 +16,9 @@ CREATE TABLE BATCH_JOB_EXECUTION (
|
||||
CONTINUABLE CHAR(1) $!{NULL},
|
||||
EXIT_CODE ${VARCHAR}(20) $!{NULL},
|
||||
EXIT_MESSAGE ${VARCHAR}(2500) $!{NULL},
|
||||
EXECUTION_CONTEXT ${CLOB} $!{NULL},
|
||||
MAP_STORE_ID ${BIGINT} $!{NULL},
|
||||
LAST_UPDATED ${TIMESTAMP},
|
||||
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
|
||||
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID),
|
||||
constraint MAP_JOB_EXEC_FK foreign key (MAP_STORE_ID)
|
||||
references BATCH_MAP_STORE(MAP_STORE_ID)
|
||||
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
|
||||
) $!{VOODOO};
|
||||
|
||||
CREATE TABLE BATCH_JOB_PARAMS (
|
||||
@@ -52,10 +49,7 @@ CREATE TABLE BATCH_STEP_EXECUTION (
|
||||
CONTINUABLE CHAR(1) $!{NULL},
|
||||
EXIT_CODE ${VARCHAR}(20) $!{NULL},
|
||||
EXIT_MESSAGE ${VARCHAR}(2500) $!{NULL},
|
||||
EXECUTION_CONTEXT ${CLOB} $!{NULL},
|
||||
MAP_STORE_ID ${BIGINT} $!{NULL},
|
||||
LAST_UPDATED ${TIMESTAMP},
|
||||
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
|
||||
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID),
|
||||
constraint MAP_STEP_EXEC_FK foreign key (MAP_STORE_ID)
|
||||
references BATCH_MAP_STORE(MAP_STORE_ID)
|
||||
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
|
||||
) $!{VOODOO};
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.springframework.batch.core.launch.support;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.easymock.EasyMock.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
@@ -30,6 +31,7 @@ import java.util.Set;
|
||||
import org.easymock.EasyMock;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.batch.core.BatchStatus;
|
||||
import org.springframework.batch.core.Job;
|
||||
import org.springframework.batch.core.JobExecution;
|
||||
import org.springframework.batch.core.JobInstance;
|
||||
@@ -46,6 +48,7 @@ import org.springframework.batch.core.launch.NoSuchJobExecutionException;
|
||||
import org.springframework.batch.core.launch.NoSuchJobInstanceException;
|
||||
import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException;
|
||||
import org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException;
|
||||
import org.springframework.batch.core.repository.JobRepository;
|
||||
import org.springframework.batch.core.repository.JobRestartException;
|
||||
import org.springframework.batch.core.step.StepSupport;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
@@ -61,6 +64,8 @@ public class SimpleJobOperatorTests {
|
||||
protected Job job;
|
||||
|
||||
private JobExplorer jobExplorer;
|
||||
|
||||
private JobRepository jobRepository;
|
||||
|
||||
private JobParameters jobParameters;
|
||||
|
||||
@@ -108,6 +113,9 @@ public class SimpleJobOperatorTests {
|
||||
jobExplorer = EasyMock.createNiceMock(JobExplorer.class);
|
||||
|
||||
jobOperator.setJobExplorer(jobExplorer);
|
||||
|
||||
jobRepository = createMock(JobRepository.class);
|
||||
jobOperator.setJobRepository(jobRepository);
|
||||
|
||||
jobOperator.setJobParametersConverter(new DefaultJobParametersConverter() {
|
||||
@Override
|
||||
@@ -138,17 +146,6 @@ public class SimpleJobOperatorTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStop() throws Exception {
|
||||
try {
|
||||
jobOperator.stop(123L);
|
||||
fail("Expected UnsupportedOperationException");
|
||||
}
|
||||
catch (UnsupportedOperationException e) {
|
||||
// expected
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link org.springframework.batch.core.launch.support.SimpleJobOperator#startNextInstance(java.lang.String)}
|
||||
@@ -378,5 +375,20 @@ public class SimpleJobOperatorTests {
|
||||
}
|
||||
EasyMock.verify(jobExplorer);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStop() throws Exception{
|
||||
JobInstance jobInstance = new JobInstance(123L, jobParameters, job.getName());
|
||||
JobExecution jobExecution = new JobExecution(jobInstance, 111L);
|
||||
jobExplorer.getJobExecution(111L);
|
||||
expectLastCall().andReturn(jobExecution);
|
||||
jobRepository.update(jobExecution);
|
||||
replay(jobExplorer);
|
||||
replay(jobRepository);
|
||||
jobOperator.stop(111L);
|
||||
verify(jobExplorer);
|
||||
verify(jobRepository);
|
||||
assertEquals(BatchStatus.STOPPING, jobExecution.getStatus());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user