Example usage for org.springframework.core.io Resource getFile

List of usage examples for org.springframework.core.io Resource getFile

Introduction

In this page you can find the example usage for org.springframework.core.io Resource getFile.

Prototype

File getFile() throws IOException;

Source Link

Document

Return a File handle for this resource.

Usage

From source file:com.epam.catgenome.manager.FeatureIndexManagerTest.java

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void testNoIndexVcf() throws IOException, FeatureIndexException {
    Resource resource = context.getResource(CLASSPATH_TEMPLATES_FELIS_CATUS_VCF);

    FeatureIndexedFileRegistrationRequest request = new FeatureIndexedFileRegistrationRequest();
    request.setReferenceId(referenceId);
    request.setPath(resource.getFile().getAbsolutePath());
    request.setDoIndex(false);/*w  ww .  j ava 2  s.c  o m*/
    request.setName(UUID.randomUUID().toString());

    VcfFile vcfFile = vcfManager.registerVcfFile(request);

    Assert.assertNotNull(vcfFile);

    Project project = new Project();
    project.setName(TEST_PROJECT_NAME + UUID.randomUUID().toString());
    project.setItems(Arrays.asList(new ProjectItem(new BiologicalDataItem(vcfFile.getBioDataItemId())),
            new ProjectItem(new BiologicalDataItem(testReference.getBioDataItemId()))));

    projectManager.saveProject(project); // Index is created when vcf file is added

    TestUtils.assertFail(() -> featureIndexManager.filterVariations(new VcfFilterForm(), project.getId()),
            Collections.singletonList(IllegalArgumentException.class));
}

From source file:com.epam.catgenome.manager.FeatureIndexManagerTest.java

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void testReindexVcf() throws FeatureIndexException, IOException {
    Resource resource = context.getResource(CLASSPATH_TEMPLATES_FELIS_CATUS_VCF);

    FeatureIndexedFileRegistrationRequest request = new FeatureIndexedFileRegistrationRequest();
    request.setReferenceId(referenceId);
    request.setPath(resource.getFile().getAbsolutePath());
    request.setName(UUID.randomUUID().toString());

    VcfFile vcfFile = vcfManager.registerVcfFile(request);

    VcfFilterForm vcfFilterForm = new VcfFilterForm();
    vcfFilterForm.setVcfFileIds(Collections.singletonList(vcfFile.getId()));
    vcfFilterForm/*from   w  w w . ja  v  a 2  s. c o  m*/
            .setGenes(new VcfFilterForm.FilterSection<>(Collections.singletonList(TEST_GENE_PREFIX), false));
    vcfFilterForm.setVariationTypes(
            new VcfFilterForm.FilterSection<>(Arrays.asList(VariationType.MNP, VariationType.SNV), false));
    IndexSearchResult<VcfIndexEntry> entryList = featureIndexManager.filterVariations(vcfFilterForm);
    Assert.assertFalse(entryList.getEntries().isEmpty());

    fileManager.deleteFileFeatureIndex(vcfFile);

    TestUtils.assertFail(() -> featureIndexManager.filterVariations(vcfFilterForm),
            Collections.singletonList(IllegalArgumentException.class));

    vcfManager.reindexVcfFile(vcfFile.getId());
    entryList = featureIndexManager.filterVariations(vcfFilterForm);
    Assert.assertFalse(entryList.getEntries().isEmpty());
}

From source file:com.epam.catgenome.manager.FeatureIndexManagerTest.java

