Example usage for org.springframework.batch.core ExitStatus COMPLETED

List of usage examples for org.springframework.batch.core ExitStatus COMPLETED

Introduction

In this page you can find the example usage for org.springframework.batch.core ExitStatus COMPLETED.

Prototype

ExitStatus COMPLETED

To view the source code for org.springframework.batch.core ExitStatus COMPLETED.

Click Source Link

Document

Convenient constant value representing finished processing.

Usage

From source file:uk.ac.ebi.eva.pipeline.jobs.GenotypedVcfJobWorkflowTest.java

@Test
public void allStepsShouldBeExecuted() throws Exception {
    initVariantConfigurationJob();//ww  w  .  jav a 2 s. c  o m

    JobExecution execution = jobLauncherTestUtils.launchJob();

    assertEquals(ExitStatus.COMPLETED, execution.getExitStatus());
    assertEquals(7, execution.getStepExecutions().size());

    List<StepExecution> steps = new ArrayList<>(execution.getStepExecutions());
    StepExecution transformStep = steps.get(0);
    StepExecution loadStep = steps.get(1);

    Map<String, StepExecution> parallelStepsNameToStepExecution = new HashMap<>();
    for (int i = 2; i <= steps.size() - 1; i++) {
        parallelStepsNameToStepExecution.put(steps.get(i).getStepName(), steps.get(i));
    }

    assertEquals(GenotypedVcfJob.NORMALIZE_VARIANTS, transformStep.getStepName());
    assertEquals(GenotypedVcfJob.LOAD_VARIANTS, loadStep.getStepName());

    Set<String> parallelStepNamesExecuted = parallelStepsNameToStepExecution.keySet();
    Set<String> parallelStepNamesToCheck = new HashSet<>(Arrays.asList(
            PopulationStatisticsJob.CALCULATE_STATISTICS, PopulationStatisticsJob.LOAD_STATISTICS,
            VepInputGeneratorStep.FIND_VARIANTS_TO_ANNOTATE, VepAnnotationGeneratorStep.GENERATE_VEP_ANNOTATION,
            AnnotationLoaderStep.LOAD_VEP_ANNOTATION));

    assertEquals(parallelStepNamesToCheck, parallelStepNamesExecuted);

    assertTrue(transformStep.getEndTime().before(loadStep.getStartTime()));
    assertTrue(loadStep.getEndTime().before(
            parallelStepsNameToStepExecution.get(PopulationStatisticsJob.CALCULATE_STATISTICS).getStartTime()));
    assertTrue(loadStep.getEndTime().before(parallelStepsNameToStepExecution
            .get(VepInputGeneratorStep.FIND_VARIANTS_TO_ANNOTATE).getStartTime()));

    assertTrue(parallelStepsNameToStepExecution.get(PopulationStatisticsJob.CALCULATE_STATISTICS).getEndTime()
            .before(parallelStepsNameToStepExecution.get(PopulationStatisticsJob.LOAD_STATISTICS)
                    .getStartTime()));
    assertTrue(parallelStepsNameToStepExecution.get(VepInputGeneratorStep.FIND_VARIANTS_TO_ANNOTATE)
            .getEndTime().before(parallelStepsNameToStepExecution
                    .get(VepAnnotationGeneratorStep.GENERATE_VEP_ANNOTATION).getStartTime()));
    assertTrue(parallelStepsNameToStepExecution.get(VepAnnotationGeneratorStep.GENERATE_VEP_ANNOTATION)
            .getEndTime().before(parallelStepsNameToStepExecution.get(AnnotationLoaderStep.LOAD_VEP_ANNOTATION)
                    .getStartTime()));
}

From source file:com.javaetmoi.elasticsearch.musicbrainz.batch.TestMusicAlbumJob.java

