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");
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);
}
}
parentDir.mkdirs();
}
Resource resource = new FileSystemResource(file);
+
if (log.isTraceEnabled())
log.trace("Returns writable resource " + resource);
return resource;
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) {
public String getPrefixDatePattern() {
return prefixDatePattern;
}
+
+ public void setWithExecutionSubdirectory(Boolean withExecutionSubdirectory) {
+ this.withExecutionSubdirectory = withExecutionSubdirectory;
+ }
+
}