Simplified router hierarchy and only implementing ChannelRegistryAware for routers that resolve channel names.

This commit is contained in:
Mark Fisher
2008-09-29 20:59:17 +00:00
parent 0c35a1781e
commit 590d346f08
9 changed files with 73 additions and 89 deletions

View File

@@ -18,20 +18,21 @@ package org.springframework.integration.xml.router;
import java.util.List;
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.springframework.integration.message.Message;
import org.springframework.integration.router.AbstractMultiChannelNameResolver;
import org.springframework.integration.router.AbstractChannelNameResolver;
import org.springframework.integration.xml.DefaultXmlPayloadConverter;
import org.springframework.integration.xml.XmlPayloadConverter;
import org.springframework.util.Assert;
import org.springframework.xml.xpath.NodeMapper;
import org.springframework.xml.xpath.XPathExpression;
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
/**
* @author Jonas Partner
*/
public class XPathMultiChannelNameResolver extends AbstractMultiChannelNameResolver {
public class XPathMultiChannelNameResolver extends AbstractChannelNameResolver {
private final XPathExpression xPathExpression;
@@ -39,11 +40,18 @@ public class XPathMultiChannelNameResolver extends AbstractMultiChannelNameResol
private volatile NodeMapper nodeMapper = new TextContentNodeMapper();
public XPathMultiChannelNameResolver(XPathExpression xPathExpression) {
Assert.notNull("XPathExpression must not be null");
this.xPathExpression = xPathExpression;
}
public void setPayloadConvertor(XmlPayloadConverter payloadConvertor) {
Assert.notNull(payloadConvertor, "XmlPayloadConverter must not be null");
this.payloadConvertor = payloadConvertor;
}
public void setNodeMapper(NodeMapper nodeMapper) {
Assert.notNull(nodeMapper, "NodeMapper must not be null");
this.nodeMapper = nodeMapper;
@@ -56,9 +64,6 @@ public class XPathMultiChannelNameResolver extends AbstractMultiChannelNameResol
return (String[]) channelNamesList.toArray(new String[channelNamesList.size()]);
}
public void setPayloadConvertor(XmlPayloadConverter payloadConvertor) {
this.payloadConvertor = payloadConvertor;
}
private static class TextContentNodeMapper implements NodeMapper {