Refactored MessageConsumer with onMessage to MessageHandler with handleMessage.

This commit is contained in:
Mark Fisher
2008-11-03 14:17:53 +00:00
parent 90dcb7e88b
commit 39a8486ac8
101 changed files with 745 additions and 741 deletions

View File

@@ -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");

View File

@@ -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)) {

View File

@@ -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);
}
}