From fdb704e08601304209288077847bb071c9015b65 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Mon, 22 Sep 2008 04:48:02 +0000 Subject: [PATCH] DefaultFileNameGenerator now checks if the Message payload is a File. If so, and no 'filename' header has been set, it will reuse the same file name. --- .../file/DefaultFileNameGenerator.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/DefaultFileNameGenerator.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/DefaultFileNameGenerator.java index eed4df86b8..af6f2cf2fd 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/DefaultFileNameGenerator.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/DefaultFileNameGenerator.java @@ -16,12 +16,16 @@ package org.springframework.integration.file; +import java.io.File; + import org.springframework.integration.message.Message; import org.springframework.util.StringUtils; /** * Default implementation of the filename generator strategy. It first checks - * for the "filename" Message header, then falls back to the Message ID. + * for the "filename" Message header. Next, it checks if the Message payload is + * a File instance, and if so, it uses the same name. Finally, it falls back to + * the Message ID and adds the suffix '.msg'. * * @author Mark Fisher */ @@ -29,8 +33,13 @@ public class DefaultFileNameGenerator implements FileNameGenerator { public String generateFileName(Message message) { String filenameProperty = message.getHeaders().get(FILENAME_PROPERTY_KEY, String.class); - return StringUtils.hasText(filenameProperty) ? - filenameProperty : message.getHeaders().getId() + ".msg"; + if (StringUtils.hasText(filenameProperty)) { + return filenameProperty; + } + if (message.getPayload() instanceof File) { + return ((File) message.getPayload()).getName(); + } + return message.getHeaders().getId() + ".msg"; } }