@Before
public void setup() throws Exception {
    testChromosome = EntityHelper.createNewChromosome();
    testChromosome.setSize(TEST_CHROMOSOME_SIZE);
    testReference = EntityHelper.createNewReference(testChromosome, referenceGenomeManager.createReferenceId());

    referenceGenomeManager.register(testReference);
    referenceId = testReference.getId();

    Resource resource = context.getResource(CLASSPATH_TEMPLATES_GENES_SORTED);

    FeatureIndexedFileRegistrationRequest request = new FeatureIndexedFileRegistrationRequest();
    request.setReferenceId(referenceId);
    request.setPath(resource.getFile().getAbsolutePath());

    testGeneFile = gffManager.registerGeneFile(request);

    referenceGenomeManager.updateReferenceGeneFileId(testReference.getId(), testGeneFile.getId());

    Resource bedResource = context.getResource(CLASSPATH_TEMPLATES_BED);
    FeatureIndexedFileRegistrationRequest bedFileRequest = new FeatureIndexedFileRegistrationRequest();
    bedFileRequest.setReferenceId(referenceId);
    bedFileRequest.setPath(bedResource.getFile().getAbsolutePath());

    testBedFile = bedManager.registerBed(bedFileRequest);
    // TODO Ask about indexing bed with registration
    bedManager.reindexBedFile(testBedFile.getId());

    resource = context.getResource(CLASSPATH_TEMPLATES_FELIS_CATUS_VCF);

    request = new FeatureIndexedFileRegistrationRequest();
    request.setReferenceId(referenceId);
    request.setPath(resource.getFile().getAbsolutePath());

    testVcf = vcfManager.registerVcfFile(request);

    testProject = new Project();
    testProject.setName(TEST_PROJECT_NAME);
    testProject.setItems(Arrays.asList(new ProjectItem(new BiologicalDataItem(testVcf.getBioDataItemId())),
            new ProjectItem(new BiologicalDataItem(testReference.getBioDataItemId()))));

    projectManager.saveProject(testProject); // Index is created when vcf file is added
}

From source file:com.epam.catgenome.manager.FeatureIndexManagerTest.java

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void testCreateUnmappedGeneIndex()
        throws IOException, InterruptedException, FeatureIndexException, NoSuchAlgorithmException {
    Chromosome chr1 = EntityHelper.createNewChromosome("chr1");
    chr1.setSize(TEST_CHROMOSOME_SIZE);// w  ww .  j a  v  a  2  s  . co  m
    Reference testHumanReference = EntityHelper.createNewReference(chr1,
            referenceGenomeManager.createReferenceId());

    referenceGenomeManager.register(testHumanReference);
    Long humanReferenceId = testHumanReference.getId();

    Resource resource = context.getResource("classpath:templates/mrna.sorted.chunk.gtf");

    FeatureIndexedFileRegistrationRequest request = new FeatureIndexedFileRegistrationRequest();
    request.setReferenceId(humanReferenceId);
    request.setPath(resource.getFile().getAbsolutePath());

    GeneFile geneFile = gffManager.registerGeneFile(request);
    Assert.assertNotNull(geneFile);
    Assert.assertNotNull(geneFile.getId());

    Project project = new Project();
    project.setName(TEST_PROJECT_NAME + 1);

    project.setItems(Arrays.asList(new ProjectItem(new BiologicalDataItem(geneFile.getBioDataItemId())),
            new ProjectItem(new BiologicalDataItem(testHumanReference.getBioDataItemId()))));
    projectManager.saveProject(project);

    List<FeatureIndexEntry> entryList = (List<FeatureIndexEntry>) featureIndexManager
            .searchFeaturesInProject("", project.getId()).getEntries();
    Assert.assertTrue(entryList.isEmpty());

    entryList = (List<FeatureIndexEntry>) featureIndexManager
            .searchFeaturesInProject("AM992871", project.getId()).getEntries();
    Assert.assertTrue(entryList.isEmpty()); // we don't search for exons
}

