Skip to content

Commit 1aab1df

Browse files
FileSystemLike and FileLike interfaces
(it compiles)
1 parent d4bb26a commit 1aab1df

File tree

4 files changed

+48
-45
lines changed

4 files changed

+48
-45
lines changed

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

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
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;
2726
import org.apache.logging.log4j.LogManager;
2827
import org.apache.logging.log4j.Logger;
2928
import org.biojava.nbio.core.sequence.DNASequence;
@@ -168,6 +167,7 @@
168167
import org.labkey.sequenceanalysis.util.ChainFileValidator;
169168
import org.labkey.sequenceanalysis.util.FastqUtils;
170169
import org.labkey.sequenceanalysis.util.SequenceUtil;
170+
import org.labkey.vfs.FileLike;
171171
import org.springframework.beans.PropertyValues;
172172
import org.springframework.validation.BindException;
173173
import org.springframework.validation.Errors;
@@ -2555,8 +2555,8 @@ protected File getTargetFile(String filename) throws IOException
25552555

25562556
try
25572557
{
2558-
FileObject targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
2559-
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).getPath().toFile();
2558+
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
2559+
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).toNioPathForWrite().toFile();
25602560
}
25612561
catch (ExperimentException e)
25622562
{
@@ -2688,8 +2688,8 @@ protected File getTargetFile(String filename) throws IOException
26882688

26892689
try
26902690
{
2691-
FileObject targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
2692-
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).getPath().toFile();
2691+
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
2692+
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).toNioPathForWrite().toFile();
26932693
}
26942694
catch (ExperimentException e)
26952695
{
@@ -2853,8 +2853,8 @@ protected File getTargetFile(String filename) throws IOException
28532853

28542854
try
28552855
{
2856-
FileObject targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
2857-
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).getPath().toFile();
2856+
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
2857+
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).toNioPathForWrite().toFile();
28582858
}
28592859
catch (ExperimentException e)
28602860
{
@@ -3643,7 +3643,7 @@ else if (fastaFileType.isType(data.getFile()))
36433643
}
36443644
}
36453645

3646-
File dict = new File(data.getFile().getParentFile(), FileUtil.getBaseName(data.getFile()) + ".dict");
3646+
File dict = FileUtil.appendName(data.getFile().getParentFile(), FileUtil.getBaseName(data.getFile()) + ".dict");
36473647
if (dict.exists())
36483648
{
36493649
files.add(dict);
@@ -4142,10 +4142,10 @@ public ApiResponse execute(ImportOutputFilesForm form, BindException errors) thr
41424142
return null;
41434143
}
41444144

4145-
FileObject targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
4145+
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
41464146
if (!targetDirectory.exists())
41474147
{
4148-
targetDirectory.createFolder();
4148+
targetDirectory.mkdir();
41494149
}
41504150

41514151
if (form.getRecords() != null)
@@ -4196,12 +4196,12 @@ public ApiResponse execute(ImportOutputFilesForm form, BindException errors) thr
41964196

41974197
for (File file : toCreate.keySet())
41984198
{
4199-
FileObject target = AssayFileWriter.findUniqueFileName(file.getName(), targetDirectory);
4200-
FileUtils.moveFile(file, target.getPath().toFile());
4199+
FileLike target = AssayFileWriter.findUniqueFileName(file.getName(), targetDirectory);
4200+
FileUtils.moveFile(file, target.toNioPathForWrite().toFile());
42014201

42024202
ExpData data = ExperimentService.get().createData(getContainer(), new DataType("Sequence Output"));
42034203
data.setName(file.getName());
4204-
data.setDataFileURI(target.getURI());
4204+
data.setDataFileURI(target.toURI());
42054205
data.save(getUser());
42064206

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

42384238
_log.info("moving associated file: " + idx.getPath() + ", to: " + idxTargetName);
4239-
FileObject idxTarget = targetDirectory.resolveFile(idxTargetName);
4239+
FileLike idxTarget = targetDirectory.resolveChild(idxTargetName);
42404240
if (idxTarget.exists())
42414241
{
42424242
_log.error("target already exists, skipping: " + idxTargetName);
42434243
}
42444244
else
42454245
{
4246-
FileUtils.moveFile(idx, idxTarget.getPath().toFile());
4246+
FileUtils.moveFile(idx, idxTarget.toNioPathForWrite().toFile());
42474247

42484248
ExpData idxData = ExperimentService.get().createData(getContainer(), new DataType("Sequence Output"));
4249-
idxData.setName(idxTarget.getName().getBaseName());
4250-
idxData.setDataFileURI(idxTarget.getURI());
4249+
idxData.setName(idxTarget.getName());
4250+
idxData.setDataFileURI(idxTarget.toURI());
42514251
idxData.save(getUser());
42524252
}
42534253
}

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

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

