X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.simple%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2FFileExecutionResources.java;h=a023fc7f579ba99d30f96a37150752425dc4c443;hb=5ae9dc81ad1c3ddfa99a8456b0c5263dd483642d;hp=e6530832ad7638ea7d41babadfe64363df49a4b9;hpb=2531d7501fcb56eed16a7c61b2d842bd65228f53;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/execution/FileExecutionResources.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/execution/FileExecutionResources.java index e6530832a..a023fc7f5 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/execution/FileExecutionResources.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/execution/FileExecutionResources.java @@ -14,12 +14,20 @@ public class FileExecutionResources implements ExecutionResources { private final static Log log = LogFactory .getLog(FileExecutionResources.class); protected final static String DEFAULT_EXECUTION_RESOURCES_DIRNAME = "executionResources"; + public final static String DEFAULT_EXECUTION_RESOURCES_TMP_PATH = System + .getProperty("java.io.tmpdir") + + File.separator + + "slc" + + File.separator + + DEFAULT_EXECUTION_RESOURCES_DIRNAME; private File baseDir; private ExecutionContext executionContext; private String prefixDatePattern = "yyyyMMdd_HHmmss_"; private SimpleDateFormat sdf = null; + private Boolean withExecutionSubdirectory = true; + public FileExecutionResources() { // Default base directory String osgiInstanceArea = System.getProperty("osgi.instance.area"); @@ -38,8 +46,7 @@ public class FileExecutionResources implements ExecutionResources { baseDir = new File(osgiInstanceAreaDefault + File.separator + DEFAULT_EXECUTION_RESOURCES_DIRNAME); } else {// outside OSGi - baseDir = new File(tempDir + File.separator + "slc" - + File.separator + DEFAULT_EXECUTION_RESOURCES_DIRNAME); + baseDir = new File(DEFAULT_EXECUTION_RESOURCES_TMP_PATH); } } @@ -61,6 +68,7 @@ public class FileExecutionResources implements ExecutionResources { parentDir.mkdirs(); } Resource resource = new FileSystemResource(file); + if (log.isTraceEnabled()) log.trace("Returns writable resource " + resource); return resource; @@ -69,13 +77,18 @@ public class FileExecutionResources implements ExecutionResources { public File getFile(String relativePath) { Assert.notNull(executionContext, "execution context is null"); - String path = baseDir.getPath() + File.separator - + sdf().format(executionContext.getCreationDate()) - + executionContext.getUuid(); - File executionDir = new File(path); - - return new File(executionDir.getPath() + File.separator - + relativePath.replace('/', File.separatorChar)); + if (withExecutionSubdirectory) { + String path = baseDir.getPath() + File.separator + + sdf().format(executionContext.getCreationDate()) + + executionContext.getUuid(); + File executionDir = new File(path); + + return new File(executionDir.getPath() + File.separator + + relativePath.replace('/', File.separatorChar)); + } else { + return new File(baseDir.getPath() + File.separator + + relativePath.replace('/', File.separatorChar)); + } } protected String removeFilePrefix(String url) { @@ -110,4 +123,9 @@ public class FileExecutionResources implements ExecutionResources { public String getPrefixDatePattern() { return prefixDatePattern; } + + public void setWithExecutionSubdirectory(Boolean withExecutionSubdirectory) { + this.withExecutionSubdirectory = withExecutionSubdirectory; + } + }