From source file:com.epam.catgenome.manager.FeatureIndexManagerTest.java

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void testWickedVcfIndex() throws IOException, InterruptedException, FeatureIndexException,
        NoSuchAlgorithmException, ParseException, VcfReadingException {
    Chromosome chr1 = EntityHelper.createNewChromosome("chr21");
    chr1.setSize(TEST_WICKED_VCF_LENGTH);
    Chromosome chr2 = EntityHelper.createNewChromosome("chr22");
    chr2.setSize(TEST_WICKED_VCF_LENGTH);
    Reference testHumanReference = EntityHelper.createNewReference(Arrays.asList(chr1, chr2),
            referenceGenomeManager.createReferenceId());
    referenceGenomeManager.register(testHumanReference);
    Long humanReferenceId = testHumanReference.getId();

    Project project = new Project();
    project.setName(TEST_PROJECT_NAME + 1);
    project.setItems(Collections/* w  ww . j a v a 2 s . c  om*/
            .singletonList(new ProjectItem(new BiologicalDataItem(testHumanReference.getBioDataItemId()))));

    projectManager.saveProject(project);

    Resource resource = context.getResource("classpath:templates/Homo_sapiens.GRCh38.83.sorted.chr21-22.gtf");
    FeatureIndexedFileRegistrationRequest geneRequest = new FeatureIndexedFileRegistrationRequest();
    geneRequest.setPath(resource.getFile().getAbsolutePath());
    geneRequest.setReferenceId(humanReferenceId);

    GeneFile geneFile = gffManager.registerGeneFile(geneRequest);
    referenceGenomeManager.updateReferenceGeneFileId(humanReferenceId, geneFile.getId());

    resource = context.getResource("classpath:templates/Dream.set3.VarDict.SV.vcf");

    FeatureIndexedFileRegistrationRequest request = new FeatureIndexedFileRegistrationRequest();
    request.setReferenceId(humanReferenceId);
    request.setPath(resource.getFile().getAbsolutePath());

    VcfFile vcfFile = vcfManager.registerVcfFile(request);
    Assert.assertNotNull(vcfFile);
    Assert.assertNotNull(vcfFile.getId());

    project.setItems(Arrays.asList(new ProjectItem(geneFile), new ProjectItem(vcfFile)));

    projectManager.saveProject(project);

    IndexSearchResult<VcfIndexEntry> entries = featureIndexManager.filterVariations(new VcfFilterForm(),
            project.getId());
    Assert.assertFalse(entries.getEntries().isEmpty());

    long varGenesCount = entries.getEntries().stream().filter(e -> StringUtils.isNotBlank(e.getGene())).count();
    Assert.assertTrue(varGenesCount > 0);
    /*entries.stream().filter(e -> StringUtils.isNotBlank(e.getGene())).forEach(e -> logger.info("{} - {}, {}", e
        .getStartIndex(), e.getEndIndex(), e.getGeneIds()));*/

    // check chromosome filter
    VcfFilterForm chr21Form = new VcfFilterForm();
    chr21Form.setChromosomeIds(Collections.singletonList(chr1.getId()));
    IndexSearchResult<VcfIndexEntry> chr21Entries = featureIndexManager.filterVariations(chr21Form,
            project.getId());
    Assert.assertFalse(chr21Entries.getEntries().isEmpty());
    Assert.assertTrue(
            chr21Entries.getEntries().stream().allMatch(e -> e.getChromosome().getId().equals(chr1.getId())));

    VcfFilterForm chr22Form = new VcfFilterForm();
    chr22Form.setChromosomeIds(Collections.singletonList(chr2.getId()));
    IndexSearchResult<VcfIndexEntry> chr22Entries = featureIndexManager.filterVariations(chr22Form,
            project.getId());
    Assert.assertFalse(chr22Entries.getEntries().isEmpty());
    Assert.assertTrue(
            chr22Entries.getEntries().stream().allMatch(e -> e.getChromosome().getId().equals(chr2.getId())));

    VcfFilterForm chr2122Form = new VcfFilterForm();
    chr2122Form.setChromosomeIds(Arrays.asList(chr1.getId(), chr2.getId()));
    IndexSearchResult<VcfIndexEntry> chr2122Entries = featureIndexManager.filterVariations(chr2122Form,
            project.getId());
    Assert.assertFalse(chr2122Entries.getEntries().isEmpty());
    Assert.assertTrue(
            chr2122Entries.getEntries().stream().anyMatch(e -> e.getChromosome().getId().equals(chr1.getId())));
    Assert.assertTrue(
            chr2122Entries.getEntries().stream().anyMatch(e -> e.getChromosome().getId().equals(chr2.getId())));
    Assert.assertEquals(chr21Entries.getEntries().size() + chr22Entries.getEntries().size(),
            chr2122Entries.getEntries().size());
}