@Test
public void indexMusicAlbum() throws Exception {
    JobExecution execution = testUtils.launchJob();

    // Batch Status
    assertEquals(ExitStatus.COMPLETED, execution.getExitStatus());
    StepExecution indexMusicAlbum = getStepExecution(execution, "indexMusicAlbum");
    assertEquals(13, indexMusicAlbum.getWriteCount());
    assertEquals(2 * 2, indexMusicAlbum.getCommitCount());

    // Elasticsearch status
    ElasticSearchHelper.refreshIndex(client);
    DocsStatus docs = getDocStatus();//from   w  ww.  ja  v a 2  s .c o  m
    assertEquals(13, docs.getNumDocs());
}

From source file:uk.ac.ebi.eva.pipeline.jobs.steps.AnnotationLoaderStepTest.java

@Test
public void shouldLoadAllAnnotations() throws Exception {
    DBObjectToVariantAnnotationConverter converter = new DBObjectToVariantAnnotationConverter();

    String dump = AnnotationLoaderStepTest.class.getResource("/dump/").getFile();
    restoreMongoDbFromDump(dump);//from   w ww .ja v a2s . c  o m

    String vepOutput = jobOptions.getVepOutput();
    makeGzipFile(VepOutputContent.vepOutputContent, vepOutput);

    JobExecution jobExecution = jobLauncherTestUtils.launchStep(AnnotationLoaderStep.LOAD_VEP_ANNOTATION);

    assertEquals(ExitStatus.COMPLETED, jobExecution.getExitStatus());
    assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus());

    //check that documents have the annotation
    DBCursor cursor = collection(dbName, jobOptions.getDbCollectionsVariantsName()).find();

    int cnt = 0;
    int consequenceTypeCount = 0;
    while (cursor.hasNext()) {
        cnt++;
        DBObject dbObject = (DBObject) cursor.next().get("annot");
        if (dbObject != null) {
            VariantAnnotation annot = converter.convertToDataModelType(dbObject);
            Assert.assertNotNull(annot.getConsequenceTypes());
            consequenceTypeCount += annot.getConsequenceTypes().size();
        }
    }

    assertEquals(300, cnt);
    assertTrue("Annotations not found", consequenceTypeCount > 0);
}

From source file:uk.ac.ebi.eva.pipeline.jobs.AggregatedVcfJobTest.java

@Test
public void aggregatedTransformAndLoadShouldBeExecuted() throws Exception {
    Config.setOpenCGAHome(opencgaHome);/*  w w w  .j a  va2  s  . c  o m*/

    JobExecution jobExecution = jobLauncherTestUtils.launchJob();

    assertEquals(ExitStatus.COMPLETED, jobExecution.getExitStatus());
    assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus());

    // check execution flow
    Assert.assertEquals(2, jobExecution.getStepExecutions().size());
    List<StepExecution> steps = new ArrayList<>(jobExecution.getStepExecutions());
    StepExecution transformStep = steps.get(0);
    StepExecution loadStep = steps.get(1);

    Assert.assertEquals(AggregatedVcfJob.NORMALIZE_VARIANTS, transformStep.getStepName());
    Assert.assertEquals(AggregatedVcfJob.LOAD_VARIANTS, loadStep.getStepName());

    assertTrue(transformStep.getEndTime().before(loadStep.getStartTime()));

    // check transformed file
    String outputFilename = getTransformedOutputPath(Paths.get(input).getFileName(), compressExtension,
            outputDir);

    long lines = JobTestUtils.getLines(new GZIPInputStream(new FileInputStream(outputFilename)));
    assertEquals(156, lines);

    // check ((documents in DB) == (lines in transformed file))
    VariantStorageManager variantStorageManager = StorageManagerFactory.getVariantStorageManager();
    VariantDBAdaptor variantDBAdaptor = variantStorageManager.getDBAdaptor(dbName, null);
    VariantDBIterator iterator = variantDBAdaptor.iterator(new QueryOptions());

    Assert.assertEquals(JobTestUtils.count(iterator), lines);

    // check that stats are loaded properly
    assertFalse(variantDBAdaptor.iterator(new QueryOptions()).next().getSourceEntries().values().iterator()
            .next().getCohortStats().isEmpty());
}

From source file:org.jasig.ssp.util.importer.job.listener.ParsingListener.java

