Refactored MessageConsumer with onMessage to MessageHandler with handleMessage.
This commit is contained in:
@@ -22,20 +22,20 @@ import java.io.OutputStreamWriter;
|
||||
import java.nio.charset.Charset;
|
||||
|
||||
import org.springframework.integration.core.Message;
|
||||
import org.springframework.integration.message.MessageConsumer;
|
||||
import org.springframework.integration.message.MessageHandler;
|
||||
import org.springframework.integration.message.MessageHandlingException;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.FileCopyUtils;
|
||||
|
||||
/**
|
||||
* A {@link MessageConsumer} implementation that writes the Message payload to a
|
||||
* A {@link MessageHandler} implementation that writes the Message payload to a
|
||||
* file. If the payload is a File object, it will copy the File to this
|
||||
* consumer's directory. If the payload is a byte array or String, it will
|
||||
* write it directly. Otherwise, it will invoke toString on the payload Object.
|
||||
*
|
||||
* @author Mark Fisher
|
||||
*/
|
||||
public class FileWritingMessageConsumer implements MessageConsumer {
|
||||
public class FileWritingMessageHandler implements MessageHandler {
|
||||
|
||||
private volatile FileNameGenerator fileNameGenerator = new DefaultFileNameGenerator();
|
||||
|
||||
@@ -44,11 +44,11 @@ public class FileWritingMessageConsumer implements MessageConsumer {
|
||||
private volatile Charset charset = Charset.defaultCharset();
|
||||
|
||||
|
||||
public FileWritingMessageConsumer(String parentDirectoryPath) {
|
||||
public FileWritingMessageHandler(String parentDirectoryPath) {
|
||||
this(new File(parentDirectoryPath));
|
||||
}
|
||||
|
||||
public FileWritingMessageConsumer(File parentDirectory) {
|
||||
public FileWritingMessageHandler(File parentDirectory) {
|
||||
this.parentDirectory = parentDirectory;
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ public class FileWritingMessageConsumer implements MessageConsumer {
|
||||
this.charset = Charset.forName(charset);
|
||||
}
|
||||
|
||||
public void onMessage(Message<?> message) {
|
||||
public void handleMessage(Message<?> message) {
|
||||
Assert.notNull(message, "message must not be null");
|
||||
Object payload = message.getPayload();
|
||||
Assert.notNull(payload, "message payload must not be null");
|
||||
@@ -22,7 +22,7 @@ import org.springframework.beans.factory.support.AbstractBeanDefinition;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.xml.ParserContext;
|
||||
import org.springframework.integration.config.xml.AbstractOutboundChannelAdapterParser;
|
||||
import org.springframework.integration.file.FileWritingMessageConsumer;
|
||||
import org.springframework.integration.file.FileWritingMessageHandler;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
@@ -37,7 +37,7 @@ public class FileOutboundChannelAdapterParser extends AbstractOutboundChannelAda
|
||||
protected AbstractBeanDefinition parseConsumer(Element element, ParserContext parserContext) {
|
||||
String directory = element.getAttribute("directory");
|
||||
Assert.hasText(directory, "directory is required");
|
||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(FileWritingMessageConsumer.class);
|
||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(FileWritingMessageHandler.class);
|
||||
builder.addConstructorArgValue(directory);
|
||||
String fileNameGenerator = element.getAttribute("filename-generator");
|
||||
if (StringUtils.hasText(fileNameGenerator)) {
|
||||
|
||||
@@ -29,7 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.integration.endpoint.SubscribingConsumerEndpoint;
|
||||
import org.springframework.integration.file.DefaultFileNameGenerator;
|
||||
import org.springframework.integration.file.FileWritingMessageConsumer;
|
||||
import org.springframework.integration.file.FileWritingMessageHandler;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
@@ -53,23 +53,23 @@ public class FileOutboundChannelAdapterParserTests {
|
||||
@Test
|
||||
public void simpleAdapter() {
|
||||
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(simpleAdapter);
|
||||
FileWritingMessageConsumer consumer = (FileWritingMessageConsumer)
|
||||
adapterAccessor.getPropertyValue("consumer");
|
||||
DirectFieldAccessor consumerAccessor = new DirectFieldAccessor(consumer);
|
||||
FileWritingMessageHandler handler = (FileWritingMessageHandler)
|
||||
adapterAccessor.getPropertyValue("handler");
|
||||
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
|
||||
assertEquals(System.getProperty("java.io.tmpdir"),
|
||||
((File) consumerAccessor.getPropertyValue("parentDirectory")).getAbsolutePath());
|
||||
assertTrue(consumerAccessor.getPropertyValue("fileNameGenerator") instanceof DefaultFileNameGenerator);
|
||||
((File) handlerAccessor.getPropertyValue("parentDirectory")).getAbsolutePath());
|
||||
assertTrue(handlerAccessor.getPropertyValue("fileNameGenerator") instanceof DefaultFileNameGenerator);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void adapterWithCustomFileNameGenerator() {
|
||||
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapterWithCustomNameGenerator);
|
||||
FileWritingMessageConsumer consumer = (FileWritingMessageConsumer)
|
||||
adapterAccessor.getPropertyValue("consumer");
|
||||
DirectFieldAccessor consumerAccessor = new DirectFieldAccessor(consumer);
|
||||
FileWritingMessageHandler handler = (FileWritingMessageHandler)
|
||||
adapterAccessor.getPropertyValue("handler");
|
||||
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
|
||||
assertEquals(System.getProperty("java.io.tmpdir"),
|
||||
((File) consumerAccessor.getPropertyValue("parentDirectory")).getAbsolutePath());
|
||||
assertTrue(consumerAccessor.getPropertyValue("fileNameGenerator") instanceof CustomFileNameGenerator);
|
||||
((File) handlerAccessor.getPropertyValue("parentDirectory")).getAbsolutePath());
|
||||
assertTrue(handlerAccessor.getPropertyValue("fileNameGenerator") instanceof CustomFileNameGenerator);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user