INT-950: turns out all supporting classes already had this property, so only changes in the namespace and the parser were needed.

This commit is contained in:
Iwein Fuld
2009-12-28 18:58:56 +00:00
parent 8f86f0f578
commit b5de4b64dc
4 changed files with 82 additions and 62 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

@@ -200,6 +200,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

@@ -29,6 +29,11 @@
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

@@ -16,14 +16,8 @@
package org.springframework.integration.file.config;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.File;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.DirectFieldAccessor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
@@ -33,6 +27,12 @@ import org.springframework.integration.file.FileWritingMessageHandler;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.io.File;
import java.nio.charset.Charset;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* @author Mark Fisher
* @author Marius Bogoevici
@@ -41,70 +41,83 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
public class FileOutboundChannelAdapterParserTests {
@Autowired
@Qualifier("simpleAdapter")
EventDrivenConsumer simpleAdapter;
@Autowired
@Qualifier("simpleAdapter")
EventDrivenConsumer simpleAdapter;
@Autowired
@Qualifier("adapterWithCustomNameGenerator")
EventDrivenConsumer adapterWithCustomNameGenerator;
@Autowired
@Qualifier("adapterWithCustomNameGenerator")
EventDrivenConsumer adapterWithCustomNameGenerator;
@Autowired
@Qualifier("adapterWithDeleteFlag")
EventDrivenConsumer adapterWithDeleteFlag;
@Autowired
@Qualifier("adapterWithDeleteFlag")
EventDrivenConsumer adapterWithDeleteFlag;
@Autowired
@Qualifier("adapterWithOrder")
EventDrivenConsumer adapterWithOrder;
@Autowired
@Qualifier("adapterWithOrder")
EventDrivenConsumer adapterWithOrder;
@Autowired
@Qualifier("adapterWithCharset")
EventDrivenConsumer adapterWithCharset;
@Test
public void simpleAdapter() {
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(simpleAdapter);
FileWritingMessageHandler handler = (FileWritingMessageHandler)
adapterAccessor.getPropertyValue("handler");
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
File expected = new File(System.getProperty("java.io.tmpdir"));
File actual = (File) handlerAccessor.getPropertyValue("destinationDirectory");
assertEquals(expected, actual);
assertTrue(handlerAccessor.getPropertyValue("fileNameGenerator") instanceof DefaultFileNameGenerator);
assertEquals(Boolean.FALSE, handlerAccessor.getPropertyValue("deleteSourceFiles"));
}
@Test
public void simpleAdapter() {
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(simpleAdapter);
FileWritingMessageHandler handler = (FileWritingMessageHandler)
adapterAccessor.getPropertyValue("handler");
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
File expected = new File(System.getProperty("java.io.tmpdir"));
File actual = (File) handlerAccessor.getPropertyValue("destinationDirectory");
assertEquals(expected, actual);
assertTrue(handlerAccessor.getPropertyValue("fileNameGenerator") instanceof DefaultFileNameGenerator);
assertEquals(Boolean.FALSE, handlerAccessor.getPropertyValue("deleteSourceFiles"));
}
@Test
public void adapterWithCustomFileNameGenerator() {
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapterWithCustomNameGenerator);
FileWritingMessageHandler handler = (FileWritingMessageHandler)
adapterAccessor.getPropertyValue("handler");
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
File expected = new File(System.getProperty("java.io.tmpdir"));
File actual = (File) handlerAccessor.getPropertyValue("destinationDirectory");
assertEquals(expected, actual);
assertTrue(handlerAccessor.getPropertyValue("fileNameGenerator") instanceof CustomFileNameGenerator);
}
@Test
public void adapterWithCustomFileNameGenerator() {
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapterWithCustomNameGenerator);
FileWritingMessageHandler handler = (FileWritingMessageHandler)
adapterAccessor.getPropertyValue("handler");
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
File expected = new File(System.getProperty("java.io.tmpdir"));
File actual = (File) handlerAccessor.getPropertyValue("destinationDirectory");
assertEquals(expected, actual);
assertTrue(handlerAccessor.getPropertyValue("fileNameGenerator") instanceof CustomFileNameGenerator);
}
@Test
public void adapterWithDeleteFlag() {
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapterWithDeleteFlag);
FileWritingMessageHandler handler = (FileWritingMessageHandler)
adapterAccessor.getPropertyValue("handler");
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
assertEquals(Boolean.TRUE, handlerAccessor.getPropertyValue("deleteSourceFiles"));
}
@Test
public void adapterWithDeleteFlag() {
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapterWithDeleteFlag);
FileWritingMessageHandler handler = (FileWritingMessageHandler)
adapterAccessor.getPropertyValue("handler");
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
assertEquals(Boolean.TRUE, handlerAccessor.getPropertyValue("deleteSourceFiles"));
}
@Test
public void adapterWithOrder() {
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapterWithOrder);
FileWritingMessageHandler handler = (FileWritingMessageHandler)
adapterAccessor.getPropertyValue("handler");
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
assertEquals(555, handlerAccessor.getPropertyValue("order"));
}
@Test
public void adapterWithOrder() {
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapterWithOrder);
FileWritingMessageHandler handler = (FileWritingMessageHandler)
adapterAccessor.getPropertyValue("handler");
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
assertEquals(555, handlerAccessor.getPropertyValue("order"));
}
@Test
public void adapterWithAutoStartupFalse() {
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapterWithOrder);
assertEquals(Boolean.FALSE, adapterAccessor.getPropertyValue("autoStartup"));
}
@Test
public void adapterWithAutoStartupFalse() {
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"));
}
}