@SuppressWarnings("unchecked")
@Override/*w  ww .j av a2  s .  c  o m*/
@AfterStep
public ExitStatus afterStep(StepExecution arg0) {
    // The "fileName" context property has been normalized so the file separator is
    // not platform-specific
    String fileSeparatorRegex = "/";
    String fileName = this.getStepExecution().getExecutionContext().getString("fileName");
    String[] split = fileName.split(fileSeparatorRegex);
    String pathname = split[split.length - 1];
    String[] split1 = pathname.split("\\.");
    String currentEntity = split1[0];

    if (currentEntity != null) {
        Map<String, ReportEntry> report = (Map<String, ReportEntry>) this.getStepExecution().getJobExecution()
                .getExecutionContext().get("report");
        if (report == null) {
            report = new HashMap<String, ReportEntry>();
        }
        ReportEntry currentEntry = report.get(currentEntity);
        if (currentEntry != null) {
            currentEntry.setTableName(currentEntity);
            currentEntry.setNumberParsed(this.getStepExecution().getReadCount());
            currentEntry.setNumberSkippedOnParse(this.getStepExecution().getProcessSkipCount());
        } else {
            currentEntry = new ReportEntry();
            currentEntry.setTableName(currentEntity);
            currentEntry.setNumberParsed(this.getStepExecution().getReadCount());
            currentEntry.setNumberSkippedOnParse(this.getStepExecution().getProcessSkipCount());
        }
        report.put(currentEntity, currentEntry);
        arg0.getJobExecution().getExecutionContext().put("report", report);
    }

    return ExitStatus.COMPLETED;
}

From source file:com.github.jrrdev.mantisbtsync.core.common.auth.PortalAuthManager.java

/**
 * EGet the authenfication by executing the defined requests sequence.
 *
 * @throws IOException//from w w w  . j a v a 2  s  .  co m
 * @throws ClientProtocolException
 */
public ExitStatus authentificate() throws ClientProtocolException, IOException {
    authCookie = null;

    if (firstRequest != null) {

        final CookieStore cookieStore = new BasicCookieStore();
        client = HttpClients.custom().setDefaultCookieStore(cookieStore)
                .setRedirectStrategy(new LaxRedirectStrategy()).useSystemProperties().build();

        lastResponse = firstRequest.executeSequence(client);

        final List<Cookie> cookies = cookieStore.getCookies();
        final StringBuilder strBuff = new StringBuilder();
        for (final Cookie cookie : cookies) {
            strBuff.append(cookie.getName());
            strBuff.append("=");
            strBuff.append(cookie.getValue());
            strBuff.append(";");
        }

        authCookie = strBuff.toString();
    }

    return ExitStatus.COMPLETED;
}

From source file:org.emonocot.job.common.GetResourceClientTest.java

/**
 *
 * @throws IOException// w ww  .  j a v a2  s  . co  m
 *             if a temporary file cannot be created or if there is a http
 *             protocol error.
 * @throws SAXException
 *             if the content retrieved is not valid xml.
 */
@Test
public final void testGetResourceSuccessfully() throws IOException, SAXException {
    File tempFile = File.createTempFile("test", "zip");
    tempFile.deleteOnExit();

    EasyMock.expect(httpClient.getParams()).andReturn(new BasicHttpParams());
    EasyMock.expect(httpClient.execute(EasyMock.isA(HttpGet.class))).andReturn(httpResponse);
    EasyMock.replay(httpClient);

    ExitStatus exitStatus = getResourceClient.getResource(testzip, Long.toString(new Date().getTime()),
            tempFile.getAbsolutePath());

    EasyMock.verify(httpClient);

    assertNotNull("ExitStatus should not be null", exitStatus);
    assertEquals("ExitStatus should be COMPLETED", exitStatus, ExitStatus.COMPLETED);
}

From source file:uk.ac.ebi.eva.pipeline.jobs.steps.VariantNormalizerStepTest.java

