Skip to content

Commit 54a78c8

Browse files
AssayDataHandler and AssayUpload conversion File->FileObject
checkpoint
1 parent 4352276 commit 54a78c8

File tree

6 files changed

+71
-59
lines changed

6 files changed

+71
-59
lines changed

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

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.apache.commons.io.IOUtils;
2424
import org.apache.commons.lang3.ArrayUtils;
2525
import org.apache.commons.lang3.StringUtils;
26+
import org.apache.commons.vfs2.FileObject;
2627
import org.apache.logging.log4j.LogManager;
2728
import org.apache.logging.log4j.Logger;
2829
import org.biojava.nbio.core.sequence.DNASequence;
@@ -2021,7 +2022,7 @@ else if (o.has("relPath") || o.has("fileName"))
20212022
if (path != null)
20222023
{
20232024
f = pr.resolvePath(path);
2024-
f = new File(f, o.getString("fileName"));
2025+
f = FileUtil.appendName(f, o.getString("fileName"));
20252026
}
20262027
else
20272028
{
@@ -2554,8 +2555,8 @@ protected File getTargetFile(String filename) throws IOException
25542555

25552556
try
25562557
{
2557-
File targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
2558-
return AssayFileWriter.findUniqueFileName(filename, targetDirectory);
2558+
FileObject targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
2559+
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).getPath().toFile();
25592560
}
25602561
catch (ExperimentException e)
25612562
{
@@ -2687,8 +2688,8 @@ protected File getTargetFile(String filename) throws IOException
26872688

26882689
try
26892690
{
2690-
File targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
2691-
return AssayFileWriter.findUniqueFileName(filename, targetDirectory);
2691+
FileObject targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
2692+
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).getPath().toFile();
26922693
}
26932694
catch (ExperimentException e)
26942695
{
@@ -2852,8 +2853,8 @@ protected File getTargetFile(String filename) throws IOException
28522853

28532854
try
28542855
{
2855-
File targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
2856-
return AssayFileWriter.findUniqueFileName(filename, targetDirectory);
2856+
FileObject targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
2857+
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).getPath().toFile();
28572858
}
28582859
catch (ExperimentException e)
28592860
{
@@ -4141,10 +4142,10 @@ public ApiResponse execute(ImportOutputFilesForm form, BindException errors) thr
41414142
return null;
41424143
}
41434144

4144-
File targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
4145+
FileObject targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
41454146
if (!targetDirectory.exists())
41464147
{
4147-
targetDirectory.mkdirs();
4148+
targetDirectory.createFolder();
41484149
}
41494150