33
import com.fasterxml.jackson.core.type.TypeReference;
44
import com.fasterxml.jackson.databind.ObjectMapper;
5-
import org.apache.commons.vfs2.FileObject;
65
import org.jetbrains.annotations.Nullable;
76
import org.json.JSONObject;
87
import org.labkey.api.data.Container;
98
import org.labkey.api.data.SimpleFilter;
109
import org.labkey.api.data.TableInfo;
1110
import org.labkey.api.data.TableSelector;
12-
import org.labkey.api.files.virtual.AuthorizedFileSystem;
1311
import org.labkey.api.pipeline.PipeRoot;
1412
import org.labkey.api.pipeline.PipelineJobException;
1513
import org.labkey.api.pipeline.PipelineJobService;
@@ -24,6 +22,8 @@
2422
import org.labkey.sequenceanalysis.SequenceAnalysisManager;
2523
import org.labkey.sequenceanalysis.SequenceAnalysisSchema;
2624
import org.labkey.sequenceanalysis.model.ReferenceLibraryMember;
25+
import org.labkey.vfs.FileLike;
26+
import org.labkey.vfs.FileSystemLike;
2727

2828
import java.io.File;
2929
import java.io.IOException;
@@ -195,7 +195,7 @@ public boolean isCreateNew()
195195
}
196196

197197
@Override
198-
protected FileObject createLocalDirectory(PipeRoot pipeRoot)
198+
protected FileLike createLocalDirectory(PipeRoot pipeRoot)
199199
{
200200
if (PipelineJobService.get().getLocationType() != PipelineJobService.LocationType.WebServer)
201201
{
@@ -213,7 +213,7 @@ protected FileObject createLocalDirectory(PipeRoot pipeRoot)
213213
outputDir.mkdirs();
214214
}
215215

216-
return AuthorizedFileSystem.create(outputDir,true,true).getRoot();
216+
return new FileSystemLike.Builder(outputDir).tempDir().root();
217217
}
218218

219219
@Override

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

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import htsjdk.samtools.util.IOUtil;
66
import org.apache.commons.io.IOUtils;
77
import org.apache.commons.lang3.StringUtils;
8-
import org.apache.commons.vfs2.FileObject;
98
import org.jetbrains.annotations.NotNull;
109
import org.jetbrains.annotations.Nullable;
1110
import org.json.JSONObject;
@@ -45,6 +44,7 @@
4544
import org.labkey.api.view.ViewBackgroundInfo;
4645
import org.labkey.api.writer.PrintWriters;
4746
import org.labkey.sequenceanalysis.util.SequenceUtil;
47+
import org.labkey.vfs.FileLike;
4848

4949
import java.io.BufferedReader;
5050
import java.io.File;
@@ -68,8 +68,8 @@ public class SequenceJob extends PipelineJob implements FileAnalysisJobSupport,
6868
private Integer _experimentRunRowId;
6969
private String _jobName;
7070
private String _description;
71-
private FileObject _webserverJobDir;
72-
private FileObject _parentWebserverJobDir;
71+
private FileLike _webserverJobDir;
72+
private FileLike _parentWebserverJobDir;
7373
private String _folderPrefix;
7474
private List<File> _inputFiles;
7575
private List<SequenceOutputFile> _outputsToCreate = new ArrayList<>();
@@ -96,10 +96,10 @@ protected SequenceJob(SequenceJob parentJob, String jobName, String subdirectory
9696
_description = parentJob._description;
9797
_support = parentJob.getSequenceSupport();
9898
_parentWebserverJobDir = parentJob._webserverJobDir;
99-
_webserverJobDir = parentJob._webserverJobDir.resolveFile(subdirectory);
99+
_webserverJobDir = parentJob._webserverJobDir.resolveChild(subdirectory);
100100
if (!_webserverJobDir.exists())
101101
{
102-
_webserverJobDir.createFolder();
102+
_webserverJobDir.mkdir();
103103
}
104104

105105
_folderPrefix = parentJob._folderPrefix;
@@ -158,7 +158,8 @@ protected void addCustomParams(JSONObject params)
158158

159159
private Path _getLogFile()
160160
{
161-
return AssayFileWriter.findUniqueFileName((FileUtil.makeLegalName(_jobName) + ".log"), getDataDirectoryFileObject()).getPath();
161+
var file = AssayFileWriter.findUniqueFileName((FileUtil.makeLegalName(_jobName) + ".log"), getDataDirectoryFileObject());
162+
return file.toNioPathForWrite();
162163
}
163164

164165
@Override
@@ -188,19 +189,19 @@ public void setDescription(String description)
188189
_description = description;
189190
}
190191

