Skip to content

Commit 06789e2

Browse files
Continue adopting FileLike instead of File or Path (#399)
1 parent 41f3ef9 commit 06789e2

File tree

53 files changed

+275
-239
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+275
-239
lines changed

SequenceAnalysis/api-src/org/labkey/api/sequenceanalysis/pipeline/AbstractResumer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.labkey.api.pipeline.RecordedAction;
88
import org.labkey.api.sequenceanalysis.SequenceOutputFile;
99
import org.labkey.api.util.Pair;
10+
import org.labkey.vfs.FileSystemLike;
1011

1112
import java.io.BufferedInputStream;
1213
import java.io.File;
@@ -240,7 +241,7 @@ public static <T extends AbstractResumer> T create(SequenceOutputHandler.JobCont
240241
{
241242
for (File orig : ret.getCopiedInputs().keySet())
242243
{
243-
ctx.getWorkDir().inputFile(orig, ret._copiedInputs.get(orig), false);
244+
ctx.getWorkDir().inputFile(FileSystemLike.wrapFile(orig), FileSystemLike.wrapFile(ret._copiedInputs.get(orig)), false);
244245
}
245246
}
246247
}

SequenceAnalysis/api-src/org/labkey/api/sequenceanalysis/pipeline/AlignerIndexUtil.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.labkey.api.data.ConvertHelper;
66
import org.labkey.api.pipeline.PipelineJobException;
77
import org.labkey.api.pipeline.WorkDirectory;
8+
import org.labkey.vfs.FileSystemLike;
89

910
import java.io.File;
1011
import java.io.IOException;
@@ -89,7 +90,7 @@ private static boolean verifyOrCreateCachedIndex(PipelineContext ctx, @Nullable
8990
if (doCopy)
9091
{
9192
ctx.getLogger().info("copying index files to work location");
92-
File localSharedDir = new File(wd.getDir(), "Shared");
93+
File localSharedDir = new File(wd.getDir().toNioPathForRead().toFile(), "Shared");
9394
File destination = new File(localSharedDir, localName);
9495
ctx.getLogger().debug(destination.getPath());
9596
File[] files = webserverIndexDir.listFiles();
@@ -98,7 +99,7 @@ private static boolean verifyOrCreateCachedIndex(PipelineContext ctx, @Nullable
9899
return false;
99100
}
100101

101-
destination = wd.inputFile(webserverIndexDir, destination, true);
102+
destination = wd.inputFile(FileSystemLike.wrapFile(webserverIndexDir), FileSystemLike.wrapFile(destination), true).toNioPathForRead().toFile();
102103
if (output != null && !destination.equals(webserverIndexDir))
103104
{
104105
ctx.getLogger().debug("adding deferred delete file: " + destination.getPath());

SequenceAnalysis/api-src/org/labkey/api/sequenceanalysis/pipeline/HasJobParams.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.labkey.api.sequenceanalysis.pipeline;
22

33
import org.json.JSONObject;
4+
import org.labkey.vfs.FileLike;
45

5-
import java.io.File;
66
import java.util.Map;
77

88
/**
@@ -14,5 +14,5 @@ public interface HasJobParams
1414

1515
JSONObject getParameterJson();
1616

17-
File getParametersFile();
17+
FileLike getParametersFile();
1818
}

SequenceAnalysis/src/org/labkey/sequenceanalysis/OutputIntegrationTests.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.labkey.api.view.ViewServlet;
3535
import org.labkey.sequenceanalysis.pipeline.ProcessVariantsHandler;
3636
import org.labkey.sequenceanalysis.pipeline.SequenceOutputHandlerJob;
37+
import org.labkey.vfs.FileLike;
3738
import org.springframework.mock.web.MockHttpServletResponse;
3839
import org.springframework.web.bind.annotation.RequestMethod;
3940

@@ -110,15 +111,15 @@ public void testVariantProcessing() throws Exception
110111
SequenceOutputHandlerJob job = (SequenceOutputHandlerJob)j;
111112

112113
Set<File> extraFiles = new HashSet<>();
113-
extraFiles.add(new File(job.getAnalysisDirectory(), jobName + "." + outputFileId + ".log"));
114-
extraFiles.add(new File(job.getAnalysisDirectory(), "sequenceOutput.json"));
115-
extraFiles.add(new File(job.getAnalysisDirectory(), "sequenceSupport.json.gz"));
116-
extraFiles.add(ProcessVariantsHandler.getPedigreeFile(job.getAnalysisDirectory(), "laboratory.subjects"));
117-
extraFiles.add(new File(job.getAnalysisDirectory(), basename + ".gfiltered.selectVariants.annotated.filtered.vcf.gz"));
118-
extraFiles.add(new File(job.getAnalysisDirectory(), basename + ".gfiltered.selectVariants.annotated.filtered.vcf.gz.tbi"));
119-
extraFiles.add(new File(job.getAnalysisDirectory(), job.getBaseName() + ".pipe.xar.xml"));
120-
121-
verifyFileOutputs(job.getAnalysisDirectory(), extraFiles);
114+
extraFiles.add(job.getAnalysisDirectory().resolveChild(jobName + "." + outputFileId + ".log").toNioPathForRead().toFile());
115+
extraFiles.add(job.getAnalysisDirectory().resolveChild("sequenceOutput.json").toNioPathForRead().toFile());
116+
extraFiles.add(job.getAnalysisDirectory().resolveChild("sequenceSupport.json.gz").toNioPathForRead().toFile());
117+
extraFiles.add(ProcessVariantsHandler.getPedigreeFile(job.getAnalysisDirectory(), "laboratory.subjects").toNioPathForRead().toFile());
118+
extraFiles.add(job.getAnalysisDirectory().resolveChild(basename + ".gfiltered.selectVariants.annotated.filtered.vcf.gz").toNioPathForRead().toFile());
119+
extraFiles.add(job.getAnalysisDirectory().resolveChild(basename + ".gfiltered.selectVariants.annotated.filtered.vcf.gz.tbi").toNioPathForRead().toFile());
120+
extraFiles.add(job.getAnalysisDirectory().resolveChild(job.getBaseName() + ".pipe.xar.xml").toNioPathForRead().toFile());
121+
122+
verifyFileOutputs(job.getAnalysisDirectory().toNioPathForRead().toFile(), extraFiles);
122123

123124
//verify outputfile created:
124125
TableSelector ts = new TableSelector(ti, PageFlowUtil.set("rowid"), new SimpleFilter(FieldKey.fromString("runId/jobid/job"), job.getJobGUID()), null);

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceAnalysisController.java

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1876,14 +1876,14 @@ public boolean isSubmitJobToReadsetContainer()
18761876
return getJobParameters() != null && getJobParameters().optBoolean("submitJobToReadsetContainer", false);
18771877
}
18781878

1879-
public List<File> getFiles(PipeRoot pr) throws PipelineValidationException
1879+
public List<FileLike> getFiles(PipeRoot pr) throws PipelineValidationException
18801880
{
18811881
if (getJobParameters() == null || getJobParameters().get("inputFiles") == null)
18821882
{
18831883
return null;
18841884
}
18851885

1886-
List<File> ret = new ArrayList<>();
1886+
List<FileLike> ret = new ArrayList<>();
18871887
JSONArray inputFiles = getJobParameters().getJSONArray("inputFiles");
18881888
String path = getJobParameters().optString("path");
18891889
for (JSONObject o : JsonUtil.toJSONObjectList(inputFiles))
@@ -1900,7 +1900,7 @@ else if (!d.getFile().exists())
19001900
throw new PipelineValidationException("Missing file for data: " + o.get("dataId"));
19011901
}
19021902

1903-
ret.add(d.getFile());
1903+
ret.add(d.getFileLike());
19041904
}
19051905
else if (o.has("relPath") || o.has("fileName"))
19061906
{
@@ -1927,7 +1927,7 @@ else if (o.has("relPath") || o.has("fileName"))
19271927
throw new PipelineValidationException("Unknown file: " + o.getString("relPath") + " / " + o.getString("fileName"));
19281928
}
19291929

1930-
ret.add(f.toNioPathForRead().toFile());
1930+
ret.add(f);
19311931
}
19321932
else if (o.opt("filePath") != null)
19331933
{
@@ -2145,27 +2145,24 @@ protected void setContentType(HttpServletResponse response)
21452145
}
21462146

21472147
@Override
2148-
protected File getTargetFile(String filename) throws IOException
2148+
protected FileLike getTargetFile(String filename) throws IOException
21492149
{
21502150
if (!PipelineService.get().hasValidPipelineRoot(getContainer()))
21512151
throw new UploadException("Pipeline root must be configured before uploading FASTA files", HttpServletResponse.SC_NOT_FOUND);
21522152

21532153
PipeRoot root = PipelineService.get().getPipelineRootSetting(getContainer());
2154-
2155-
File targetDirectory = root.getRootPath();
2156-
2157-
return FileUtil.findUniqueFileName(filename, targetDirectory);
2154+
return FileUtil.findUniqueFileName(filename, root.getRootFileLike());
21582155
}
21592156

21602157
@Override
2161-
public String getResponse(ImportFastaSequencesForm form, Map<String, Pair<File, String>> files)
2158+
public String getResponse(ImportFastaSequencesForm form, Map<String, Pair<FileLike, String>> files)
21622159
{
21632160
JSONObject resp = new JSONObject();
21642161
try
21652162
{
2166-
for (Map.Entry<String, Pair<File, String>> entry : files.entrySet())
2163+
for (Map.Entry<String, Pair<FileLike, String>> entry : files.entrySet())
21672164
{
2168-
File file = entry.getValue().getKey();
2165+
File file = entry.getValue().getKey().toNioPathForRead().toFile();
21692166

21702167
Map<String, String> params = form.getNtParams();
21712168
Map<String, Object> libraryParams = form.getLibraryParams();
@@ -2444,15 +2441,15 @@ protected void setContentType(HttpServletResponse response)
24442441
}
24452442

24462443
@Override
2447-
protected File getTargetFile(String filename) throws IOException
2444+
protected FileLike getTargetFile(String filename) throws IOException
24482445
{
24492446
if (!PipelineService.get().hasValidPipelineRoot(getContainer()))
24502447
throw new UploadException("Pipeline root must be configured before uploading files", HttpServletResponse.SC_NOT_FOUND);
24512448

24522449
try
24532450
{
24542451
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
2455-
return FileUtil.findUniqueFileName(filename, targetDirectory).toNioPathForWrite().toFile();
2452+
return FileUtil.findUniqueFileName(filename, targetDirectory);
24562453
}
24572454
catch (ExperimentException e)
24582455
{
@@ -2461,14 +2458,14 @@ protected File getTargetFile(String filename) throws IOException
24612458
}
24622459

24632460
@Override
2464-
public String getResponse(ImportOutputFileForm form, Map<String, Pair<File, String>> files)
2461+
public String getResponse(ImportOutputFileForm form, Map<String, Pair<FileLike, String>> files)
24652462
{
24662463
JSONObject resp = new JSONObject();
24672464
try
24682465
{
2469-
for (Map.Entry<String, Pair<File, String>> entry : files.entrySet())
2466+
for (Map.Entry<String, Pair<FileLike, String>> entry : files.entrySet())
24702467
{
2471-
File file = entry.getValue().getKey();
2468+
FileLike file = entry.getValue().getKey();
24722469

24732470
Map<String, Object> params = new CaseInsensitiveHashMap<>();
24742471
params.put("name", form.getName());
@@ -2577,15 +2574,15 @@ protected void setContentType(HttpServletResponse response)
25772574
}
25782575

25792576
@Override
2580-
protected File getTargetFile(String filename) throws IOException
2577+
protected FileLike getTargetFile(String filename) throws IOException
25812578
{
25822579
if (!PipelineService.get().hasValidPipelineRoot(getContainer()))
25832580
throw new UploadException("Pipeline root must be configured before uploading files", HttpServletResponse.SC_NOT_FOUND);
25842581

25852582
try
25862583
{
25872584
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
2588-
return FileUtil.findUniqueFileName(filename, targetDirectory).toNioPathForWrite().toFile();
2585+
return FileUtil.findUniqueFileName(filename, targetDirectory);
25892586
}
25902587
catch (ExperimentException e)
25912588
{
@@ -2610,7 +2607,7 @@ public void validateCommand(ImportTrackForm form, Errors errors)
26102607
}
26112608

26122609
@Override
2613-
public String getResponse(ImportTrackForm form, Map<String, Pair<File, String>> files) throws UploadException
2610+
public String getResponse(ImportTrackForm form, Map<String, Pair<FileLike, String>> files) throws UploadException
26142611
{
26152612
JSONObject resp = new JSONObject();
26162613
if (form.getTrackName() == null || form.getLibraryId() == null)
@@ -2620,9 +2617,9 @@ public String getResponse(ImportTrackForm form, Map<String, Pair<File, String>>
26202617

26212618
try
26222619
{
2623-
for (Map.Entry<String, Pair<File, String>> entry : files.entrySet())
2620+
for (Map.Entry<String, Pair<FileLike, String>> entry : files.entrySet())
26242621
{
2625-
File file = entry.getValue().getKey();
2622+
File file = entry.getValue().getKey().toNioPathForRead().toFile();
26262623

26272624
try
26282625
{
@@ -2742,15 +2739,15 @@ protected void setContentType(HttpServletResponse response)
27422739
}
27432740

27442741
@Override
2745-
protected File getTargetFile(String filename) throws IOException
2742+
protected FileLike getTargetFile(String filename) throws IOException
27462743
{
27472744
if (!PipelineService.get().hasValidPipelineRoot(getContainer()))
27482745
throw new UploadException("Pipeline root must be configured before uploading files", HttpServletResponse.SC_NOT_FOUND);
27492746

27502747
try
27512748
{
27522749
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
2753-
return FileUtil.findUniqueFileName(filename, targetDirectory).toNioPathForWrite().toFile();
2750+
return FileUtil.findUniqueFileName(filename, targetDirectory);
27542751
}
27552752
catch (ExperimentException e)
27562753
{
@@ -2759,14 +2756,14 @@ protected File getTargetFile(String filename) throws IOException
27592756
}
27602757

27612758
@Override
2762-
public String getResponse(ImportChainFileForm form, Map<String, Pair<File, String>> files)
2759+
public String getResponse(ImportChainFileForm form, Map<String, Pair<FileLike, String>> files)
27632760
{
27642761
JSONObject resp = new JSONObject();
27652762
try
27662763
{
2767-
for (Map.Entry<String, Pair<File, String>> entry : files.entrySet())
2764+
for (Map.Entry<String, Pair<FileLike, String>> entry : files.entrySet())
27682765
{
2769-
File file = entry.getValue().getKey();
2766+
File file = entry.getValue().getKey().toNioPathForRead().toFile();
27702767

27712768
if (form.getGenomeId1() == null || form.getGenomeId2() == null)
27722769
{

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceIntegrationTests.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1144,7 +1144,7 @@ public void barcodeTest() throws Exception
11441144

11451145
private File getBaseDir(PipelineJob job)
11461146
{
1147-
return ((SequenceJob)job).getAnalysisDirectory();
1147+
return ((SequenceJob)job).getAnalysisDirectory().toNioPathForRead().toFile();
11481148
}
11491149

11501150
/**
@@ -1489,7 +1489,7 @@ protected void validateAlignmentJob(Set<PipelineJob> jobs, Collection<String> ad
14891489
protected void validateAlignmentJob(Set<PipelineJob> jobs, Collection<String> additionalFiles, SequenceReadsetImpl rs, Integer aligned, Integer unaligned, boolean includeRefFiles) throws Exception
14901490
{
14911491
SequenceAlignmentJob job = getAlignmentJob(jobs, rs);
1492-
File basedir = job.getAnalysisDirectory();
1492+
File basedir = job.getAnalysisDirectory().toNioPathForRead().toFile();
14931493
String outDir = SequenceTaskHelper.getUnzippedBaseName(rs.getReadDataImpl().get(0).getFile1());
14941494

14951495
Set<File> expectedOutputs = new HashSet<>();
@@ -2982,7 +2982,7 @@ public void testBismarkWithSavedLibraryAndAdapters() throws Exception
29822982
//job1Files.add("paired1/Alignment/TestReadset1.insertsize.metrics");
29832983
//job1Files.add("paired1/Alignment/TestReadset1.insertsize.metrics.pdf");
29842984

2985-
File basedir1 = getAlignmentJob(jobs, _readsets.get(0)).getAnalysisDirectory();
2985+
File basedir1 = getAlignmentJob(jobs, _readsets.get(0)).getAnalysisDirectory().toNioPathForRead().toFile();
29862986
addOptionalFile(job1Files, basedir1, "paired1/Alignment/CpG_OB_TestReadset1.txt.gz");
29872987
addOptionalFile(job1Files, basedir1, "paired1/Alignment/CpG_OT_TestReadset1.txt.gz");
29882988
addOptionalFile(job1Files, basedir1, "paired1/Alignment/Non_CpG_OB_TestReadset1.bam.txt.gz");
@@ -3008,7 +3008,7 @@ public void testBismarkWithSavedLibraryAndAdapters() throws Exception
30083008
//job2Files.add("paired3/Alignment/TestReadset2.summary.metrics");
30093009
//job2Files.add("paired3/Alignment/TestReadset2.insertsize.metrics");
30103010

3011-
File basedir2 = getAlignmentJob(jobs, _readsets.get(1)).getAnalysisDirectory();
3011+
File basedir2 = getAlignmentJob(jobs, _readsets.get(1)).getAnalysisDirectory().toNioPathForRead().toFile();
30123012
addOptionalFile(job2Files, basedir2, "paired3/Alignment/CpG_OB_TestReadset2.txt.gz");
30133013
addOptionalFile(job2Files, basedir2, "paired3/Alignment/CpG_OT_TestReadset2.txt.gz");
30143014
addOptionalFile(job2Files, basedir2, "paired3/Alignment/Non_CpG_OB_TestReadset2.bam.txt.gz");
@@ -3032,7 +3032,7 @@ public void testBismarkWithSavedLibraryAndAdapters() throws Exception
30323032
//job3Files.add("paired4/Alignment/TestReadset3.summary.metrics");
30333033
//job3Files.add("paired4/Alignment/TestReadset3.insertsize.metrics");
30343034

3035-
File basedir3 = getAlignmentJob(jobs, _readsets.get(2)).getAnalysisDirectory();
3035+
File basedir3 = getAlignmentJob(jobs, _readsets.get(2)).getAnalysisDirectory().toNioPathForRead().toFile();
30363036
addOptionalFile(job3Files, basedir3, "paired4/Alignment/CpG_OB_TestReadset3.txt.gz");
30373037
addOptionalFile(job3Files, basedir3, "paired4/Alignment/CpG_OT_TestReadset3.txt.gz");
30383038
addOptionalFile(job3Files, basedir3, "paired4/Alignment/Non_CpG_OB_TestReadset3.bam.txt.gz");
@@ -3109,7 +3109,7 @@ public void testBismarkWithSavedLibraryAdaptersAndDelete() throws Exception
31093109
job1Files.add("paired1/Alignment/TestReadset1.insertsize.metrics");
31103110
job1Files.add("paired1/Alignment/TestReadset1.insertsize.metrics.pdf");
31113111

3112-
File basedir1 = getAlignmentJob(jobs, _readsets.get(0)).getAnalysisDirectory();
3112+
File basedir1 = getAlignmentJob(jobs, _readsets.get(0)).getAnalysisDirectory().toNioPathForRead().toFile();
31133113
addOptionalFile(job1Files, basedir1, "paired1/Alignment/CpG_OB_TestReadset1.txt.gz");
31143114
addOptionalFile(job1Files, basedir1, "paired1/Alignment/CpG_OT_TestReadset1.txt.gz");
31153115
addOptionalFile(job1Files, basedir1, "paired1/Alignment/Non_CpG_OB_TestReadset1.bam.txt.gz");
@@ -3132,7 +3132,7 @@ public void testBismarkWithSavedLibraryAdaptersAndDelete() throws Exception
31323132
job2Files.add("paired3/Alignment/TestReadset2.summary.metrics");
31333133
//job2Files.add("paired3/Alignment/TestReadset2.insertsize.metrics");
31343134

3135-
File basedir2 = getAlignmentJob(jobs, _readsets.get(1)).getAnalysisDirectory();
3135+
File basedir2 = getAlignmentJob(jobs, _readsets.get(1)).getAnalysisDirectory().toNioPathForRead().toFile();
31363136
addOptionalFile(job2Files, basedir2, "paired3/Alignment/CpG_OB_TestReadset2.txt.gz");
31373137
addOptionalFile(job2Files, basedir2, "paired3/Alignment/CpG_OT_TestReadset2.txt.gz");
31383138
addOptionalFile(job2Files, basedir2, "paired3/Alignment/Non_CpG_OB_TestReadset2.bam.txt.gz");
@@ -3154,7 +3154,7 @@ public void testBismarkWithSavedLibraryAdaptersAndDelete() throws Exception
31543154
job3Files.add("paired4/Alignment/TestReadset3.summary.metrics");
31553155
//job3Files.add("paired4/Alignment/TestReadset3.insertsize.metrics");
31563156

3157-
File basedir3 = getAlignmentJob(jobs, _readsets.get(2)).getAnalysisDirectory();
3157+
File basedir3 = getAlignmentJob(jobs, _readsets.get(2)).getAnalysisDirectory().toNioPathForRead().toFile();
31583158
addOptionalFile(job3Files, basedir3, "paired4/Alignment/CpG_OB_TestReadset3.txt.gz");
31593159
addOptionalFile(job3Files, basedir3, "paired4/Alignment/CpG_OT_TestReadset3.txt.gz");
31603160
addOptionalFile(job3Files, basedir3, "paired4/Alignment/Non_CpG_OB_TestReadset3.bam.txt.gz");

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequencePipelineServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ public List<File> getSequenceJobInputFiles(PipelineJob job)
514514
return null;
515515
}
516516

517-
return ((SequenceJob) job).getInputFiles();
517+
return ((SequenceJob) job).getInputFiles().stream().map(f -> f.toNioPathForRead().toFile()).toList();
518518
}
519519

520520
@Override

0 commit comments

Comments
 (0)