INT-1067: backported fix for INT-950

This commit is contained in:
Iwein Fuld
2010-04-09 14:03:26 +00:00
parent 0018abe608
commit 33459e619d
4 changed files with 22 additions and 2 deletions

View File

@@ -50,6 +50,7 @@ abstract class FileWritingMessageHandlerBeanDefinitionBuilder {
}
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "auto-create-directory");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "delete-source-files");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "charset");
String fileNameGenerator = element.getAttribute("filename-generator");
if (StringUtils.hasText(fileNameGenerator)) {
builder.addPropertyReference("fileNameGenerator", fileNameGenerator);

View File

@@ -184,6 +184,7 @@
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="auto-startup" type="xsd:string"/>
<xsd:attribute name="charset" type="xsd:string"/>
</xsd:complexType>
<xsd:element name="file-to-string-transformer">

View File

@@ -28,7 +28,12 @@
channel="testChannel"
delete-source-files="true"
directory="${java.io.tmpdir}"/>
<file:outbound-channel-adapter id="adapterWithCharset"
channel="testChannel"
charset="UTF-8"
directory="${java.io.tmpdir}"/>
<file:outbound-channel-adapter id="adapterWithOrder"
channel="testChannel"
order="555"

View File

@@ -20,6 +20,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.nio.charset.Charset;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -56,7 +57,10 @@ public class FileOutboundChannelAdapterParserTests {
@Autowired
@Qualifier("adapterWithOrder")
EventDrivenConsumer adapterWithOrder;
@Autowired
@Qualifier("adapterWithCharset")
EventDrivenConsumer adapterWithCharset;
@Test
public void simpleAdapter() {
@@ -106,5 +110,14 @@ public class FileOutboundChannelAdapterParserTests {
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapterWithOrder);
assertEquals(Boolean.FALSE, adapterAccessor.getPropertyValue("autoStartup"));
}
@Test
public void adapterWithCharset() {
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapterWithCharset);
FileWritingMessageHandler handler = (FileWritingMessageHandler)
adapterAccessor.getPropertyValue("handler");
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
assertEquals(Charset.forName("UTF-8"), handlerAccessor.getPropertyValue("charset"));
}
}