diff --git a/SequenceAnalysis/api-src/org/labkey/api/sequenceanalysis/run/AbstractCommandWrapper.java b/SequenceAnalysis/api-src/org/labkey/api/sequenceanalysis/run/AbstractCommandWrapper.java index 27152ed45..4f45d5cbf 100644 --- a/SequenceAnalysis/api-src/org/labkey/api/sequenceanalysis/run/AbstractCommandWrapper.java +++ b/SequenceAnalysis/api-src/org/labkey/api/sequenceanalysis/run/AbstractCommandWrapper.java @@ -17,12 +17,13 @@ import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.Nullable; import org.labkey.api.pipeline.PipelineJobException; import org.labkey.api.pipeline.PipelineJobService; import org.labkey.api.sequenceanalysis.pipeline.SequencePipelineService; +import org.labkey.api.util.LabKeyProcessBuilder; import org.labkey.api.util.StringUtilsLabKey; import java.io.BufferedReader; @@ -43,7 +44,7 @@ abstract public class AbstractCommandWrapper implements CommandWrapper { private File _outputDir = null; private File _workingDir = null; - private Logger _log; + private final Logger _log; private boolean _logPath = false; private Level _logLevel = Level.DEBUG; private boolean _warnNonZeroExits = true; @@ -105,9 +106,9 @@ public void execute(List params, ProcessBuilder.Redirect redirect) throw execute(params, redirect, null); } - public ProcessBuilder getProcessBuilder(List params) + public LabKeyProcessBuilder getProcessBuilder(List params) { - ProcessBuilder pb = new ProcessBuilder(params); + LabKeyProcessBuilder pb = new LabKeyProcessBuilder(params); setPath(pb); if (!_environment.isEmpty()) @@ -134,7 +135,7 @@ private void execute(List params, ProcessBuilder.Redirect redirect, @Nul getLogger().info("\t" + StringUtils.join(params, " ")); _commandsExecuted.add(StringUtils.join(params, " ")); - ProcessBuilder pb = getProcessBuilder(params); + LabKeyProcessBuilder pb = getProcessBuilder(params); pb.redirectErrorStream(false); if (redirect != null) { @@ -197,7 +198,7 @@ public Integer getLastReturnCode() return _lastReturnCode; } - private void setPath(ProcessBuilder pb) + private void setPath(LabKeyProcessBuilder pb) { // Update PATH environment variable to make sure all files in the tools // directory and the directory of the executable or on the path. diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceRemoteIntegrationTests.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceRemoteIntegrationTests.java index 57923f571..b0f9b5ab6 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceRemoteIntegrationTests.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceRemoteIntegrationTests.java @@ -16,6 +16,7 @@ import org.labkey.api.pipeline.WorkDirectory; import org.labkey.api.reader.Readers; import org.labkey.api.util.FileUtil; +import org.labkey.api.util.LabKeyProcessBuilder; import org.labkey.api.writer.PrintWriters; import org.labkey.sequenceanalysis.pipeline.AlignmentInitTask; import org.labkey.sequenceanalysis.pipeline.PrepareAlignerIndexesTask; @@ -212,7 +213,7 @@ protected void executeJobRemote(File workDir, @Nullable File jobJson) throws IOE args.add(jobJson.toURI().toString()); } - ProcessBuilder pb = new ProcessBuilder(args); + LabKeyProcessBuilder pb = new LabKeyProcessBuilder(args); pb.directory(workDir); _log.info("Executing job in '{}': {}", pb.directory().getAbsolutePath(), String.join(" ", pb.command())); diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/run/preprocessing/TrimmomaticWrapper.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/run/preprocessing/TrimmomaticWrapper.java index 2494c8504..493b2dcff 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/run/preprocessing/TrimmomaticWrapper.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/run/preprocessing/TrimmomaticWrapper.java @@ -21,6 +21,7 @@ import org.labkey.api.sequenceanalysis.run.AbstractCommandWrapper; import org.labkey.api.util.FileUtil; import org.labkey.api.util.JobRunner; +import org.labkey.api.util.LabKeyProcessBuilder; import org.labkey.api.util.Pair; import org.labkey.api.util.StringUtilsLabKey; import org.labkey.sequenceanalysis.model.AdapterModel; @@ -272,7 +273,7 @@ else if (FileUtils.sizeOf(files.get(2)) == 0) public void doTrim(List params) throws PipelineJobException { - ProcessBuilder pb = getProcessBuilder(params); + LabKeyProcessBuilder pb = getProcessBuilder(params); getLogger().info(StringUtils.join(params, " ")); pb.redirectErrorStream(false); Process p = null; diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/run/util/FastqcRunner.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/run/util/FastqcRunner.java index 58f6be91a..5c1ab565d 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/run/util/FastqcRunner.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/run/util/FastqcRunner.java @@ -33,6 +33,7 @@ import org.labkey.api.util.Compress; import org.labkey.api.util.FileType; import org.labkey.api.util.FileUtil; +import org.labkey.api.util.LabKeyProcessBuilder; import org.labkey.api.util.Path; import org.labkey.api.util.StringUtilsLabKey; import org.labkey.sequenceanalysis.SequenceAnalysisModule; @@ -139,7 +140,7 @@ private void runForFile(File f) _logger.info("running fastqc:"); _logger.info(StringUtils.join(params, " ")); - ProcessBuilder pb = new ProcessBuilder(params); + LabKeyProcessBuilder pb = new LabKeyProcessBuilder(params); pb.redirectErrorStream(true); pb.directory(f.getParentFile());