From source file:com.epam.catgenome.manager.FeatureIndexManagerTest.java

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void testIntervalQuery() throws IOException, InterruptedException, FeatureIndexException,
        NoSuchAlgorithmException, VcfReadingException {
    Resource resource = context.getResource(CLASSPATH_TEMPLATES_GENES_SORTED);

    FeatureIndexedFileRegistrationRequest request = new FeatureIndexedFileRegistrationRequest();
    request.setReferenceId(referenceId);
    request.setName("GENES_SORTED_INT");
    request.setPath(resource.getFile().getAbsolutePath());

    GeneFile geneFile = gffManager.registerGeneFile(request);
    Assert.assertNotNull(geneFile);//from  w  w  w . j  a  v a2s  . c o  m
    Assert.assertNotNull(geneFile.getId());

    referenceGenomeManager.updateReferenceGeneFileId(testReference.getId(), geneFile.getId());

    Project project = new Project();
    project.setName(TEST_PROJECT_NAME + "_INT");

    project.setItems(Arrays.asList(new ProjectItem(new BiologicalDataItem(testReference.getBioDataItemId())),
            new ProjectItem(new BiologicalDataItem(geneFile.getBioDataItemId()))));
    projectManager.saveProject(project);

    IndexSearchResult result1 = featureIndexDao.searchFeaturesInInterval(Collections.singletonList(geneFile),
            INTERVAL1_START, INTERVAL1_END, testChromosome);

    Assert.assertEquals(3, result1.getEntries().size());

    IndexSearchResult result2 = featureIndexDao.searchFeaturesInInterval(Collections.singletonList(geneFile),
            INTERVAL2_START, INTERVAL2_END, testChromosome);
    Assert.assertEquals(0, result2.getEntries().size());

    IndexSearchResult result3 = featureIndexDao.searchFeaturesInInterval(Collections.singletonList(geneFile),
            INTERVAL3_START, INTERVAL3_END, testChromosome);
    Assert.assertEquals(3, result3.getEntries().size());
}

From source file:architecture.ee.component.core.lifecycle.RepositoryImpl.java

public void setServletContext(ServletContext servletContext) {

    // 1.  ?? ? ? ?  : ARCHITECTURE_INSTALL_ROOT
    String value = servletContext.getInitParameter(ApplicationConstants.ARCHITECTURE_PROFILE_ROOT_ENV_KEY);
    if (!StringUtils.isEmpty(value)) {
        try {/*from w  ww .j  av  a  2  s.  c  o m*/
            ServletContextResourceLoader servletResoruceLoader = new ServletContextResourceLoader(
                    servletContext);
            Resource resource = servletResoruceLoader.getResource(value);
            if (resource.exists()) {
                log.debug(L10NUtils.format("003003", ApplicationConstants.ARCHITECTURE_PROFILE_ROOT_ENV_KEY,
                        resource.getURI()));
                this.rootResource = resource;
                setState(State.INITIALIZED);
                initailized = true;
            }
        } catch (Throwable e) {
            this.rootResource = null;
        }
    }

    if (!initailized && !StringUtils.isEmpty(value)) {
        Resource obj;
        try {
            obj = resoruceLoader.getResource(value);
            if (obj.exists()) {
                log.debug(L10NUtils.format("003003", ApplicationConstants.ARCHITECTURE_PROFILE_ROOT_ENV_KEY,
                        obj.getURI()));
                this.rootResource = obj;
                setState(State.INITIALIZED);
                initailized = true;

            }
        } catch (Throwable e) {
            log.error(e);
        }
    }

    if (!initailized) {
        try {
            ServletContextResource resource = new ServletContextResource(servletContext, "/WEB-INF");
            File file = resource.getFile();
            if (file.exists()) {
                this.rootResource = new FileSystemResource(file);
                setState(State.INITIALIZED);
                initailized = true;
            }
        } catch (Throwable e) {
            log.error(e);
        }
    }
}

From source file:com.epam.catgenome.manager.FeatureIndexManagerTest.java

/**
 * Testes indexing a vcf file with populated gene information. Therefore this information should be read from
 * VCF, not from gff files/*w ww.ja  v  a  2  s  .  c  o m*/
 * @throws Exception
 */
