]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/FileExecutionResources.java
Fix ressource leak
[gpl/argeo-slc.git] / runtime / org.argeo.slc.core / src / main / java / org / argeo / slc / core / execution / FileExecutionResources.java
index 646a1c156201cd8cac88e9092dd59d397a40d823..d225cd193fd87df74aa9c977a15b9fde2d3a45eb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+ * Copyright (C) 2007-2012 Argeo GmbH
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,7 +13,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.argeo.slc.core.execution;
 
 import java.io.File;
@@ -22,6 +21,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.text.SimpleDateFormat;
+import java.util.Date;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
@@ -32,6 +32,7 @@ import org.springframework.core.io.FileSystemResource;
 import org.springframework.core.io.Resource;
 import org.springframework.util.Assert;
 
+/** Implements write access to resources based on standard Java {@link File} */
 public class FileExecutionResources implements ExecutionResources {
        private final static Log log = LogFactory
                        .getLog(FileExecutionResources.class);
@@ -39,13 +40,14 @@ public class FileExecutionResources implements ExecutionResources {
        public final static String DEFAULT_EXECUTION_RESOURCES_TMP_PATH = System
                        .getProperty("java.io.tmpdir")
                        + File.separator
-                       + "slc"
+                       + System.getProperty("user.name")
                        + File.separator
-                       + DEFAULT_EXECUTION_RESOURCES_DIRNAME;
+                       + "slc"
+                       + File.separator + DEFAULT_EXECUTION_RESOURCES_DIRNAME;
 
        private File baseDir;
        private ExecutionContext executionContext;
-       private String prefixDatePattern = "yyyyMMdd_HHmmss_";
+       private String prefixDatePattern = "yyMMdd_HHmmss_SSS";
        private SimpleDateFormat sdf = null;
 
        private Boolean withExecutionSubdirectory = true;
@@ -169,14 +171,12 @@ public class FileExecutionResources implements ExecutionResources {
 
        public File getWritableBaseDir() {
                if (withExecutionSubdirectory) {
+                       Date executionContextCreationDate = (Date) executionContext
+                                       .getVariable(ExecutionContext.VAR_EXECUTION_CONTEXT_CREATION_DATE);
                        Assert.notNull(executionContext, "execution context is null");
-                       String path = baseDir.getPath()
-                                       + File.separator
-                                       + sdf()
-                                                       .format(
-                                                                       executionContext
-                                                                                       .getVariable(ExecutionContext.VAR_EXECUTION_CONTEXT_CREATION_DATE))
-                                       + executionContext.getUuid();
+                       String path = baseDir.getPath() + File.separator
+                                       + sdf().format(executionContextCreationDate);
+                       // TODO write execution id somewhere? like in a txt file
                        return new File(path);
                } else {
                        return baseDir;