/** * @param status The {@link FlowExecutionStatus} to end with * @param name The name of the state */ public EndState(FlowExecutionStatus status, String name) { this(status, status.getName(), name); }
/** * @param status The {@link FlowExecutionStatus} to end with * @param name The name of the state */ public JsrEndState(FlowExecutionStatus status, String name) { super(status, status.getName(), name); }
/** * @return true if the status starts with "FAILED" */ public boolean isFail() { return name.startsWith(FAILED.getName()); }
/** * @return true if the status starts with "STOPPED" */ public boolean isStop() { return name.startsWith(STOPPED.getName()); }
/** * @return true if the status starts with "COMPLETED" */ private boolean isComplete() { return name.startsWith(COMPLETED.getName()); } /**
/** * @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; }
endBuilder.addConstructorArgValue(exitCodeExists ? exitCode : status.getName());
list.addAll(createTransition(FlowExecutionStatus.FAILED, FlowExecutionStatus.FAILED.getName(), null, null, stateDef, parserContext, false)); list.addAll(createTransition(FlowExecutionStatus.UNKNOWN, FlowExecutionStatus.UNKNOWN.getName(), null, null, stateDef, parserContext, false)); list.addAll(createTransition(FlowExecutionStatus.FAILED, FlowExecutionStatus.FAILED.getName(), null, null, stateDef, parserContext, false)); list.addAll(createTransition(FlowExecutionStatus.COMPLETED, FlowExecutionStatus.COMPLETED.getName(), null, null, stateDef, parserContext, false));
endBuilder.addConstructorArgValue(exitCodeExists ? exitCode : status.getName());
list.addAll(createTransition(FlowExecutionStatus.FAILED, FlowExecutionStatus.FAILED.getName(), null, null, stateDef, parserContext, false)); list.addAll(createTransition(FlowExecutionStatus.UNKNOWN, FlowExecutionStatus.UNKNOWN.getName(), null, null, stateDef, parserContext, false)); if (!hasNextAttribute) {
@Override public void updateJobExecutionStatus(FlowExecutionStatus status) { execution.setStatus(findBatchStatus(status)); exitStatus = exitStatus.and(new ExitStatus(status.getName())); execution.setExitStatus(exitStatus); }
@Override protected State nextState(String stateName, FlowExecutionStatus status, StepExecution stepExecution) throws FlowExecutionException { State nextState = findState(stateName, status, stepExecution); if(stepExecution != null) { ExecutionContext executionContext = stepExecution.getJobExecution().getExecutionContext(); if(executionContext.containsKey("batch.stoppedStep")) { String stepName = executionContext.getString("batch.stoppedStep"); if(stateName.endsWith(stepName)) { if(nextState != null && executionContext.containsKey("batch.restartStep") && StringUtils.hasText(executionContext.getString("batch.restartStep"))) { nextState = findState(stateName, new FlowExecutionStatus(status.getName() + ".RESTART"), stepExecution); } } } } return nextState; }
String exitCode = status.getName(); for (StateTransition stateTransition : set) { if (stateTransition.matches(exitCode) || (exitCode.equals("PENDING") && stateTransition.matches("STOPPED"))) { "Next state not found in flow=%s for state=%s with exit status=%s", getName(), stateName, status.getName()));
@Override public void updateJobExecutionStatus(FlowExecutionStatus status) { JobExecution execution = super.getJobExecution(); execution.setStatus(findBatchStatus(status)); ExitStatus curStatus = execution.getExitStatus(); if(ExitStatus.isNonDefaultExitStatus(curStatus)) { exitStatus = exitStatus.and(new ExitStatus(status.getName())); execution.setExitStatus(exitStatus); } else { exitStatus = exitStatus.and(curStatus); execution.setExitStatus(exitStatus); } } }
@Test public void testBasicProperties() throws Exception { FlowExecution execution = new FlowExecution("foo", new FlowExecutionStatus("BAR")); assertEquals("foo",execution.getName()); assertEquals("BAR",execution.getStatus().getName()); }
/** * @param status The {@link FlowExecutionStatus} to end with * @param name The name of the state */ public EndState(FlowExecutionStatus status, String name) { this(status, status.getName(), name); }
/** * @return true if the status starts with "FAILED" */ public boolean isFail() { return name.startsWith(FAILED.getName()); }
/** * @param status * @return */ private BatchStatus findBatchStatus(FlowExecutionStatus status) { for (BatchStatus batchStatus : BatchStatus.values()) { if (status.getName().startsWith(batchStatus.toString())) { return batchStatus; } } return BatchStatus.UNKNOWN; }
@Override public void updateJobExecutionStatus(FlowExecutionStatus status) { execution.setStatus(findBatchStatus(status)); exitStatus = exitStatus.and(new ExitStatus(status.getName())); execution.setExitStatus(exitStatus); }