@Ignore
@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void testCreateFeatureIndex2() throws Exception {
    Chromosome chr14 = EntityHelper.createNewChromosome("chr14");
    chr14.setSize(TEST_CHROMOSOME_SIZE);
    Reference testHumanReference = EntityHelper.createNewReference(chr14,
            referenceGenomeManager.createReferenceId());

    referenceGenomeManager.register(testHumanReference);
    Long humanReferenceId = testHumanReference.getId();

    Resource resource = context.getResource("classpath:templates/sample_2-lumpy.vcf");
    FeatureIndexedFileRegistrationRequest request = new FeatureIndexedFileRegistrationRequest();
    request.setReferenceId(humanReferenceId);
    request.setPath(resource.getFile().getAbsolutePath());

    VcfFile vcfFile = vcfManager.registerVcfFile(request);

    Project project = new Project();
    project.setName(TEST_PROJECT_NAME);
    project.setItems(
            Collections.singletonList(new ProjectItem(new BiologicalDataItem(vcfFile.getBioDataItemId()))));

    projectManager.saveProject(project); // Index is created when vcf file is added
    VcfFilterInfo info = featureIndexManager.loadVcfFilterInfoForProject(project.getId());

    VcfFilterForm vcfFilterForm = new VcfFilterForm();
    vcfFilterForm.setVcfFileIds(Collections.singletonList(vcfFile.getId()));
    vcfFilterForm
            .setGenes(new VcfFilterForm.FilterSection<>(Collections.singletonList("ENSG00000185070"), false));
    vcfFilterForm.setVariationTypes(
            new VcfFilterForm.FilterSection<>(Arrays.asList(VariationType.DEL, VariationType.SNV), false));

    String cipos95 = "CIPOS95";
    vcfFilterForm
            .setInfoFields(info.getInfoItems().stream().map(InfoItem::getName).collect(Collectors.toList()));
    vcfFilterForm.setAdditionalFilters(Collections.singletonMap(cipos95, Arrays.asList(CONST_42, CONST_42)));

    IndexSearchResult<VcfIndexEntry> entryList2 = featureIndexManager.filterVariations(vcfFilterForm,
            project.getId());
    Assert.assertFalse(entryList2.getEntries().isEmpty());
    Assert.assertTrue(entryList2.getEntries().stream().anyMatch(e -> e.getInfo().containsKey(cipos95)));
    Assert.assertTrue(
            entryList2.getEntries().stream().filter(e -> e.getInfo().containsKey(cipos95)).allMatch(e -> {
                String cipos = (String) e.getInfo().get(cipos95);
                return cipos.startsWith("[") && cipos.endsWith("]");
            }));

    // check info properly loaded
    for (VcfIndexEntry e : entryList2.getEntries()) {
        VariationQuery query = new VariationQuery();
        query.setId(e.getFeatureFileId());
        query.setProjectId(project.getId());
        query.setChromosomeId(e.getChromosome().getId());
        query.setPosition(e.getStartIndex());
        Variation variation = vcfManager.loadVariation(query);
        Assert.assertNotNull(variation);

        for (Map.Entry<String, Variation.InfoField> i : variation.getInfo().entrySet()) {
            if (i.getValue().getValue() != null) {
                Assert.assertTrue(
                        String.format("%s expected, %s found", i.getValue().getValue(),
                                e.getInfo().get(i.getKey())),
                        i.getValue().getValue().toString()
                                .equalsIgnoreCase(e.getInfo().get(i.getKey()).toString()));
            } else {
                Assert.assertEquals(i.getValue().getValue(), e.getInfo().get(i.getKey()));
            }
        }
    }

    // flrt2

    vcfFilterForm.setGenes(new VcfFilterForm.FilterSection<>(Collections.singletonList("FLRT2"), false));
    IndexSearchResult<VcfIndexEntry> entryList21 = featureIndexManager.filterVariations(vcfFilterForm,
            project.getId());
    Assert.assertFalse(entryList21.getEntries().isEmpty());
    Assert.assertEquals(entryList21.getEntries().size(), entryList2.getEntries().size());
    Assert.assertEquals(entryList21.getEntries().get(0).getGene(), entryList2.getEntries().get(0).getGene());

    // empty filter test
    entryList2 = featureIndexManager.filterVariations(new VcfFilterForm(), project.getId());
    Assert.assertFalse(entryList2.getEntries().isEmpty());
    checkDuplicates(entryList2.getEntries());
}