191-
protected FileObject createLocalDirectory(PipeRoot pipeRoot) throws IOException
192+
protected FileLike createLocalDirectory(PipeRoot pipeRoot) throws IOException
192193
{
193-
FileObject webserverOutDir = pipeRoot.getRootFileObject().resolveFile(_folderPrefix + "Pipeline");
194+
FileLike webserverOutDir = pipeRoot.getRootFileLike().resolveChild(_folderPrefix + "Pipeline");
194195
if (!webserverOutDir.exists())
195196
{
196-
webserverOutDir.createFolder();
197+
webserverOutDir.mkdir();
197198
}
198199

199200
String folderName = FileUtil.makeLegalName(StringUtils.capitalize(_folderPrefix) + "_" + FileUtil.getTimestamp());
200201
webserverOutDir = AssayFileWriter.findUniqueFileName(folderName, webserverOutDir);
201202
if (!webserverOutDir.exists())
202203
{
203-
webserverOutDir.createFolder();
204+
webserverOutDir.mkdir();
204205
}
205206

206207
return webserverOutDir;
@@ -302,7 +303,7 @@ public List<String> getSplitBaseNames()
302303
@Override
303304
public String getBaseName()
304305
{
305-
return _webserverJobDir.getName().getBaseName();
306+
return _webserverJobDir.getName();
306307
}
307308

308309
@Override
@@ -314,23 +315,25 @@ public String getBaseNameForFileType(FileType fileType)
314315
@Override
315316
public File getDataDirectory()
316317
{
317-
return _webserverJobDir.getPath().toFile();
318+
return _webserverJobDir.toNioPathForWrite().toFile();
318319
}
319320

320-
public FileObject getDataDirectoryFileObject()
321+
public FileLike getDataDirectoryFileObject()
321322
{
322323
return _webserverJobDir;
323324
}
324325

325326
public File getWebserverDir(boolean forceParent)
326327
{
327-
return forceParent && isSplitJob() ? _parentWebserverJobDir.getPath().toFile() : _webserverJobDir.getPath().toFile();
328+
return forceParent && isSplitJob() ?
329+
_parentWebserverJobDir.toNioPathForWrite().toFile() :
330+
_webserverJobDir.toNioPathForWrite().toFile();
328331
}
329332

330333
@Override
331334
public File getAnalysisDirectory()
332335
{
333-
return _webserverJobDir.getPath().toFile();
336+
return _webserverJobDir.toNioPathForWrite().toFile();
334337
}
335338

336339
@Override
@@ -362,14 +365,14 @@ public ParamParser createParamParser()
362365
public File getParametersFile()
363366
{
364367
var dir = _parentWebserverJobDir == null ? _webserverJobDir : _parentWebserverJobDir;
365-
return FileUtil.appendName(dir.getPath().toFile(),_folderPrefix + ".json");
368+
return FileUtil.appendName(dir.toNioPathForWrite().toFile(),_folderPrefix + ".json");
366369
}
367370

368371
@Nullable
369372
@Override
370373
public File getJobInfoFile()
371374
{
372-
return FileUtil.appendName(_webserverJobDir.getPath().toFile(), FileUtil.makeLegalName(_jobName) + ".job.json");
375+
return FileUtil.appendName(_webserverJobDir.toNioPathForWrite().toFile(), FileUtil.makeLegalName(_jobName) + ".job.json");
373376
}
374377

375378
@Override

blast/src/org/labkey/blast/BLASTController.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package org.labkey.blast;
1818

1919
import org.apache.commons.lang3.StringUtils;
20-
import org.apache.commons.vfs2.FileObject;
2120
import org.jetbrains.annotations.NotNull;
2221
import org.json.JSONObject;
2322
import org.labkey.api.action.AbstractFileUploadAction;
@@ -59,6 +58,7 @@
5958
import org.labkey.api.writer.PrintWriters;
6059
import org.labkey.blast.model.BlastJob;
6160
import org.labkey.blast.pipeline.BlastDatabasePipelineJob;
61+
import org.labkey.vfs.FileLike;
6262
import org.springframework.validation.BindException;
6363
import org.springframework.validation.Errors;
6464
import org.springframework.web.multipart.MultipartHttpServletRequest;
@@ -216,8 +216,8 @@ protected File getTargetFile(String filename) throws IOException
216216
AssayFileWriter writer = new AssayFileWriter();
217217
try
218218
{
219-
FileObject targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
220-
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).getPath().toFile();
219+
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
220+
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).toNioPathForWrite().toFile();
221221
}
222222
catch (ExperimentException e)
223223
{
@@ -264,14 +264,14 @@ public String getResponse(RunBlastForm form, Map<String, Pair<File, String>> fil
264264
AssayFileWriter writer = new AssayFileWriter();
265265
try
266266
{
267-
FileObject targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
268-
FileObject input = AssayFileWriter.findUniqueFileName("blast", targetDirectory);
267+
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
268+
FileLike input = AssayFileWriter.findUniqueFileName("blast", targetDirectory);
269269
input.createFile();
270-
try (PrintWriter fw = PrintWriters.getPrintWriter(input.getContent().getOutputStream()))
270+
try (PrintWriter fw = PrintWriters.getPrintWriter(input.openOutputStream()))
271271
{
272272
fw.write(form.getQuery());
273273
}
274-
inputFiles.add(input.getPath().toFile());
274+
inputFiles.add(input.toNioPathForRead().toFile());
275275
}
276276
catch (ExperimentException e)
277277
{

0 commit comments

Comments
 (0)