Java 类org.springframework.batch.core.StepExecution 实例源码

项目:eMonocot    文件:PalmwebIntegrationTest.java   
@Test
public void testCreateGenericArchive() throws NoSuchJobException,
JobExecutionAlreadyRunningException, JobRestartException,
JobInstanceAlreadyCompleteException, JobParametersInvalidException, IOException {
    Map<String, JobParameter> parameters =
            new HashMap<String, JobParameter>();

    JobParameters jobParameters = new JobParameters(parameters);

    Job palmwebArchive = jobLocator.getJob("PalmWeb");
    assertNotNull("Palmweb must not be null",  palmwebArchive);
    JobExecution jobExecution = jobLauncher.run(palmwebArchive, jobParameters);
    assertEquals("The job should complete successfully",jobExecution.getExitStatus().getExitCode(),"COMPLETED");
    for (StepExecution stepExecution : jobExecution.getStepExecutions()) {
        logger.info(stepExecution.getStepName() + " "
                + stepExecution.getReadCount() + " "
                + stepExecution.getFilterCount() + " "
                + stepExecution.getWriteCount() + " " + stepExecution.getCommitCount());
    }
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testSequentialAndSplit() {
    setupContextForGraph("AAA && <BBB||CCC||DDD> && EEE");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    Set<String> stepNames= getStepNames(stepExecutions);
    assertEquals(5, stepExecutions.size());
    assertTrue(stepNames.contains("AAA_0"));
    assertTrue(stepNames.contains("BBB_0"));
    assertTrue(stepNames.contains("CCC_0"));
    assertTrue(stepNames.contains("DDD_0"));
    assertTrue(stepNames.contains("EEE_0"));
    List<StepExecution> sortedStepExecution =
            getSortedStepExecutions(stepExecutions);
    assertEquals("AAA_0", sortedStepExecution.get(0).getStepName());
    assertEquals("EEE_0", sortedStepExecution.get(4).getStepName());
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testSequentialTransitionAndSplit() {
    setupContextForGraph("AAA && FFF 'FAILED' -> EEE && <BBB||CCC> && DDD");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    Set<String> stepNames= getStepNames(stepExecutions);
    assertEquals(5, stepExecutions.size());
    assertTrue(stepNames.contains("AAA_0"));
    assertTrue(stepNames.contains("BBB_0"));
    assertTrue(stepNames.contains("CCC_0"));
    assertTrue(stepNames.contains("DDD_0"));
    assertTrue(stepNames.contains("FFF_0"));
    List<StepExecution> sortedStepExecution =
            getSortedStepExecutions(stepExecutions);
    assertEquals("AAA_0", sortedStepExecution.get(0).getStepName());
    assertEquals("DDD_0", sortedStepExecution.get(4).getStepName());
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testSequentialAndSplitWithFlow() {
    setupContextForGraph("AAA && <BBB && FFF||CCC||DDD> && EEE");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    Set<String> stepNames= getStepNames(stepExecutions);
    assertEquals(6, stepExecutions.size());
    assertTrue(stepNames.contains("AAA_0"));
    assertTrue(stepNames.contains("BBB_0"));
    assertTrue(stepNames.contains("CCC_0"));
    assertTrue(stepNames.contains("DDD_0"));
    assertTrue(stepNames.contains("EEE_0"));
    assertTrue(stepNames.contains("FFF_0"));

    List<StepExecution> sortedStepExecution =
            getSortedStepExecutions(stepExecutions);
    assertEquals("AAA_0", sortedStepExecution.get(0).getStepName());
    assertEquals("EEE_0", sortedStepExecution.get(5).getStepName());
}
项目:spring-batch-support    文件:StepExecutionToSimpleStepConverter.java   
@Override
public SimpleStep convert(StepExecution source, SimpleStep simpleStep) {
    SimpleStep target = simpleStep != null ? simpleStep : new SimpleStep();
    target.stepName(source.getStepName())
          .status(source.getStatus().toString())
          .readCount(source.getReadCount())
          .writeCount(source.getWriteCount())
          .commitCount(source.getCommitCount())
          .rollbackCount(source.getRollbackCount())
          .readSkipCount(source.getReadSkipCount())
          .processSkipCount(source.getProcessSkipCount())
          .writeSkipCount(source.getWriteSkipCount())
          .startTime(source.getStartTime())
          .endTime(source.getEndTime())
          .exitStatus(source.getExitStatus().toString())
          .lastUpdated(source.getLastUpdated())
          .exitStatus(source.getExitStatus().toString());
    return target;
}
项目:spring-cloud-dataflow    文件:JobCommandTests.java   
private static void createSampleJob(String jobName, int jobExecutionCount) {
    JobInstance instance = jobRepository.createJobInstance(jobName, new JobParameters());
    jobInstances.add(instance);
    TaskExecution taskExecution = dao.createTaskExecution(jobName, new Date(), new ArrayList<String>(), null);
    Map<String, JobParameter> jobParameterMap = new HashMap<>();
    jobParameterMap.put("foo", new JobParameter("FOO", true));
    jobParameterMap.put("bar", new JobParameter("BAR", false));
    JobParameters jobParameters = new JobParameters(jobParameterMap);
    JobExecution jobExecution = null;
    for (int i = 0; i < jobExecutionCount; i++) {
        jobExecution = jobRepository.createJobExecution(instance, jobParameters, null);
        taskBatchDao.saveRelationship(taskExecution, jobExecution);
        StepExecution stepExecution = new StepExecution("foobar", jobExecution);
        jobRepository.add(stepExecution);
    }
}
项目:powop    文件:CheckingStepExcutionListener.java   
@Override
public ExitStatus afterStep(StepExecution step) {
    List<Throwable> exceptions = step.getFailureExceptions();

    if(exceptions != null && !exceptions.isEmpty()){
        ExitStatus exitStatus = new ExitStatus("DELETE FAILED");
        for(Throwable exception : exceptions){
            if(ResourceIsNotDeletableException.class.isInstance(exception.getCause())){
                String message = exception.getMessage();
                if(message != null){
                    exitStatus.addExitDescription(message);
                    logger.debug(exitStatus.toString());
                    return exitStatus;
                }

            }else{
                exitStatus.addExitDescription("unknown failure - this resource could not be deleted");
                logger.debug(exitStatus.toString());
                return exitStatus;
            }
        }
    }
    logger.debug("READY FOR DELETE");
    return new ExitStatus("READY FOR DELETE");
}
项目:spring-cloud-dataflow    文件:StepExecutionHistory.java   
public void append(StepExecution stepExecution) {
    if (stepExecution.getEndTime() == null) {
        // ignore unfinished executions
        return;
    }
    Date startTime = stepExecution.getStartTime();
    Date endTime = stepExecution.getEndTime();
    long time = endTime.getTime() - startTime.getTime();
    duration.append(time);
    if (stepExecution.getReadCount() > 0) {
        durationPerRead.append(time / stepExecution.getReadCount());
    }
    count++;
    commitCount.append(stepExecution.getCommitCount());
    rollbackCount.append(stepExecution.getRollbackCount());
    readCount.append(stepExecution.getReadCount());
    writeCount.append(stepExecution.getWriteCount());
    filterCount.append(stepExecution.getFilterCount());
    readSkipCount.append(stepExecution.getReadSkipCount());
    writeSkipCount.append(stepExecution.getWriteSkipCount());
    processSkipCount.append(stepExecution.getProcessSkipCount());
}
项目:spring-cloud-dataflow    文件:DataflowTemplateTests.java   
private void assertCorrectMixins(RestTemplate restTemplate) {
    boolean containsMappingJackson2HttpMessageConverter = false;

    for (HttpMessageConverter<?> converter : restTemplate.getMessageConverters()) {
        if (converter instanceof MappingJackson2HttpMessageConverter) {
            containsMappingJackson2HttpMessageConverter = true;

            final MappingJackson2HttpMessageConverter jacksonConverter = (MappingJackson2HttpMessageConverter) converter;
            final ObjectMapper objectMapper = jacksonConverter.getObjectMapper();

            assertNotNull(objectMapper.findMixInClassFor(JobExecution.class));
            assertNotNull(objectMapper.findMixInClassFor(JobParameters.class));
            assertNotNull(objectMapper.findMixInClassFor(JobParameter.class));
            assertNotNull(objectMapper.findMixInClassFor(JobInstance.class));
            assertNotNull(objectMapper.findMixInClassFor(ExitStatus.class));
            assertNotNull(objectMapper.findMixInClassFor(StepExecution.class));
            assertNotNull(objectMapper.findMixInClassFor(ExecutionContext.class));
            assertNotNull(objectMapper.findMixInClassFor(StepExecutionHistory.class));
        }
    }

    if (!containsMappingJackson2HttpMessageConverter) {
        fail("Expected that the restTemplate's list of Message Converters contained a "
                + "MappingJackson2HttpMessageConverter");
    }
}
项目:spring-cloud-dataflow    文件:DefaultTaskJobService.java   
/**
 * Retrieves Pageable list of {@link JobExecution}s from the JobRepository and matches the
 * data with a task id.
 *
 * @param pageable enumerates the data to be returned.
 * @return List containing {@link TaskJobExecution}s.
 */
@Override
public List<TaskJobExecution> listJobExecutions(Pageable pageable) throws NoSuchJobExecutionException {
    Assert.notNull(pageable, "pageable must not be null");
    List<JobExecution> jobExecutions = new ArrayList<>(
            jobService.listJobExecutions(pageable.getOffset(), pageable.getPageSize()));
    for (JobExecution jobExecution : jobExecutions) {
        Collection<StepExecution> stepExecutions = jobService.getStepExecutions(jobExecution.getId());
        List<StepExecution> validStepExecutions = new ArrayList<>();
        for (StepExecution stepExecution : stepExecutions) {
            if (stepExecution.getId() != null) {
                validStepExecutions.add(stepExecution);
            }
        }
        jobExecution.addStepExecutions(validStepExecutions);
    }
    return getTaskJobExecutionsForList(jobExecutions);
}
项目:spring-cloud-dataflow    文件:JobStepExecutionControllerTests.java   
@Before
public void setupMockMVC() {
    this.mockMvc = MockMvcBuilders.webAppContextSetup(wac)
            .defaultRequest(get("/").accept(MediaType.APPLICATION_JSON)).build();
    if (!initialized) {
        createStepExecution(JOB_NAME_ORIG, STEP_NAME_ORIG);
        createStepExecution(JOB_NAME_FOO, STEP_NAME_ORIG, STEP_NAME_FOO);
        createStepExecution(JOB_NAME_FOOBAR, STEP_NAME_ORIG, STEP_NAME_FOO, STEP_NAME_FOOBAR);
        initialized = true;
    }
    for (HttpMessageConverter<?> converter : adapter.getMessageConverters()) {
        if (converter instanceof MappingJackson2HttpMessageConverter) {
            final MappingJackson2HttpMessageConverter jacksonConverter = (MappingJackson2HttpMessageConverter) converter;
            jacksonConverter.getObjectMapper().addMixIn(StepExecution.class, StepExecutionJacksonMixIn.class);
            jacksonConverter.getObjectMapper().addMixIn(ExecutionContext.class, ExecutionContextJacksonMixIn.class);
            jacksonConverter.getObjectMapper().setDateFormat(new ISO8601DateFormatWithMilliSeconds());
        }
    }
}
项目:spring-cloud-dataflow    文件:StepExecutionJacksonMixInTests.java   
/**
 * Assert that by using the {@link ExecutionContextJacksonMixIn} Jackson renders the
 * Step Execution Context correctly.
 *
 * @throws JsonProcessingException if a Json generation error occurs.
 */
@Test
public void testSerializationOfSingleStepExecution() throws JsonProcessingException {

    final ObjectMapper objectMapper = new ObjectMapper();

    objectMapper.addMixIn(StepExecution.class, StepExecutionJacksonMixIn.class);
    objectMapper.addMixIn(ExecutionContext.class, ExecutionContextJacksonMixIn.class);

    final StepExecution stepExecution = getStepExecution();
    final String result = objectMapper.writeValueAsString(stepExecution);

    assertThat(result, not(containsString("\"executionContext\":{\"dirty\":true,\"empty\":false}")));
    assertThat(result, containsString("\"executionContext\":{\"dirty\":true,\"empty\":false,\"values\":[{"));

    assertThat(result, containsString("{\"counter\":1234}"));
    assertThat(result, containsString("{\"myDouble\":1.123456}"));
    assertThat(result, containsString("{\"Josh\":4444444444}"));
    assertThat(result, containsString("{\"awesomeString\":\"Yep\"}"));
    assertThat(result, containsString("{\"hello\":\"world\""));
    assertThat(result, containsString("{\"counter2\":9999}"));
}
项目:marklogic-spring-batch    文件:AdaptedStepExecution.java   
public AdaptedStepExecution(StepExecution stepExec) {
    this.setId(stepExec.getId());
    this.setJobInstanceId(stepExec.getJobExecution().getJobInstance().getId());
    this.setStepName(stepExec.getStepName());
    this.setStatus(stepExec.getStatus());
    this.setReadSkipCount(stepExec.getReadSkipCount());
    this.setWriteSkipCount(stepExec.getWriteSkipCount());
    this.setProcessSkipCount(stepExec.getProcessSkipCount());
    this.setRollbackCount(stepExec.getRollbackCount());
    this.setJobExecutionId(stepExec.getJobExecutionId());
    this.setReadCount(stepExec.getReadCount());
    this.setWriteCount(stepExec.getWriteCount());
    this.setFilterCount(stepExec.getFilterCount());
    this.setVersion(stepExec.getVersion());
    this.setExitStatus(stepExec.getExitStatus());
    this.setVersion(stepExec.getVersion());
    this.setJobName(stepExec.getJobExecution().getJobInstance().getJobName());
    this.setStartTime(stepExec.getStartTime());
    this.setEndTime(stepExec.getEndTime());
    this.setLastUpdated(stepExec.getLastUpdated()); 
    this.setExecutionContext(stepExec.getExecutionContext());
}
项目:eMonocot    文件:SitemapFilesListener.java   
public ExitStatus afterStep(StepExecution stepExecution) {
    logger.debug("After Step " + currentStep.getStepName());

    try {
        Url u = new Url();
        u.setLastmod(ISODateTimeFormat.dateTime().print((ReadableInstant) null));
        u.setLoc(new URL(portalBaseUrl +"/" + sitemapDir + "/" + currentFile.getFilename()));
        sitemapNames.add(u);
    } catch (MalformedURLException e) {
        logger.error("Unable create Url for sitemap", e);
    }

    //reset counts to nulls to support beforeStep()
    currentStep = null;
    currentFile = null;
    chunkOfFile = 0;
    commitSize = 0;

    return stepExecution.getExitStatus();
}
项目:spring-cloud-task    文件:JobExecutionEvent.java   
/**
 * Constructor for the StepExecution to initialize the DTO.
 *
 * @param original the StepExecution to build this DTO around.
 */
public JobExecutionEvent(JobExecution original) {
    this.jobParameters = new JobParametersEvent(original.getJobParameters().getParameters());
    this.jobInstance = new JobInstanceEvent(original.getJobInstance().getId(), original.getJobInstance().getJobName());
    for(StepExecution stepExecution : original.getStepExecutions()){
        stepExecutions.add(new StepExecutionEvent(stepExecution));
    }
    this.status = original.getStatus();
    this.startTime = original.getStartTime();
    this.createTime = original.getCreateTime();
    this.endTime = original.getEndTime();
    this.lastUpdated = original.getLastUpdated();
    this.exitStatus = new ExitStatus(original.getExitStatus());
    this.executionContext = original.getExecutionContext();
    this.failureExceptions = original.getFailureExceptions();
    this.jobConfigurationName = original.getJobConfigurationName();
    this.setId(original.getId());
    this.setVersion(original.getVersion());
}
项目:eMonocot    文件:PdfWritingTest.java   
@Test
public final void testBatchReportWriter() throws Exception {

    JasperReport jasperReport = JasperCompileManager.compileReport(
            new ClassPathResource("org/emonocot/job/download/reports/name_report1.jrxml").getInputStream());
    JRVerticalReportWriter writer = new JRVerticalReportWriter(jasperReport);
    writer.setDefaultOutputDir("target");
    StepExecution se = new StepExecution("testStep", new JobExecution(1L));
    writer.beforeStep(se);
    int chunkSize = 10;
    for (int i = 0; i <= (itemsToWrite.size()/chunkSize); i++) {
        List<Taxon> itemList = new ArrayList<Taxon>();
        for (int j = 0; j < chunkSize; j++) {
            try {
                itemList.add(itemsToWrite.get(i*chunkSize+j));
            } catch (IndexOutOfBoundsException e) {
                break;
            }
        }
        writer.write(itemList);

    }
    writer.afterStep(se);

}
项目:eMonocot    文件:ImageProcessingJobIntegrationTest.java   
/**
 *
 * @throws IOException
 *             if a temporary file cannot be created.
 * @throws NoSuchJobException
 *             if SpeciesPageHarvestingJob cannot be located
 * @throws JobParametersInvalidException
 *             if the job parameters are invalid
 * @throws JobInstanceAlreadyCompleteException
 *             if the job has already completed
 * @throws JobRestartException
 *             if the job cannot be restarted
 * @throws JobExecutionAlreadyRunningException
 *             if the job is already running
 */
@Test
public final void testNotModifiedResponse() throws IOException,
NoSuchJobException, JobExecutionAlreadyRunningException,
JobRestartException, JobInstanceAlreadyCompleteException,
JobParametersInvalidException {
    Map<String, JobParameter> parameters = new HashMap<String, JobParameter>();
    parameters.put("query.string", new JobParameter("select i from Image i"));

    JobParameters jobParameters = new JobParameters(parameters);

    Job job = jobLocator.getJob("ImageProcessing");
    assertNotNull("ImageProcessing must not be null", job);
    JobExecution jobExecution = jobLauncher.run(job, jobParameters);
    assertEquals("The job should complete successfully",jobExecution.getExitStatus().getExitCode(),"COMPLETED");

    for (StepExecution stepExecution : jobExecution.getStepExecutions()) {
        logger.info(stepExecution.getStepName() + " "
                + stepExecution.getReadCount() + " "
                + stepExecution.getFilterCount() + " "
                + stepExecution.getWriteCount());
    }
}
项目:eMonocot    文件:JobExecutionInfo.java   
public JobExecutionInfo(JobExecution jobExecution, String baseUrl) {
    resourceIdentifier = jobExecution.getJobInstance().getJobParameters().getString("resource.identifier");
    DateTime sTime = new DateTime(jobExecution.getStartTime());
    DateTime eTime = new DateTime(jobExecution.getEndTime());
    duration = eTime.minus(sTime.getMillis());
    startTime = sTime;
    exitDescription = jobExecution.getExitStatus().getExitDescription();
    exitCode = jobExecution.getExitStatus().getExitCode();
    id = jobExecution.getId();
    jobInstance = baseUrl + "/jobs/"    + jobExecution.getJobInstance().getJobName() + "/"  + jobExecution.getJobInstance().getId();
    resource = baseUrl + "/jobs/executions/"    + jobExecution.getId();
    this.baseUrl = baseUrl;
    status = jobExecution.getStatus();

    Integer writeSkip = 0;
    for (StepExecution stepExecution : jobExecution.getStepExecutions()) {
        recordsRead += stepExecution.getReadCount();
        readSkip += stepExecution.getReadSkipCount();
        processSkip += stepExecution.getProcessSkipCount();
        written += stepExecution.getWriteCount();
        writeSkip += stepExecution.getWriteSkipCount();
    }
}
项目:spring-cloud-task    文件:DeployerStepExecutionHandlerTests.java   
@Test
public void testJobInterruptedException() throws Exception {
    StepExecution workerStep = new StepExecution("workerStep", new JobExecution(1L), 2L);

    when(this.environment.containsProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_JOB_EXECUTION_ID)).thenReturn(true);
    when(this.environment.containsProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_STEP_EXECUTION_ID)).thenReturn(true);
    when(this.environment.containsProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_STEP_NAME)).thenReturn(true);
    when(this.environment.getProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_STEP_NAME)).thenReturn("workerStep");
    when(this.beanFactory.getBeanNamesForType(Step.class)).thenReturn(new String[] {"workerStep", "foo", "bar"});
    when(this.environment.getProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_STEP_EXECUTION_ID)).thenReturn("2");
    when(this.environment.getProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_JOB_EXECUTION_ID)).thenReturn("1");
    when(this.jobExplorer.getStepExecution(1L, 2L)).thenReturn(workerStep);
    when(this.environment.getProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_STEP_NAME)).thenReturn("workerStep");
    when(this.beanFactory.getBean("workerStep", Step.class)).thenReturn(this.step);
    doThrow(new JobInterruptedException("expected")).when(this.step).execute(workerStep);

    handler.run();

    verify(this.jobRepository).update(this.stepExecutionArgumentCaptor.capture());

    assertEquals(BatchStatus.STOPPED, this.stepExecutionArgumentCaptor.getValue().getStatus());
}
项目:marklogic-spring-batch    文件:MarshallSpringBatchPojoToXmlTest.java   
@Test
public void marshallStepExecutionTest() throws Exception {
    JobInstance jobInstance = new JobInstance(1234L, "test");
    JobExecution jobExecution = new JobExecution(123L);
    jobExecution.setJobInstance(jobInstance);
    StepExecution step = new StepExecution("testStep", jobExecution);
    step.setLastUpdated(new Date(System.currentTimeMillis()));
    StepExecutionAdapter adapter = new StepExecutionAdapter();
    AdaptedStepExecution adStep = adapter.marshal(step);
    jaxb2Marshaller.marshal(adStep, result);
    Fragment frag = new Fragment(new DOMBuilder().build(doc));
    frag.setNamespaces(getNamespaceProvider().getNamespaces());
    frag.prettyPrint();
    frag.assertElementExists("/msb:stepExecution");
    frag.assertElementExists("/msb:stepExecution/msb:lastUpdated");
    frag.assertElementValue("/msb:stepExecution/msb:stepName", "testStep");
}
项目:spring-cloud-task    文件:DeployerStepExecutionHandlerTests.java   
@Test
public void testRuntimeException() throws Exception {
    StepExecution workerStep = new StepExecution("workerStep", new JobExecution(1L), 2L);

    when(this.environment.containsProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_JOB_EXECUTION_ID)).thenReturn(true);
    when(this.environment.containsProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_STEP_EXECUTION_ID)).thenReturn(true);
    when(this.environment.containsProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_STEP_NAME)).thenReturn(true);
    when(this.environment.getProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_STEP_NAME)).thenReturn("workerStep");
    when(this.beanFactory.getBeanNamesForType(Step.class)).thenReturn(new String[] {"workerStep", "foo", "bar"});
    when(this.environment.getProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_STEP_EXECUTION_ID)).thenReturn("2");
    when(this.environment.getProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_JOB_EXECUTION_ID)).thenReturn("1");
    when(this.jobExplorer.getStepExecution(1L, 2L)).thenReturn(workerStep);
    when(this.environment.getProperty(DeployerPartitionHandler.SPRING_CLOUD_TASK_STEP_NAME)).thenReturn("workerStep");
    when(this.beanFactory.getBean("workerStep", Step.class)).thenReturn(this.step);
    doThrow(new RuntimeException("expected")).when(this.step).execute(workerStep);

    handler.run();

    verify(this.jobRepository).update(this.stepExecutionArgumentCaptor.capture());

    assertEquals(BatchStatus.FAILED, this.stepExecutionArgumentCaptor.getValue().getStatus());
}
项目:composed-task-runner    文件:TaskLauncherTaskletTests.java   
private ChunkContext chunkContext ()
{
    final long JOB_EXECUTION_ID = 123L;
    final String STEP_NAME = "myTestStep";

    JobExecution jobExecution = new JobExecution(JOB_EXECUTION_ID);
    StepExecution stepExecution = new StepExecution(STEP_NAME, jobExecution);
    StepContext stepContext = new StepContext(stepExecution);
    return new ChunkContext(stepContext);
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void singleTest() {
    setupContextForGraph("AAA");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    assertEquals(1, stepExecutions.size());
    StepExecution stepExecution = stepExecutions.iterator().next();
    assertEquals("AAA_0", stepExecution.getStepName());
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testFailedGraph() {
    setupContextForGraph("failedStep && AAA");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    assertEquals(1, stepExecutions.size());
    StepExecution stepExecution = stepExecutions.iterator().next();
    assertEquals("failedStep_0", stepExecution.getStepName());
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testEmbeddedFailedGraph() {
    setupContextForGraph("AAA && failedStep && BBB");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    assertEquals(2, stepExecutions.size());
    List<StepExecution> sortedStepExecution =
            getSortedStepExecutions(stepExecutions);
    assertEquals("AAA_0", sortedStepExecution.get(0).getStepName());
    assertEquals("failedStep_0", sortedStepExecution.get(1).getStepName());
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Ignore("Disabling till parser can support duplicate tasks")
@Test
public void duplicateTaskTest() {
    setupContextForGraph("AAA && AAA");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    assertEquals(2, stepExecutions.size());
    List<StepExecution> sortedStepExecution =
            getSortedStepExecutions(stepExecutions);
    assertEquals("AAA_1", sortedStepExecution.get(0).getStepName());
    assertEquals("AAA_0", sortedStepExecution.get(1).getStepName());

}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testSequential() {
    setupContextForGraph("AAA && BBB && CCC");
    List<StepExecution> stepExecutions = getSortedStepExecutions(getStepExecutions());
    assertEquals(3, stepExecutions.size());
    Iterator<StepExecution> iterator = stepExecutions.iterator();
    StepExecution stepExecution = iterator.next();
    assertEquals("AAA_0", stepExecution.getStepName());
    stepExecution = iterator.next();
    assertEquals("BBB_0", stepExecution.getStepName());
    stepExecution = iterator.next();
    assertEquals("CCC_0", stepExecution.getStepName());
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void splitTest() {
    setupContextForGraph("<AAA||BBB||CCC>");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    Set<String> stepNames= getStepNames(stepExecutions);
    assertEquals(3, stepExecutions.size());
    assertTrue(stepNames.contains("AAA_0"));
    assertTrue(stepNames.contains("BBB_0"));
    assertTrue(stepNames.contains("CCC_0"));
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void twoSplitTest() {
    setupContextForGraph("<AAA||BBB||CCC> && <DDD||EEE>");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    Set<String> stepNames= getStepNames(stepExecutions);
    assertEquals(5, stepExecutions.size());
    assertTrue(stepNames.contains("AAA_0"));
    assertTrue(stepNames.contains("BBB_0"));
    assertTrue(stepNames.contains("CCC_0"));
    assertTrue(stepNames.contains("DDD_0"));
    assertTrue(stepNames.contains("EEE_0"));

}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testSequentialTransitionAndSplitFailed() {
    setupContextForGraph("AAA && failedStep 'FAILED' -> EEE && FFF && <BBB||CCC> && DDD");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    Set<String> stepNames= getStepNames(stepExecutions);
    assertEquals(3, stepExecutions.size());
    assertTrue(stepNames.contains("AAA_0"));
    assertTrue(stepNames.contains("failedStep_0"));
    assertTrue(stepNames.contains("EEE_0"));
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testSequentialAndFailedSplit() {
    setupContextForGraph("AAA && <BBB||failedStep||DDD> && EEE");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    Set<String> stepNames= getStepNames(stepExecutions);
    assertEquals(4, stepExecutions.size());
    assertTrue(stepNames.contains("AAA_0"));
    assertTrue(stepNames.contains("BBB_0"));
    assertTrue(stepNames.contains("DDD_0"));
    assertTrue(stepNames.contains("failedStep_0"));
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testFailedBasicTransition() {
    setupContextForGraph("failedStep 'FAILED' -> AAA * -> BBB");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    Set<String> stepNames= getStepNames(stepExecutions);
    assertEquals(2, stepExecutions.size());
    assertTrue(stepNames.contains("failedStep_0"));
    assertTrue(stepNames.contains("AAA_0"));
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testSuccessBasicTransition() {
    setupContextForGraph("AAA 'FAILED' -> BBB * -> CCC");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    Set<String> stepNames= getStepNames(stepExecutions);
    assertEquals(2, stepExecutions.size());
    assertTrue(stepNames.contains("AAA_0"));
    assertTrue(stepNames.contains("CCC_0"));
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testSuccessBasicTransitionWithTransition() {
    setupContextForGraph("AAA 'FAILED' -> BBB && CCC 'FAILED' -> DDD '*' -> EEE");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    Set<String> stepNames= getStepNames(stepExecutions);
    assertEquals(3, stepExecutions.size());
    assertTrue(stepNames.contains("AAA_0"));
    assertTrue(stepNames.contains("CCC_0"));
    assertTrue(stepNames.contains("EEE_0"));
    List<StepExecution> sortedStepExecution =
            getSortedStepExecutions(stepExecutions);
    assertEquals("AAA_0", sortedStepExecution.get(0).getStepName());
    assertEquals("EEE_0", sortedStepExecution.get(2).getStepName());
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
@Test
public void testWildCardOnlyInLastPosition() {
        setupContextForGraph("AAA 'FAILED' -> BBB && CCC * -> DDD ");
    Collection<StepExecution> stepExecutions = getStepExecutions();
    Set<String> stepNames= getStepNames(stepExecutions);
    assertEquals(3, stepExecutions.size());
    assertTrue(stepNames.contains("AAA_0"));
    assertTrue(stepNames.contains("CCC_0"));
    assertTrue(stepNames.contains("DDD_0"));
    List<StepExecution> sortedStepExecution =
            getSortedStepExecutions(stepExecutions);
    assertEquals("AAA_0", sortedStepExecution.get(0).getStepName());
    assertEquals("DDD_0", sortedStepExecution.get(2).getStepName());
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
private Set<String> getStepNames(Collection<StepExecution> stepExecutions) {
    Set<String> result = new HashSet<>();
    for(StepExecution stepExecution : stepExecutions) {
        result.add(stepExecution.getStepName());
    }
    return result;
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
private Collection<StepExecution> getStepExecutions() {
    JobExplorer jobExplorer = this.applicationContext.getBean(JobExplorer.class);
    List<JobInstance> jobInstances = jobExplorer.findJobInstancesByJobName("job", 0, 1);
    assertEquals(1, jobInstances.size());
    JobInstance jobInstance = jobInstances.get(0);
    List<JobExecution> jobExecutions = jobExplorer.getJobExecutions(jobInstance);
    assertEquals(1, jobExecutions.size());
    JobExecution jobExecution = jobExecutions.get(0);
    return jobExecution.getStepExecutions();
}
项目:composed-task-runner    文件:ComposedRunnerVisitorTests.java   
private List<StepExecution> getSortedStepExecutions(Collection<StepExecution> stepExecutions) {
    List<StepExecution> result = new ArrayList<>(stepExecutions);
    Collections.sort(result, new Comparator<StepExecution>() {
        @Override
        public int compare(StepExecution stepExecution1, StepExecution stepExecution2) {
            return  stepExecution1.getStartTime().compareTo(stepExecution2.getStartTime());
        }
    });
    return result;
}
项目:composed-task-runner    文件:ComposedTaskStepExecutionListenerTests.java   
private StepExecution getStepExecution() {
    final long JOB_EXECUTION_ID = 123L;
    final String STEP_NAME = "myTestStep";

    JobExecution jobExecution = new JobExecution(JOB_EXECUTION_ID);
    return new StepExecution(STEP_NAME, jobExecution);
}
项目:spring-batch-support    文件:FailIfSkippedJobExecutionListener.java   
@Override
public void afterJob(JobExecution jobExecution) {
    for (StepExecution stepExecution : jobExecution.getStepExecutions()) {
        if (stepExecution.getSkipCount() > 0) {
            jobExecution.setExitStatus(ExitStatus.FAILED);
            jobExecution.setStatus(BatchStatus.FAILED);
            return;
        }
    }
}