From source file:com.epam.catgenome.manager.FeatureIndexManagerTest.java

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void testIndexUpdateOnProjectOperations() throws Exception {
    Resource gffResource = context.getResource(CLASSPATH_TEMPLATES_GENES_SORTED);

    FeatureIndexedFileRegistrationRequest request = new FeatureIndexedFileRegistrationRequest();
    request.setReferenceId(referenceId);
    request.setPath(gffResource.getFile().getAbsolutePath());
    request.setName("testGeneFile");

    GeneFile geneFile = gffManager.registerGeneFile(request);
    Assert.assertNotNull(geneFile);//from   www .  j  a v a  2s. c  o m
    Assert.assertNotNull(geneFile.getId());

    referenceGenomeManager.updateReferenceGeneFileId(testReference.getId(), geneFile.getId());

    Resource vcfResource = context.getResource(CLASSPATH_TEMPLATES_FELIS_CATUS_VCF);

    request = new FeatureIndexedFileRegistrationRequest();
    request.setReferenceId(referenceId);
    request.setPath(vcfResource.getFile().getAbsolutePath());
    request.setName("testVcf");

    VcfFile vcfFile = vcfManager.registerVcfFile(request);

    Project project = new Project();
    project.setName(TEST_PROJECT_NAME + 1);
    project.setItems(Arrays.asList(new ProjectItem(new BiologicalDataItem(vcfFile.getBioDataItemId())),
            new ProjectItem(new BiologicalDataItem(geneFile.getBioDataItemId())),
            new ProjectItem(new BiologicalDataItem(testReference.getBioDataItemId()))));

    projectManager.saveProject(project); // Index is created when vcf file is added

    VcfFilterForm vcfFilterForm = new VcfFilterForm();
    vcfFilterForm.setVcfFileIds(Collections.singletonList(vcfFile.getId()));
    vcfFilterForm.setChromosomeIds(Collections.singletonList(testChromosome.getId()));
    vcfFilterForm
            .setGenes(new VcfFilterForm.FilterSection<>(Collections.singletonList(TEST_GENE_PREFIX), false));
    vcfFilterForm.setVariationTypes(
            new VcfFilterForm.FilterSection<>(Arrays.asList(VariationType.MNP, VariationType.SNV), false));
    IndexSearchResult<VcfIndexEntry> entryList = featureIndexManager.filterVariations(vcfFilterForm,
            project.getId());
    Assert.assertFalse(entryList.getEntries().isEmpty());

    // try to add an vcf item
    request = new FeatureIndexedFileRegistrationRequest();
    request.setReferenceId(referenceId);
    request.setPath(vcfResource.getFile().getAbsolutePath());
    request.setName(vcfResource.getFilename() + "2");
    VcfFile vcfFile2 = vcfManager.registerVcfFile(request);

    project = projectManager.addProjectItem(project.getId(), vcfFile2.getBioDataItemId());

    entryList = featureIndexManager.filterVariations(vcfFilterForm, project.getId());
    Assert.assertFalse(entryList.getEntries().isEmpty());
    Assert.assertTrue(
            entryList.getEntries().stream().allMatch(e -> e.getFeatureFileId().equals(vcfFile.getId())));

    VcfFilterForm vcfFilterForm2 = new VcfFilterForm();
    vcfFilterForm2.setVcfFileIds(Collections.singletonList(vcfFile2.getId()));
    vcfFilterForm.setChromosomeIds(Collections.singletonList(testChromosome.getId()));
    vcfFilterForm2
            .setGenes(new VcfFilterForm.FilterSection<>(Collections.singletonList(TEST_GENE_PREFIX), false));
    vcfFilterForm2.setVariationTypes(
            new VcfFilterForm.FilterSection<>(Arrays.asList(VariationType.MNP, VariationType.SNV), false));
    IndexSearchResult<VcfIndexEntry> entryList2 = featureIndexManager.filterVariations(vcfFilterForm2,
            project.getId());
    Assert.assertFalse(entryList2.getEntries().isEmpty());
    Assert.assertEquals(entryList.getEntries().size(), entryList2.getEntries().size());

    Assert.assertTrue(
            entryList2.getEntries().stream().allMatch(e -> e.getFeatureFileId().equals(vcfFile2.getId())));

    // test no vcfFileIds
    vcfFilterForm2.setVcfFileIds(null);
    entryList2 = featureIndexManager.filterVariations(vcfFilterForm2, project.getId());
    Assert.assertFalse(entryList2.getEntries().isEmpty());
    Assert.assertEquals(entryList2.getEntries().size(), entryList.getEntries().size() * 2);

    // test with multiple vcfFileIds
    vcfFilterForm2.setVcfFileIds(Arrays.asList(vcfFile.getId(), vcfFile2.getId()));
    entryList2 = featureIndexManager.filterVariations(vcfFilterForm2, project.getId());
    Assert.assertFalse(entryList2.getEntries().isEmpty());
    Assert.assertEquals(entryList2.getEntries().size(), entryList.getEntries().size() * 2);

    // try to remove a vcf item by save - should be not indexed
    project.setItems(project.getItems().stream()
            .filter(i -> !(i.getBioDataItem() instanceof VcfFile)
                    || !((VcfFile) i.getBioDataItem()).getId().equals(vcfFile2.getId()))
            .collect(Collectors.toList()));

    project = projectManager.saveProject(project);

    vcfFilterForm2.setVcfFileIds(Collections.singletonList(vcfFile2.getId()));
    entryList2 = featureIndexManager.filterVariations(vcfFilterForm2, project.getId());
    Assert.assertTrue(entryList2.getEntries().isEmpty());

    // try to remove gene file
    project.setItems(project.getItems().stream().filter(i -> !(i.getBioDataItem() instanceof GeneFile))
            .collect(Collectors.toList()));
    project = projectManager.saveProject(project);

    vcfFilterForm.setGenes(null);
    entryList = featureIndexManager.filterVariations(vcfFilterForm, project.getId());
    Assert.assertFalse(entryList.getEntries().isEmpty());

    // add multiple files
    project.getItems().clear();
    projectManager.saveProject(project);
    Project loadedProject = projectManager.loadProject(project.getId());
    Assert.assertTrue(loadedProject.getItems().isEmpty());
    entryList2 = featureIndexManager.filterVariations(new VcfFilterForm(), project.getId());
    Assert.assertTrue(entryList2.getEntries().isEmpty());

    project.setItems(Arrays.asList(new ProjectItem(new BiologicalDataItem(vcfFile.getBioDataItemId())),
            new ProjectItem(new BiologicalDataItem(vcfFile2.getBioDataItemId())),
            new ProjectItem(new BiologicalDataItem(testReference.getBioDataItemId()))));
    projectManager.saveProject(project);
    entryList2 = featureIndexManager.filterVariations(new VcfFilterForm(), project.getId());
    Assert.assertTrue(
            entryList2.getEntries().stream().anyMatch(e -> e.getFeatureFileId().equals(vcfFile.getId())));
    Assert.assertTrue(
            entryList2.getEntries().stream().anyMatch(e -> e.getFeatureFileId().equals(vcfFile2.getId())));
}

