/** * Find a BatchStatus that matches the beginning of the given value. If no * match is found, return COMPLETED as the default because has is low * precedence. * * @param value a string representing a status * @return a BatchStatus */ public static BatchStatus match(String value) { for (BatchStatus status : values()) { if (value.startsWith(status.toString())) { return status; } } // Default match should be the lowest priority return COMPLETED; } }
/** * @param status {@link FlowExecutionStatus} to convert. * @return A {@link BatchStatus} appropriate for the {@link FlowExecutionStatus} provided */ protected BatchStatus findBatchStatus(FlowExecutionStatus status) { for (BatchStatus batchStatus : BatchStatus.values()) { if (status.getName().startsWith(batchStatus.toString())) { return batchStatus; } } return BatchStatus.UNKNOWN; }
/** * Test method for * {@link org.springframework.batch.core.BatchStatus#toString()}. */ @Test public void testToString() { assertEquals("ABANDONED", BatchStatus.ABANDONED.toString()); }
@Test public void testGetStatus() { assertEquals(BatchStatus.FAILED, BatchStatus.valueOf(BatchStatus.FAILED.toString())); }
exitCode = stepExecution.getStatus().toString();
/** * @param executionId id of running job execution */ private void stopAndCheckStatus(long executionId) throws Exception { // wait to the job to get up and running Thread.sleep(1000); Set<Long> runningExecutions = operator.getRunningExecutions(job.getName()); assertTrue("Wrong executions: " + runningExecutions + " expected: " + executionId, runningExecutions .contains(executionId)); assertTrue("Wrong summary: " + operator.getSummary(executionId), operator.getSummary(executionId).contains( BatchStatus.STARTED.toString())); operator.stop(executionId); int count = 0; while (operator.getRunningExecutions(job.getName()).contains(executionId) && count <= 10) { LOG.info("Checking for running JobExecution: count=" + count); Thread.sleep(100); count++; } runningExecutions = operator.getRunningExecutions(job.getName()); assertFalse("Wrong executions: " + runningExecutions + " expected: " + executionId, runningExecutions .contains(executionId)); assertTrue("Wrong summary: " + operator.getSummary(executionId), operator.getSummary(executionId).contains( BatchStatus.STOPPED.toString())); // there is just a single step in the test job Map<Long, String> summaries = operator.getStepExecutionSummaries(executionId); LOG.info(summaries); assertTrue(summaries.values().toString().contains(BatchStatus.STOPPED.toString())); }
@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 testBeforeChunkListenerException() throws Exception{ factory.setListeners(new StepListener []{new ExceptionThrowingChunkListener(1)}); 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)); }
private List<Object[]> buildStepExecutionParameters(StepExecution stepExecution) { Assert.isNull(stepExecution.getId(), "to-be-saved (not updated) StepExecution can't already have an id assigned"); Assert.isNull(stepExecution.getVersion(), "to-be-saved (not updated) StepExecution can't already have a version assigned"); validateStepExecution(stepExecution); stepExecution.setId(stepExecutionIncrementer.nextLongValue()); stepExecution.incrementVersion(); //Should be 0 List<Object[]> parameters = new ArrayList<>(); String exitDescription = truncateExitDescription(stepExecution.getExitStatus().getExitDescription()); Object[] parameterValues = new Object[] { stepExecution.getId(), stepExecution.getVersion(), stepExecution.getStepName(), stepExecution.getJobExecutionId(), stepExecution.getStartTime(), stepExecution.getEndTime(), stepExecution.getStatus().toString(), stepExecution.getCommitCount(), stepExecution.getReadCount(), stepExecution.getFilterCount(), stepExecution.getWriteCount(), stepExecution.getExitStatus().getExitCode(), exitDescription, stepExecution.getReadSkipCount(), stepExecution.getWriteSkipCount(), stepExecution.getProcessSkipCount(), stepExecution.getRollbackCount(), stepExecution.getLastUpdated() }; Integer[] parameterTypes = new Integer[] { Types.BIGINT, Types.INTEGER, Types.VARCHAR, Types.BIGINT, Types.TIMESTAMP, Types.TIMESTAMP, Types.VARCHAR, Types.INTEGER, Types.INTEGER, Types.INTEGER, Types.INTEGER, Types.VARCHAR, Types.VARCHAR, Types.INTEGER, Types.INTEGER, Types.INTEGER, Types.INTEGER, Types.TIMESTAMP }; parameters.add(0, Arrays.copyOf(parameterValues,parameterValues.length)); parameters.add(1, Arrays.copyOf(parameterTypes,parameterTypes.length)); return parameters; }
@Test public void testApplicationException() throws Exception { taskletStep.execute(stepExecution); assertEquals(FAILED, stepExecution.getStatus()); assertEquals(FAILED.toString(), stepExecution.getExitStatus().getExitCode()); }
jobExecution.getStatus().toString(), jobExecution.getExitStatus().getExitCode(), exitDescription, version, jobExecution.getCreateTime(), jobExecution.getLastUpdated(), jobExecution.getId(), jobExecution.getVersion() };
@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()); }
/** * * SQL implementation using Sequences via the Spring incrementer * abstraction. Once a new id has been obtained, the JobExecution is saved * via a SQL INSERT statement. * * @see JobExecutionDao#saveJobExecution(JobExecution) * @throws IllegalArgumentException if jobExecution is null, as well as any * of it's fields to be persisted. */ @Override public void saveJobExecution(JobExecution jobExecution) { validateJobExecution(jobExecution); jobExecution.incrementVersion(); jobExecution.setId(jobExecutionIncrementer.nextLongValue()); Object[] parameters = new Object[] { jobExecution.getId(), jobExecution.getJobId(), jobExecution.getStartTime(), jobExecution.getEndTime(), jobExecution.getStatus().toString(), jobExecution.getExitStatus().getExitCode(), jobExecution.getExitStatus().getExitDescription(), jobExecution.getVersion(), jobExecution.getCreateTime(), jobExecution.getLastUpdated(), jobExecution.getJobConfigurationName() }; getJdbcTemplate().update( getQuery(SAVE_JOB_EXECUTION), parameters, new int[] { Types.BIGINT, Types.BIGINT, Types.TIMESTAMP, Types.TIMESTAMP, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.INTEGER, Types.TIMESTAMP, Types.TIMESTAMP, Types.VARCHAR }); insertJobParameters(jobExecution.getId(), jobExecution.getJobParameters()); }
stepExecution.getStatus().toString(), stepExecution.getCommitCount(), stepExecution.getReadCount(), stepExecution.getFilterCount(), stepExecution.getWriteCount(), stepExecution.getExitStatus().getExitCode(), exitDescription, version,
public String getStatus() { if (id!=null) { return stepExecution.getStatus().toString(); } return "NONE"; }
/** * @param status * @return */ protected BatchStatus findBatchStatus(FlowExecutionStatus status) { for (BatchStatus batchStatus : BatchStatus.values()) { if (status.getName().startsWith(batchStatus.toString())) { return batchStatus; } } return BatchStatus.UNKNOWN; }
/** * @param status * @return */ private BatchStatus findBatchStatus(FlowExecutionStatus status) { for (BatchStatus batchStatus : BatchStatus.values()) { if (status.getName().startsWith(batchStatus.toString())) { return batchStatus; } } return BatchStatus.UNKNOWN; }
/** * @param status {@link FlowExecutionStatus} to convert. * @return A {@link BatchStatus} appropriate for the {@link FlowExecutionStatus} provided */ protected BatchStatus findBatchStatus(FlowExecutionStatus status) { for (BatchStatus batchStatus : BatchStatus.values()) { if (status.getName().startsWith(batchStatus.toString())) { return batchStatus; } } return BatchStatus.UNKNOWN; }
/** * Gets the status. * * @return the status */ public String getStatus() { if (id != null) { return getStepExecutionDetailsRepresentation().getStatus() .toString(); } return "NONE"; }
@Transformer public Message<String> transformExecutionsToMail(JobExecution jobExecution) { String result = "Execution has " + jobExecution.getStatus().toString(); return MessageBuilder.withPayload(result) .setHeader(MailHeaders.TO, "siia.test@yahoo.ca") .setHeader(MailHeaders.FROM, "siia.test@yahoo.ca").build(); } }