diff --git a/execution/src/main/java/org/springframework/batch/execution/facade/BatchResourceFactoryBean.java b/execution/src/main/java/org/springframework/batch/execution/facade/BatchResourceFactoryBean.java index afb1b12a8..10040bd46 100644 --- a/execution/src/main/java/org/springframework/batch/execution/facade/BatchResourceFactoryBean.java +++ b/execution/src/main/java/org/springframework/batch/execution/facade/BatchResourceFactoryBean.java @@ -34,18 +34,21 @@ import org.springframework.util.StringUtils; /** * Strategy for locating different resources on the file system. For each unique * step, the same file handle will be returned. A unique step is defined as - * having the same job identifier and step name. An external file mover (such - * as an EAI solution) should rename and move any input files to conform to the + * having the same job identifier and step name. An external file mover (such as + * an EAI solution) should rename and move any input files to conform to the * patter defined by the file pattern.
* * If no pattern is passed in, then following default is used: * *
- * %BATCH_ROOT%/job_data/%JOB_NAME%/%JOB_IDENTIFIER%-%STEP_NAME%.txt
+ * /%BATCH_ROOT%/job_data/%JOB_NAME%/%JOB_IDENTIFIER%-%STEP_NAME%.txt
  * 
* * The %% variables are replaced with the corresponding bean property at run - * time, when the factory method is executed. + * time, when the factory method is executed. Note that the default pattern + * starts with a forward slash "/", which means the root directory will be + * interpreted as an absolute path if it too starts with "/" (because of the + * implementation of the Spring Core Resource abstractions). * * @author Tomas Slanina * @author Lucas Ward @@ -108,8 +111,7 @@ public class BatchResourceFactoryBean extends AbstractFactoryBean implements StepExecution execution = context.getStepExecution(); stepName = execution.getStep().getName(); jobName = execution.getStep().getJob().getName(); - jobIdentifier = execution.getJobExecution() - .getJobIdentifier(); + jobIdentifier = execution.getJobExecution().getJobIdentifier(); } /** @@ -137,7 +139,8 @@ public class BatchResourceFactoryBean extends AbstractFactoryBean implements private String replacePattern(String string, String pattern, String replacement) { - if (string==null) return null; + if (string == null) + return null; // check to ensure pattern exists in string. if (string.indexOf(pattern) != -1) { @@ -164,13 +167,14 @@ public class BatchResourceFactoryBean extends AbstractFactoryBean implements fileName = replacePattern(fileName, JOB_NAME_PATTERN, jobName == null ? "job" : jobName); fileName = replacePattern(fileName, STEP_NAME_PATTERN, stepName); - fileName = replacePattern(fileName, JOB_IDENTIFIER_PATTERN, jobIdentifier==null ? "step": jobIdentifier.getLabel()); + fileName = replacePattern(fileName, JOB_IDENTIFIER_PATTERN, + jobIdentifier == null ? "step" : jobIdentifier.getLabel()); return fileName; } public void setFilePattern(String filePattern) { - this.filePattern = replacePattern(filePattern, "\\", File.separator); + this.filePattern = replacePattern(filePattern, "\\", File.separator); } public void setRootDirectory(String rootDirectory) {