From source file:org.cloudifysource.usm.UniversalServiceManagerBean.java

@Override
public void setApplicationContext(final ApplicationContext arg0) throws BeansException {
    // CHECKSTYLE:ON
    this.applicationContext = arg0;

    if (arg0.getClassLoader() instanceof ServiceClassLoader) {
        // running in GSC
        this.runningInGSC = true;
        final ServiceClassLoader scl = (ServiceClassLoader) arg0.getClassLoader();

        final URL url = scl.getSlashPath();
        logger.fine("The slashpath URL is: " + url);
        URI uri;/*from   w w  w .  java2 s .c o  m*/
        try {
            uri = url.toURI();
        } catch (final URISyntaxException e) {
            throw new IllegalArgumentException(e);
        }
        logger.fine("The slashpath URI is: " + uri);
        this.puWorkDir = new File(uri);
        this.puExtDir = new File(this.puWorkDir, "ext");
        return;

    }

    final ResourceApplicationContext rac = (ResourceApplicationContext) arg0;

    try {
        this.runningInGSC = false;
        final Field resourcesField = rac.getClass().getDeclaredField("resources");
        final boolean accessibleBefore = resourcesField.isAccessible();

        resourcesField.setAccessible(true);
        final Resource[] resources = (Resource[]) resourcesField.get(rac);
        for (final Resource resource : resources) {
            // find META-INF/spring/pu.xml
            final File file = resource.getFile();
            if (file.getName().equals("pu.xml") && file.getParentFile().getName().equals("spring")
                    && file.getParentFile().getParentFile().getName().equals("META-INF")) {
                puWorkDir = resource.getFile().getParentFile().getParentFile().getParentFile();
                puExtDir = new File(puWorkDir, "ext");
                break;
            }

        }

        resourcesField.setAccessible(accessibleBefore);
    } catch (final Exception e) {
        throw new IllegalArgumentException("Could not find pu.xml in the ResourceApplicationContext", e);
    }
    if (puWorkDir == null) {
        throw new IllegalArgumentException("Could not find pu.xml in the ResourceApplicationContext");
    }

}