@Override public String getExitStatus() { ExitStatus status = stepExecution.getExitStatus(); if(status == null) { return null; } else { return status.getExitCode(); } }
@Override public ExitStatus afterStep(StepExecution stepExecution) { afterStepCount++; return stepExecution.getExitStatus(); } }
/** * Determines the {@link ExitStatus} taking into consideration the {@link ExitStatus} from * the {@link StepExecution}, which invoked the {@link JobStep}, and the {@link JobExecution}. * * @param stepExecution the {@link StepExecution} which invoked the {@link JobExecution} * @param jobExecution the {@link JobExecution} * @return the final {@link ExitStatus} */ private ExitStatus determineStepExitStatus(StepExecution stepExecution, JobExecution jobExecution) { ExitStatus exitStatus = stepExecution.getExitStatus() != null ? stepExecution.getExitStatus() : ExitStatus.COMPLETED; return exitStatus.and(jobExecution.getExitStatus()); }
@Override public String getExitStatus() { return exitStatusSet.get() ? stepExecution.getExitStatus().getExitCode() : null; }
@Override public ExitStatus afterStep(StepExecution stepExecution) { try { delegate.afterStep(); } catch (Exception e) { throw new BatchRuntimeException(e); } return stepExecution.getExitStatus(); } }
@Override public ExitStatus afterStep(StepExecution stepExecution) { assertEquals(ExitStatus.STOPPED, stepExecution.getExitStatus()); list.add("fail"); return ExitStatus.FAILED; } }, new StepExecutionListenerSupport() {
@AfterStep public ExitStatus exploitState(StepExecution stepExecution) { System.out.println("******************************"); System.out.println(" READING RESULTS : " + list.size()); return stepExecution.getExitStatus(); }
@AfterStep public ExitStatus afterStep(StepExecution stepExecution) { afterStepCount++; return stepExecution.getExitStatus(); }
/** * Test method for * {@link org.springframework.batch.core.JobExecution#getExitStatus()}. */ @Test public void testGetExitCode() { assertEquals(ExitStatus.EXECUTING, execution.getExitStatus()); execution.setExitStatus(ExitStatus.COMPLETED); assertEquals(ExitStatus.COMPLETED, execution.getExitStatus()); }
@Override public ExitStatus afterStep(StepExecution stepExecution) { assertSame(execution, stepExecution); events.add(getEvent("afterStep(" + stepExecution.getExitStatus().getExitCode() + ")")); stepExecution.getExecutionContext().putString("afterStep", "afterStep"); return stepExecution.getExitStatus(); }
@AfterStep public ExitStatus checkForSkips(StepExecution stepExecution) { if (!stepExecution.getExitStatus().getExitCode().equals(ExitStatus.FAILED.getExitCode()) && stepExecution.getSkipCount() > 0) { return new ExitStatus("COMPLETED WITH SKIPS"); } else { return null; } }
@Test public void testDoInIteration() throws Exception { StepContextRepeatCallback callback = new StepContextRepeatCallback(stepExecution) { @Override public RepeatStatus doInChunkContext(RepeatContext context, ChunkContext chunkContext) throws Exception { assertEquals(Long.valueOf(123), chunkContext.getStepContext().getStepExecution().getId()); return RepeatStatus.FINISHED; } }; assertEquals(RepeatStatus.FINISHED, callback.doInIteration(null)); assertEquals(ExitStatus.EXECUTING, stepExecution.getExitStatus()); }
@Test public void testAggregateExitStatusSunnyDay() { stepExecution1.setExitStatus(ExitStatus.EXECUTING); stepExecution2.setExitStatus(ExitStatus.FAILED); aggregator.aggregate(result, Arrays.<StepExecution> asList(stepExecution1, stepExecution2)); assertNotNull(result); assertEquals(ExitStatus.FAILED.and(ExitStatus.EXECUTING), result.getExitStatus()); }
@Test public void testAfterChunkListenerException() throws Exception{ factory.setListeners(new StepListener []{new ExceptionThrowingChunkListener(2)}); Step step = factory.getObject(); step.execute(stepExecution); assertEquals(FAILED, stepExecution.getStatus()); assertEquals(FAILED.toString(), stepExecution.getExitStatus().getExitCode()); assertTrue(stepExecution.getCommitCount() > 0);//Make sure exception was thrown in after, not before Throwable e = stepExecution.getFailureExceptions().get(0); assertThat(e, instanceOf(FatalStepExecutionException.class)); assertThat(e.getCause(), instanceOf(IllegalArgumentException.class)); }
@Test public void testApplicationException() throws Exception { taskletStep.execute(stepExecution); assertEquals(FAILED, stepExecution.getStatus()); assertEquals(FAILED.toString(), stepExecution.getExitStatus().getExitCode()); }
@Test public void testFailTransitionDefaultStatus() throws Exception { JobExecution jobExecution = createJobExecution(); job.execute(jobExecution); assertEquals(1, stepNamesList.size()); assertTrue(stepNamesList.contains("s1")); assertEquals(BatchStatus.FAILED, jobExecution.getStatus()); assertEquals(ExitStatus.FAILED, jobExecution.getExitStatus()); StepExecution stepExecution1 = getStepExecution(jobExecution, "s1"); assertEquals(BatchStatus.COMPLETED, stepExecution1.getStatus()); assertEquals(ExitStatus.COMPLETED, stepExecution1.getExitStatus()); }
@Test public void testSerialization() throws Exception { ExitStatus status = ExitStatus.NOOP; execution.setExitStatus(status); execution.setExecutionContext(foobarEc); byte[] serialized = SerializationUtils.serialize(execution); StepExecution deserialized = (StepExecution) SerializationUtils.deserialize(serialized); assertEquals(execution, deserialized); assertEquals(status, deserialized.getExitStatus()); assertNotNull(deserialized.getFailureExceptions()); }
@Test public void testInterrupted() throws Exception { taskletStep.setStepExecutionListeners(new StepExecutionListener[] { new InterruptionListener() }); taskletStep.execute(stepExecution); assertEquals(STOPPED, stepExecution.getStatus()); assertEquals(STOPPED.toString(), stepExecution.getExitStatus().getExitCode()); }
private void launchAndAssert(String stepNames) throws JobInstanceAlreadyCompleteException, JobRestartException, JobExecutionAlreadyRunningException { JobExecution jobExecution = createJobExecution(); job.execute(jobExecution); assertEquals(stepNames, stepNamesList.toString()); assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); assertEquals(ExitStatus.STOPPED.getExitCode(), jobExecution.getExitStatus().getExitCode()); StepExecution stepExecution1 = getStepExecution(jobExecution, "s1"); assertEquals(BatchStatus.COMPLETED, stepExecution1.getStatus()); assertEquals(ExitStatus.COMPLETED.getExitCode(), stepExecution1.getExitStatus().getExitCode()); }
private void launchAndAssert(String stepNames) throws JobInstanceAlreadyCompleteException, JobRestartException, JobExecutionAlreadyRunningException { JobExecution jobExecution = createJobExecution(); job.execute(jobExecution); assertEquals(stepNames, stepNamesList.toString()); assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); assertEquals(ExitStatus.STOPPED.getExitCode(), jobExecution.getExitStatus().getExitCode()); StepExecution stepExecution1 = getStepExecution(jobExecution, "fail"); assertEquals(BatchStatus.FAILED, stepExecution1.getStatus()); assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution1.getExitStatus().getExitCode()); }