Package org.springframework.batch.core.job.flow.support

Examples of org.springframework.batch.core.job.flow.support.SimpleFlow


    assertEquals(JobInterruptedException.class, jobExecution.getFailureExceptions().get(0).getClass());
  }

  @Test
  public void testInterruptedSplitException() throws Exception {
    SimpleFlow flow = new SimpleFlow("job");
    SimpleFlow flow1 = new SimpleFlow("flow1");
    SimpleFlow flow2 = new SimpleFlow("flow2");

    List<StateTransition> transitions = new ArrayList<StateTransition>();
    transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1") {
      @Override
      public void execute(StepExecution stepExecution) throws JobInterruptedException {
        throw new JobInterruptedException("Stopped");
      }
    }), "end0"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0")));
    flow1.setStateTransitions(new ArrayList<StateTransition>(transitions));
    flow1.afterPropertiesSet();
    flow2.setStateTransitions(new ArrayList<StateTransition>(transitions));
    flow2.afterPropertiesSet();

    transitions = new ArrayList<StateTransition>();
    transitions.add(StateTransition.createStateTransition(new SplitState(Arrays.<Flow> asList(flow1, flow2),
        "split"), "end0"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0")));
View Full Code Here


    assertEquals(JobInterruptedException.class, jobExecution.getFailureExceptions().get(0).getClass());
  }

  @Test
  public void testEndStateStopped() throws Exception {
    SimpleFlow flow = new SimpleFlow("job");
    List<StateTransition> transitions = new ArrayList<StateTransition>();
    transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "end"));
    transitions.add(StateTransition
        .createStateTransition(new EndState(FlowExecutionStatus.STOPPED, "end"), "step2"));
    StepState step2 = new StepState(new StubStep("step2"));
    transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end0"));
    transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end1"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end0")));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end1")));
    flow.setStateTransitions(transitions);
    job.setFlow(flow);
    job.afterPropertiesSet();
    job.doExecute(jobExecution);
    assertEquals(1, jobExecution.getStepExecutions().size());
    assertEquals(BatchStatus.STOPPED, jobExecution.getStatus());
View Full Code Here

    assertEquals(1, jobExecution.getStepExecutions().size());
    assertEquals(BatchStatus.STOPPED, jobExecution.getStatus());
  }

  public void testEndStateFailed() throws Exception {
    SimpleFlow flow = new SimpleFlow("job");
    List<StateTransition> transitions = new ArrayList<StateTransition>();
    transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "end"));
    transitions
    .add(StateTransition.createStateTransition(new EndState(FlowExecutionStatus.FAILED, "end"), "step2"));
    transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.FAILED
        .getExitCode(), "end0"));
    transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")),
        ExitStatus.COMPLETED.getExitCode(), "end1"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end0")));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end1")));
    flow.setStateTransitions(transitions);
    job.setFlow(flow);
    job.afterPropertiesSet();
    job.doExecute(jobExecution);
    assertEquals(BatchStatus.FAILED, jobExecution.getStatus());
    assertEquals(1, jobExecution.getStepExecutions().size());
View Full Code Here

    assertEquals(1, jobExecution.getStepExecutions().size());
  }

  @Test
  public void testEndStateStoppedWithRestart() throws Exception {
    SimpleFlow flow = new SimpleFlow("job");
    List<StateTransition> transitions = new ArrayList<StateTransition>();
    transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "end"));
    transitions.add(StateTransition
        .createStateTransition(new EndState(FlowExecutionStatus.STOPPED, "end"), "step2"));
    StepState step2 = new StepState(new StubStep("step2"));
    transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end0"));
    transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end1"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0")));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end1")));
    flow.setStateTransitions(transitions);
    job.setFlow(flow);
    job.afterPropertiesSet();

    // To test a restart we have to use the AbstractJob.execute()...
    job.execute(jobExecution);
View Full Code Here

  }

  @Test
  public void testBranching() throws Exception {
    SimpleFlow flow = new SimpleFlow("job");
    List<StateTransition> transitions = new ArrayList<StateTransition>();
    StepState step1 = new StepState(new StubStep("step1"));
    transitions.add(StateTransition.createStateTransition(step1, "step2"));
    transitions.add(StateTransition.createStateTransition(step1, "COMPLETED", "step3"));
    StepState step2 = new StepState(new StubStep("step2"));
    transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end0"));
    transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end1"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0")));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end1")));
    StepState step3 = new StepState(new StubStep("step3"));
    transitions.add(StateTransition.createStateTransition(step3, ExitStatus.FAILED.getExitCode(), "end2"));
    transitions.add(StateTransition.createStateTransition(step3, ExitStatus.COMPLETED.getExitCode(), "end3"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end2")));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end3")));
    flow.setStateTransitions(transitions);
    flow.setStateTransitionComparator(new DefaultStateTransitionComparator());
    job.setFlow(flow);
    job.afterPropertiesSet();
    job.doExecute(jobExecution);
    StepExecution stepExecution = getStepExecution(jobExecution, "step3");
    assertEquals(ExitStatus.COMPLETED, stepExecution.getExitStatus());