@Test
public void normalizerStepShouldTransformAllVariants() throws Exception {
    Config.setOpenCGAHome(opencgaHome);//w ww  . j  a va2  s  . co m

    String inputFile = VariantNormalizerStepTest.class.getResource(input).getFile();
    jobOptions.getPipelineOptions().put("input.vcf", inputFile);

    String outputFilename = getTransformedOutputPath(Paths.get(input).getFileName(), ".gz", "/tmp");

    File file = new File(outputFilename);
    if (file.exists())
        file.delete();
    assertFalse(file.exists());

    // When the execute method in variantsTransform is executed
    JobExecution jobExecution = jobLauncherTestUtils.launchStep(GenotypedVcfJob.NORMALIZE_VARIANTS);

    //Then variantsTransform should complete correctly
    assertEquals(ExitStatus.COMPLETED, jobExecution.getExitStatus());
    assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus());

    // And the transformed file should contain the same number of line of the Vcf input file
    Assert.assertEquals(300, getLines(new GZIPInputStream(new FileInputStream(outputFilename))));

    file.delete();
    new File(outputDir, "small20.vcf.gz.file.json.gz").delete();
}

From source file:uk.ac.ebi.eva.pipeline.jobs.steps.IndexesGeneratorStepTest.java

@Test(expected = DuplicateKeyException.class)
public void testNoDuplicatesCanBeInserted() throws Exception {
    String dbCollectionGenesName = jobOptions.getDbCollectionsFeaturesName();
    JobExecution jobExecution = jobLauncherTestUtils
            .launchStep(DatabaseInitializationJob.CREATE_DATABASE_INDEXES);

    assertEquals(ExitStatus.COMPLETED, jobExecution.getExitStatus());
    assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus());

    MongoClient mongoClient = new MongoClient();
    DBCollection genesCollection = mongoClient.getDB(dbName).getCollection(dbCollectionGenesName);
    genesCollection.insert(new BasicDBObject("_id", "example_id"));
    genesCollection.insert(new BasicDBObject("_id", "example_id"));
}

From source file:com.github.jrrdev.mantisbtsync.core.jobs.issues.tasklets.IssuesLastRunExtractorTasklet.java

/**
 * {@inheritDoc}//  w  w w .ja va 2s . c  o  m
 * @see org.springframework.batch.core.step.tasklet.Tasklet#execute(org.springframework.batch.core.StepContribution, org.springframework.batch.core.scope.context.ChunkContext)
 */
@Override
public RepeatStatus execute(final StepContribution contribution, final ChunkContext chunkContext)
        throws Exception {

    final StepContext stepContext = chunkContext.getStepContext();
    final String jobName = stepContext.getJobName();
    final JobParameters jobParams = stepContext.getStepExecution().getJobParameters();
    final Map<String, JobParameter> currParams = new HashMap<String, JobParameter>(jobParams.getParameters());
    currParams.remove("run.id");

    Date lastJobRun = null;

    final List<JobInstance> jobInstances = jobExplorer.getJobInstances(jobName, 0, 1000);
    for (final JobInstance jobInstance : jobInstances) {
        final List<JobExecution> jobExecutions = jobExplorer.getJobExecutions(jobInstance);
        for (final JobExecution jobExecution : jobExecutions) {

            final JobParameters oldJobParams = jobExecution.getJobParameters();
            final Map<String, JobParameter> oldParams = new HashMap<String, JobParameter>(
                    oldJobParams.getParameters());
            oldParams.remove("run.id");

            if (ExitStatus.COMPLETED.equals(jobExecution.getExitStatus()) && oldParams.equals(currParams)) {

                if (lastJobRun == null || lastJobRun.before(jobExecution.getStartTime())) {
                    lastJobRun = jobExecution.getStartTime();
                }
            }
        }
    }

    if (lastJobRun != null) {
        stepContext.getStepExecution().getExecutionContext().put("mantis.update.last_job_run", lastJobRun);
    }

    stepContext.getStepExecution().getExecutionContext().put("mantis.update.current_job_run",
            Calendar.getInstance());

    return RepeatStatus.FINISHED;
}