/** * 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() { ExitStatus status = stepExecution.getExitStatus(); if(status == null) { return null; } else { return status.getExitCode(); } }
/** * Convenience method to get the current job parameters. * * @return the {@link JobParameters} from the enclosing job, or empty if * that is null */ public JobParameters getJobParameters() { if (jobExecution == null) { return new JobParameters(); } return jobExecution.getJobParameters(); }
@Before public void createExecution() { JobParameters jobParameters = new JobParametersBuilder().addString("foo", "bar").toJobParameters(); stepExecution = new StepExecution("foo", new JobExecution(new JobInstance(123L, "job"), jobParameters)); }
private StepExecution newStepExecution(Step step, Long jobExecutionId, long stepExecutionId) { JobInstance job = new JobInstance(3L, "testJob"); StepExecution execution = new StepExecution(step.getName(), new JobExecution(job, jobExecutionId, new JobParameters(), null), stepExecutionId); return execution; }
@Override protected void setExitStatus(FlowExecutor executor, String code) { StepExecution stepExecution = executor.getStepExecution(); ExitStatus status = new ExitStatus(code); if(!ExitStatus.isNonDefaultExitStatus(status)) { stepExecution.getJobExecution().setExitStatus(status); } } }
@Override public String getJobName() { return jobExecution.getJobInstance().getJobName(); }
@Override public void afterPropertiesSet() throws Exception { StepExecution stepExecution = new StepExecution("step", new JobExecution(1L), 0L); step.execute(stepExecution); // expect no errors }
@Override public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception { contribution.setExitStatus(new ExitStatus("FUNNY")); throw new JobInterruptedException("Planned"); } });
@Override public JobExecution createJobExecution(String jobName, JobParameters jobParameters) { JobInstance jobInstance = new JobInstance(0L, jobName); return new JobExecution(jobInstance, 11L, jobParameters, null); }
@Override public void afterPropertiesSet() throws Exception { JobExecution jobExecution = new JobExecution(11L); job.execute(jobExecution); // expect no errors }
/** * Test method for {@link org.springframework.batch.core.Entity#hashCode()}. */ public void testHashCode() { assertEquals(entity.hashCode(), new Entity(entity.getId()).hashCode()); }
/** * Test method for * {@link org.springframework.batch.core.StepContribution#incrementFilterCount(int)} * . */ public void testIncrementFilterCount() { assertEquals(0, contribution.getFilterCount()); contribution.incrementFilterCount(1); assertEquals(1, contribution.getFilterCount()); }
/** * Test method for {@link org.springframework.batch.core.Entity#hashCode()}. */ public void testHashCodeNullId() { int withoutNull = entity.hashCode(); entity.setId(null); int withNull = entity.hashCode(); assertTrue(withoutNull!=withNull); }
/** * Test method for {@link org.springframework.batch.core.Entity#equals(java.lang.Object)}. */ public void testEqualsEntity() { assertEquals(entity, new Entity(entity.getId())); }
/** * Test method for {@link org.springframework.batch.core.Entity#equals(java.lang.Object)}. */ public void testEqualsEntityWrongId() { assertFalse(entity.equals(new Entity())); }
/** * Test method for {@link org.springframework.batch.core.Entity#equals(java.lang.Object)}. */ public void testEqualsNull() { assertFalse(entity.equals(null)); }
/** * Test method for {@link org.springframework.batch.core.Entity#equals(java.lang.Object)}. */ public void testEqualsSelfWithNullId() { entity = new Entity(null); assertEquals(entity, entity); }
/** * Test method for {@link org.springframework.batch.core.Entity#getVersion()}. */ public void testGetVersion() { assertEquals(null, entity.getVersion()); }
/** * Test method for {@link org.springframework.batch.core.Entity#equals(java.lang.Object)}. */ public void testEqualsEntityWithNullId() { entity = new Entity(null); assertNotSame(entity, new Entity(null)); }