41504151
if (form.getRecords() != null)
@@ -4154,7 +4155,7 @@ public ApiResponse execute(ImportOutputFilesForm form, BindException errors) thr
41544155
Map<File, Map<String, Object>> toCreate = new HashMap<>();
41554156
for (JSONObject o : JsonUtil.toJSONObjectList(arr))
41564157
{
4157-
File file = new File(dirData, o.getString("fileName"));
4158+
File file = FileUtil.appendName(dirData, o.getString("fileName"));
41584159
if (!file.exists())
41594160
{
41604161
errors.reject(ERROR_MSG, "Unknown file: " + file.getPath());
@@ -4195,12 +4196,12 @@ public ApiResponse execute(ImportOutputFilesForm form, BindException errors) thr
41954196

41964197
for (File file : toCreate.keySet())
41974198
{
4198-
File target = AssayFileWriter.findUniqueFileName(file.getName(), targetDirectory);
4199-
FileUtils.moveFile(file, target);
4199+
FileObject target = AssayFileWriter.findUniqueFileName(file.getName(), targetDirectory);
4200+
FileUtils.moveFile(file, target.getPath().toFile());
42004201

42014202
ExpData data = ExperimentService.get().createData(getContainer(), new DataType("Sequence Output"));
42024203
data.setName(file.getName());
4203-
data.setDataFileURI(target.toURI());
4204+
data.setDataFileURI(target.getURI());
42044205
data.save(getUser());
42054206

42064207
Map<String, Object> params = toCreate.get(file);
@@ -4235,18 +4236,18 @@ public ApiResponse execute(ImportOutputFilesForm form, BindException errors) thr
42354236
}
42364237

42374238
_log.info("moving associated file: " + idx.getPath() + ", to: " + idxTargetName);
4238-
File idxTarget = new File(targetDirectory, idxTargetName);
4239+
FileObject idxTarget = targetDirectory.resolveFile(idxTargetName);
42394240
if (idxTarget.exists())
42404241
{
42414242
_log.error("target already exists, skipping: " + idxTargetName);
42424243
}
42434244
else
42444245
{
4245-
FileUtils.moveFile(idx, idxTarget);
4246+
FileUtils.moveFile(idx, idxTarget.getPath().toFile());
42464247

42474248
ExpData idxData = ExperimentService.get().createData(getContainer(), new DataType("Sequence Output"));
4248-
idxData.setName(idxTarget.getName());
4249-
idxData.setDataFileURI(idxTarget.toURI());
4249+
idxData.setName(idxTarget.getName().getBaseName());
4250+
idxData.setDataFileURI(idxTarget.getURI());
42504251
idxData.save(getUser());
42514252
}
42524253
}

SequenceAnalysis/src/org/labkey/sequenceanalysis/analysis/PicardAlignmentMetricsHandler.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ public void complete(PipelineJob job, List<SequenceOutputFile> inputs, List<Sequ
171171
File outputDir = ((SequenceOutputHandlerJob)job).getWebserverDir(false);
172172
List<File> metricsFiles = new ArrayList<>();
173173

174-
File mf = new File(outputDir, FileUtil.getBaseName(o.getFile()) + ".summary.metrics");
174+
File mf = FileUtil.appendName(outputDir, FileUtil.getBaseName(o.getFile()) + ".summary.metrics");
175175
if (mf.exists())
176176
{
177177
metricsFiles.add(mf);
@@ -181,7 +181,7 @@ else if (collectSummary)
181181
throw new PipelineJobException("Missing file: " + mf.getPath());
182182
}
183183

184-
File mf2 = new File(outputDir, FileUtil.getBaseName(o.getFile()) + ".insertsize.metrics");
184+
File mf2 = FileUtil.appendName(outputDir, FileUtil.getBaseName(o.getFile()) + ".insertsize.metrics");
185185
if (mf2.exists())
186186
{
187187
metricsFiles.add(mf2);
@@ -199,7 +199,7 @@ else if (collectInsertSize)
199199
}
200200
}
201201

202-
File mf3 = new File(outputDir, FileUtil.getBaseName(o.getFile()) + ".wgs.metrics");
202+
File mf3 = FileUtil.appendName(outputDir, FileUtil.getBaseName(o.getFile()) + ".wgs.metrics");
203203
if (mf3.exists())
204204
{
205205
metricsFiles.add(mf3);
@@ -209,7 +209,7 @@ else if (collectWgs)
209209
throw new PipelineJobException("Missing file: " + mf3.getPath());
210210
}
211211

212-
File mf4 = new File(outputDir, FileUtil.getBaseName(o.getFile()) + ".wgsNonZero.metrics");
212+
File mf4 = FileUtil.appendName(outputDir, FileUtil.getBaseName(o.getFile()) + ".wgsNonZero.metrics");
213213
if (mf4.exists())
214214
{
215215
metricsFiles.add(mf4);
@@ -284,7 +284,7 @@ public void processFilesRemote(List<SequenceOutputFile> inputFiles, JobContext c
284284
{
285285
job.getLogger().info("calculating summary metrics");
286286
job.setStatus(PipelineJob.TaskStatus.running, "CALCULATING SUMMARY METRICS");
287-
File metricsFile = new File(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".summary.metrics");
287+
File metricsFile = FileUtil.appendName(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".summary.metrics");
288288
AlignmentSummaryMetricsWrapper wrapper = new AlignmentSummaryMetricsWrapper(job.getLogger());
289289
wrapper.executeCommand(o.getFile(), ctx.getSequenceSupport().getCachedGenome(o.getLibrary_id()).getWorkingFastaFile(), metricsFile);
290290
}
@@ -293,7 +293,7 @@ public void processFilesRemote(List<SequenceOutputFile> inputFiles, JobContext c
293293
{
294294
job.getLogger().info("calculating wgs metrics");
295295
job.setStatus(PipelineJob.TaskStatus.running, "CALCULATING WGS METRICS");
296-
File wgsMetricsFile = new File(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".wgs.metrics");
296+
File wgsMetricsFile = FileUtil.appendName(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".wgs.metrics");
297297
CollectWgsMetricsWrapper wgsWrapper = new CollectWgsMetricsWrapper(job.getLogger());
298298
wgsWrapper.executeCommand(o.getFile(), wgsMetricsFile, ctx.getSequenceSupport().getCachedGenome(o.getLibrary_id()).getWorkingFastaFile());
299299
}
@@ -302,7 +302,7 @@ public void processFilesRemote(List<SequenceOutputFile> inputFiles, JobContext c
302302
{
303303
job.getLogger().info("calculating wgs metrics over non zero positions");
304304
job.setStatus(PipelineJob.TaskStatus.running, "CALCULATING WGS METRICS");
305-
File wgsMetricsFile = new File(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".wgsNonZero.metrics");
305+
File wgsMetricsFile = FileUtil.appendName(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".wgsNonZero.metrics");
306306
CollectWgsMetricsWithNonZeroCoverageWrapper wgsWrapper = new CollectWgsMetricsWithNonZeroCoverageWrapper(job.getLogger());
307307
wgsWrapper.executeCommand(o.getFile(), wgsMetricsFile, ctx.getSequenceSupport().getCachedGenome(o.getLibrary_id()).getWorkingFastaFile());
308308
}
@@ -311,8 +311,8 @@ public void processFilesRemote(List<SequenceOutputFile> inputFiles, JobContext c
311311
{
312312
job.getLogger().info("calculating insert size metrics");
313313
job.setStatus(PipelineJob.TaskStatus.running, "CALCULATING INSERT SIZE METRICS");
314-
File metricsFile = new File(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".insertsize.metrics");
315-
File metricsHistogram = new File(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".insertsize.metrics.pdf");
314+
File metricsFile = FileUtil.appendName(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".insertsize.metrics");
315+
File metricsHistogram = FileUtil.appendName(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".insertsize.metrics.pdf");
316316
CollectInsertSizeMetricsWrapper wrapper = new CollectInsertSizeMetricsWrapper(job.getLogger());
317317
wrapper.executeCommand(o.getFile(), metricsFile, metricsHistogram, ctx.getSequenceSupport().getCachedGenome(o.getLibrary_id()).getWorkingFastaFile());
318318
}
@@ -323,7 +323,7 @@ public void processFilesRemote(List<SequenceOutputFile> inputFiles, JobContext c
323323
job.setStatus(PipelineJob.TaskStatus.running, "RUNNING MARKDUPLICATES");
324324
MarkDuplicatesWrapper wrapper = new MarkDuplicatesWrapper(job.getLogger());
325325
File metricsFile = wrapper.getMetricsFile(o.getFile());
326-
File tempBam = new File(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".markDuplicates.bam");
326+
File tempBam = FileUtil.appendName(ctx.getOutputDir(), FileUtil.getBaseName(o.getFile()) + ".markDuplicates.bam");
327327
ctx.getFileManager().addIntermediateFile(tempBam);
328328
ctx.getFileManager().addIntermediateFile(SequenceUtil.getExpectedIndex(tempBam));
329329

SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/ReferenceLibraryPipelineJob.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
import com.fasterxml.jackson.core.type.TypeReference;
44
import com.fasterxml.jackson.databind.ObjectMapper;
5+
import org.apache.commons.vfs2.FileObject;
56
import org.jetbrains.annotations.Nullable;
67
import org.json.JSONObject;
78
import org.labkey.api.data.Container;
89
import org.labkey.api.data.SimpleFilter;
910
import org.labkey.api.data.TableInfo;
1011
import org.labkey.api.data.TableSelector;
12+
import org.labkey.api.files.virtual.AuthorizedFileSystem;
1113
import org.labkey.api.pipeline.PipeRoot;
1214
import org.labkey.api.pipeline.PipelineJobException;
1315
import org.labkey.api.pipeline.PipelineJobService;
@@ -107,7 +109,7 @@ protected void writeParameters(JSONObject params) throws IOException
107109

108110
public File getSerializedLibraryMembersFile()
109111
{
110-
return new File(getDataDirectory(), FileUtil.getBaseName(getLogFile()) + ".json");
112+
return FileUtil.appendName(getDataDirectory(), FileUtil.getBaseName(getLogFile()) + ".json");
111113
}
112114

113115
//for recreating an existing library
@@ -193,7 +195,7 @@ public boolean isCreateNew()
193195
}
194196

195197
@Override
196-
protected File createLocalDirectory(PipeRoot pipeRoot)
198+
protected FileObject createLocalDirectory(PipeRoot pipeRoot)
197199
{
198200
if (PipelineJobService.get().getLocationType() != PipelineJobService.LocationType.WebServer)
199201
{
@@ -211,7 +213,7 @@ protected File createLocalDirectory(PipeRoot pipeRoot)
211213
outputDir.mkdirs();
212214
}
213215

214-
return outputDir;
216+
return AuthorizedFileSystem.create(outputDir,true,true).getRoot();
215217
}
216218

217219
@Override

0 commit comments

Comments
 (0)