View Full Code Here

    assertEquals(2, jobExecution.getStepExecutions().size());
  }

  @Test
  public void testBasicFlow() throws Throwable {
    SimpleFlow flow = new SimpleFlow("job");
    List<StateTransition> transitions = new ArrayList<StateTransition>();
    transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step")), "end0"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0")));
    flow.setStateTransitions(transitions);
    job.setFlow(flow);
    job.execute(jobExecution);
    if (!jobExecution.getAllFailureExceptions().isEmpty()) {
      throw jobExecution.getAllFailureExceptions().get(0);
    }
View Full Code Here

  }

  @Test
  public void testDecisionFlow() throws Throwable {

    SimpleFlow flow = new SimpleFlow("job");
    JobExecutionDecider decider = new JobExecutionDecider() {
      @Override
      public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) {
        assertNotNull(stepExecution);
        return new FlowExecutionStatus("SWITCH");
      }
    };

    List<StateTransition> transitions = new ArrayList<StateTransition>();
    transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "decision"));
    DecisionState decision = new DecisionState(decider, "decision");
    transitions.add(StateTransition.createStateTransition(decision, "step2"));
    transitions.add(StateTransition.createStateTransition(decision, "SWITCH", "step3"));
    StepState step2 = new StepState(new StubStep("step2"));
    transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end0"));
    transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end1"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0")));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end1")));
    StepState step3 = new StepState(new StubStep("step3"));
    transitions.add(StateTransition.createStateTransition(step3, ExitStatus.FAILED.getExitCode(), "end2"));
    transitions.add(StateTransition.createStateTransition(step3, ExitStatus.COMPLETED.getExitCode(), "end3"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end2")));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end3")));
    flow.setStateTransitions(transitions);
    flow.setStateTransitionComparator(new DefaultStateTransitionComparator());

    job.setFlow(flow);
    job.doExecute(jobExecution);
    StepExecution stepExecution = getStepExecution(jobExecution, "step3");
    if (!jobExecution.getAllFailureExceptions().isEmpty()) {
View Full Code Here

  }

  @Test
  public void testDecisionFlowWithExceptionInDecider() throws Throwable {

    SimpleFlow flow = new SimpleFlow("job");
    JobExecutionDecider decider = new JobExecutionDecider() {
      @Override
      public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) {
        assertNotNull(stepExecution);
        throw new RuntimeException("Foo");
      }
    };

    List<StateTransition> transitions = new ArrayList<StateTransition>();
    transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "decision"));
    DecisionState decision = new DecisionState(decider, "decision");
    transitions.add(StateTransition.createStateTransition(decision, "step2"));
    transitions.add(StateTransition.createStateTransition(decision, "SWITCH", "step3"));
    StepState step2 = new StepState(new StubStep("step2"));
    transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end0"));
    transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end1"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0")));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end1")));
    StepState step3 = new StepState(new StubStep("step3"));
    transitions.add(StateTransition.createStateTransition(step3, ExitStatus.FAILED.getExitCode(), "end2"));
    transitions.add(StateTransition.createStateTransition(step3, ExitStatus.COMPLETED.getExitCode(), "end3"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end2")));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end3")));
    flow.setStateTransitions(transitions);

    job.setFlow(flow);
    try {
      job.execute(jobExecution);
    }
View Full Code Here

    }
  }

  @Test
  public void testGetStepExists() throws Exception {
    SimpleFlow flow = new SimpleFlow("job");
    List<StateTransition> transitions = new ArrayList<StateTransition>();
    transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2"));
    transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), "end0"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0")));
    flow.setStateTransitions(transitions);
    flow.afterPropertiesSet();
    job.setFlow(flow);
    job.afterPropertiesSet();

    Step step = job.getStep("step2");
    assertNotNull(step);
View Full Code Here

    assertEquals("step2", step.getName());
  }

  @Test
  public void testGetPartitionedStep() throws Exception {
    SimpleFlow flow = new SimpleFlow("job");
    List<StateTransition> transitions = new ArrayList<StateTransition>();
    PartitionStep step = new PartitionStep();
    step.setName("step1");
    JsrPartitionHandler partitionHandler = new JsrPartitionHandler();
    partitionHandler.setPropertyContext(new BatchPropertyContext());
    partitionHandler.setPartitions(3);
    partitionHandler.setJobRepository(jobRepository);
    partitionHandler.setStep(new StubStep("subStep"));
    partitionHandler.afterPropertiesSet();
    step.setPartitionHandler(partitionHandler);
    step.setStepExecutionSplitter(new JsrStepExecutionSplitter(jobRepository, false, "step1", true));
    step.setJobRepository(jobRepository);
    step.afterPropertiesSet();
    transitions.add(StateTransition.createStateTransition(new StepState("job.step", step), "end0"));
    transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0")));
    flow.setStateTransitions(transitions);
    flow.afterPropertiesSet();
    job.setFlow(flow);
    job.afterPropertiesSet();

    job.execute(jobRepository.createJobExecution("partitionJob", new JobParameters()));
View Full Code Here

TOP

Related Classes of org.springframework.batch.core.job.flow.support.SimpleFlow

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.