/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.component.wrapper.impl; import java.io.File; import java.io.IOException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import de.rcenvironment.core.component.wrapper.sandboxed.ExecutionEnvironment; import de.rcenvironment.core.utils.common.TempFileServiceAccess; import de.rcenvironment.core.utils.executor.CommandLineExecutor; import de.rcenvironment.core.utils.executor.LocalCommandLineExecutor; /** * An {@link ExecutionEnvironment} that sets up {@link CommandLineExecutor}s for the local system. * * @author Robert Mischke */ public class LocalExecutionEnvironment implements ExecutionEnvironment { private File localSandboxDir; private Log log = LogFactory.getLog(getClass()); @Override public void setupStaticEnvironment() throws IOException { // NOP } @Override public CommandLineExecutor setupExecutorWithSandbox() throws IOException { localSandboxDir = TempFileServiceAccess.getInstance() .createManagedTempDir("sandbox"); log.debug("Prepared local sandbox at " + localSandboxDir); return new LocalCommandLineExecutor(localSandboxDir); } @Override public String createUniqueTemporaryStoragePath() throws IOException { return TempFileServiceAccess.getInstance() .createManagedTempDir("static-session-storage") .getAbsolutePath(); } @Override public void tearDownSandbox(CommandLineExecutor executor) throws IOException { if (localSandboxDir != null){ log.debug("Cleaning local sandbox at " + localSandboxDir.getAbsolutePath()); TempFileServiceAccess.getInstance().disposeManagedTempDirOrFile( localSandboxDir); } else { log.warn("Failed to clean local sandbox as local sandbox directory was null."); } } @Override public void tearDownStaticEnvironment() { // NOP } }