@Test public void testBuildSplit() throws Exception { Flow flow = new FlowBuilder<Flow>("subflow").from(step1).end(); SimpleJobBuilder builder = new JobBuilder("flow").repository(jobRepository).start(step2); builder.split(new SimpleAsyncTaskExecutor()).add(flow).end(); builder.preventRestart().build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(2, execution.getStepExecutions().size()); }
@Test public void testBuildWithIntermediateSimpleJob() throws Exception { SimpleJobBuilder builder = new JobBuilder("flow").repository(jobRepository).start(step1); builder.on("COMPLETED").to(step2).end(); builder.preventRestart(); builder.build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(2, execution.getStepExecutions().size()); }
@Test public void testBuildOnOneLine() throws Exception { FlowJobBuilder builder = new JobBuilder("flow").repository(jobRepository).start(step1).on("COMPLETED") .to(step2).end().preventRestart(); builder.build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(2, execution.getStepExecutions().size()); }
@Test public void testBuildWithIntermediateSimpleJobTwoSteps() throws Exception { SimpleJobBuilder builder = new JobBuilder("flow").repository(jobRepository).start(step1).next(step2); builder.on("FAILED").to(step3).end(); builder.build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(2, execution.getStepExecutions().size()); }
@Test public void testBuildSplit_BATCH_2282() throws Exception { Flow flow1 = new FlowBuilder<Flow>("subflow1").from(step1).end(); Flow flow2 = new FlowBuilder<Flow>("subflow2").from(step2).end(); Flow splitFlow = new FlowBuilder<Flow>("splitflow").split(new SimpleAsyncTaskExecutor()).add(flow1, flow2).build(); FlowJobBuilder builder = new JobBuilder("flow").repository(jobRepository).start(splitFlow).end(); builder.preventRestart().build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(2, execution.getStepExecutions().size()); }
@Test public void testBuildOverTwoLines() throws Exception { FlowJobBuilder builder = new JobBuilder("flow").repository(jobRepository).start(step1).on("COMPLETED") .to(step2).end(); builder.preventRestart(); builder.build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(2, execution.getStepExecutions().size()); }
@Test public void testBuildSplitUsingStartAndAdd_BATCH_2346() throws Exception { Flow subflow1 = new FlowBuilder<Flow>("subflow1").from(step2).end(); Flow subflow2 = new FlowBuilder<Flow>("subflow2").from(step3).end(); Flow splitflow = new FlowBuilder<Flow>("splitflow").start(subflow1).split(new SimpleAsyncTaskExecutor()) .add(subflow2).build(); FlowJobBuilder builder = new JobBuilder("flow").repository(jobRepository).start(splitflow).end(); builder.preventRestart().build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(2, execution.getStepExecutions().size()); }
@Test public void test() throws Exception { FlowBuilder<Flow> builder = new FlowBuilder<>("flow"); JobRepository jobRepository = new MapJobRepositoryFactoryBean().getObject(); JobExecution execution = jobRepository.createJobExecution("foo", new JobParameters()); builder.start(new StepSupport("step") { @Override public void execute(StepExecution stepExecution) throws JobInterruptedException, UnexpectedJobExecutionException { } }).end().start(new JobFlowExecutor(jobRepository, new SimpleStepHandler(jobRepository), execution)); }
@Test public void testBuildSubflow() throws Exception { Flow flow = new FlowBuilder<Flow>("subflow").from(step1).end(); JobFlowBuilder builder = new JobBuilder("flow").repository(jobRepository).start(flow); builder.on("COMPLETED").to(step2); builder.end().preventRestart().build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(2, execution.getStepExecutions().size()); }
@Test public void testBuildDecision() throws Exception { JobExecutionDecider decider = new JobExecutionDecider() { private int count = 0; @Override public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) { count++; return count<2 ? new FlowExecutionStatus("ONGOING") : FlowExecutionStatus.COMPLETED; } }; step1.setAllowStartIfComplete(true); SimpleJobBuilder builder = new JobBuilder("flow").repository(jobRepository).start(step1); builder.next(decider).on("COMPLETED").end().from(decider).on("*").to(step1).end(); builder.preventRestart().build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(2, execution.getStepExecutions().size()); }
private void handleFlow(Deque<Flow> executionDeque) { if(!executionDeque.isEmpty()) { this.flowBuilder.start(executionDeque.pop()); } while (!executionDeque.isEmpty()) { this.flowBuilder.next(executionDeque.pop()); } this.visitorDeque.pop(); this.jobDeque.push(this.flowBuilder.end()); }
private Flow handleFlowForSegment(Deque<Flow> resultFlowDeque) { FlowBuilder<Flow> localTaskAppFlowBuilder = new FlowBuilder<>("Flow" + UUID.randomUUID().toString()); if(!resultFlowDeque.isEmpty()) { localTaskAppFlowBuilder.start(resultFlowDeque.pop()); } while (!resultFlowDeque.isEmpty()) { localTaskAppFlowBuilder.next(resultFlowDeque.pop()); } return localTaskAppFlowBuilder.end(); }
private Flow getTaskAppFlow(TaskAppNode taskApp) { String beanName = getBeanName(taskApp); Step currentStep = this.context.getBean(beanName, Step.class); return new FlowBuilder<Flow>(beanName).from(currentStep).end(); } }
@Bean public Job indexMarkdownDocumentsJob(JobBuilderFactory jobBuilderFactory, Step indexingStep, Step optimizeStep) { return jobBuilderFactory.get("indexMarkdownDocuments") .incrementer(new RunIdIncrementer()) .flow(indexingStep) .next(optimizeStep) .end() .build(); }
@Bean public Flow foo() { FlowBuilder<Flow> flowBuilder = new FlowBuilder<>("foo"); flowBuilder.start(step1()) .next(step2()) .end(); return flowBuilder.build(); }
@Bean public Flow bar() { FlowBuilder<Flow> flowBuilder = new FlowBuilder<>("bar"); flowBuilder.start(step1()) .next(step2()) .end(); return flowBuilder.build(); } }
@Bean public Job job() { return jobBuilderFactory.get("job") .start(flow1()) .split(new SimpleAsyncTaskExecutor()).add(flow2()) .end() .build(); }
@Bean public Job transitionJobSimpleNext() { return jobBuilderFactory.get("transitionJobNext") .start(step1()) .on("COMPLETED").to(step2()) .from(step2()).on("COMPLETED").stopAndRestart(step3()) .from(step3()).end() .build(); } }
@Bean public Job conditionalJob(JobBuilderFactory jobs, Step conditionalStep1, Step conditionalStep2, Step conditionalStep3, Step conditionalStep4, Step conditionalStep5) throws Exception { return jobs.get("conditionalJob") .incrementer(new RunIdIncrementer()) .flow(conditionalStep1).on(ExitStatus.FAILED.getExitCode()).to(conditionalStep3) .from(conditionalStep1).on("HOGE").to(conditionalStep4) .from(conditionalStep1).on("*").to(conditionalStep2) .from(conditionalStep4).next(conditionalStep5).on("*").stop() .end() .build(); }
@Bean public Job job() { return jobBuilderFactory.get("job") .start(startStep()) .next(decider()) .from(decider()).on("ODD").to(oddStep()) .from(decider()).on("EVEN").to(evenStep()) .from(oddStep()).on("*").to(decider()) // .from(decider()).on("ODD").to(oddStep()) // .from(decider()).on("EVEN").to(evenStep()) .end() .build(); }