Refactored payload and header transformers to use abstract base classes.
This commit is contained in:
@@ -6,30 +6,23 @@
|
||||
http://www.springframework.org/schema/integration-xml http://www.springframework.org/schema/integration/spring-integration-xml-1.0.xsd">
|
||||
|
||||
<si-xml:marshalling-transformer
|
||||
id="marshallingTransfomerNoResultFactory" marshaller="marshaller" />
|
||||
|
||||
|
||||
id="marshallingTransformerNoResultFactory" marshaller="marshaller" />
|
||||
|
||||
<si-xml:marshalling-transformer
|
||||
id="marshallingTransfomerStringResultFactory" marshaller="marshaller"
|
||||
id="marshallingTransformerStringResultFactory" marshaller="marshaller"
|
||||
result-factory="StringResult" />
|
||||
|
||||
<si-xml:marshalling-transformer
|
||||
id="marshallingTransfomerDOMResultFactory" marshaller="marshaller"
|
||||
id="marshallingTransformerDOMResultFactory" marshaller="marshaller"
|
||||
result-factory="DOMResult" />
|
||||
|
||||
|
||||
|
||||
<si-xml:marshalling-transformer
|
||||
id="marshallingTransfomerWithResultTransformer"
|
||||
id="marshallingTransformerWithResultTransformer"
|
||||
marshaller="marshaller" result-transformer="resultTransformer" />
|
||||
|
||||
<bean id="marshaller"
|
||||
class="org.springframework.integration.xml.config.StubMarshaller" />
|
||||
<bean id="marshaller" class="org.springframework.integration.xml.config.StubMarshaller" />
|
||||
|
||||
|
||||
<bean id="resultTransformer"
|
||||
class="org.springframework.integration.xml.config.StubResultTransformer">
|
||||
<bean id="resultTransformer" class="org.springframework.integration.xml.config.StubResultTransformer">
|
||||
<constructor-arg value="testReturn" />
|
||||
</bean>
|
||||
|
||||
|
||||
@@ -28,9 +28,9 @@ import org.w3c.dom.Document;
|
||||
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.integration.handler.MessageHandler;
|
||||
import org.springframework.integration.message.GenericMessage;
|
||||
import org.springframework.integration.message.Message;
|
||||
import org.springframework.integration.transformer.Transformer;
|
||||
import org.springframework.xml.transform.StringResult;
|
||||
|
||||
/**
|
||||
@@ -49,9 +49,9 @@ public class XmlMarshallingTransformerParserTests {
|
||||
|
||||
@Test
|
||||
public void testDefault() throws Exception {
|
||||
MessageHandler transformer = (MessageHandler) appContext.getBean("marshallingTransfomerNoResultFactory");
|
||||
Transformer transformer = (Transformer) appContext.getBean("marshallingTransformerNoResultFactory");
|
||||
GenericMessage<Object> message = new GenericMessage<Object>("hello");
|
||||
Message<?> result = transformer.handle(message);
|
||||
Message<?> result = transformer.transform(message);
|
||||
assertTrue("Wrong payload type", result.getPayload() instanceof DOMResult);
|
||||
Document doc = (Document) ((DOMResult) result.getPayload()).getNode();
|
||||
assertEquals("Wrong palyoad", "hello", doc.getDocumentElement().getTextContent());
|
||||
@@ -59,9 +59,9 @@ public class XmlMarshallingTransformerParserTests {
|
||||
|
||||
@Test
|
||||
public void testDefaultWithResultTransformer() throws Exception {
|
||||
MessageHandler transformer = (MessageHandler) appContext.getBean("marshallingTransfomerWithResultTransformer");
|
||||
Transformer transformer = (Transformer) appContext.getBean("marshallingTransformerWithResultTransformer");
|
||||
GenericMessage<Object> message = new GenericMessage<Object>("hello");
|
||||
Message<?> result = transformer.handle(message);
|
||||
Message<?> result = transformer.transform(message);
|
||||
assertTrue("Wrong payload type", result.getPayload() instanceof String);
|
||||
String resultPayload = (String)result.getPayload();
|
||||
assertEquals("Wrong palyoad", "testReturn", resultPayload);
|
||||
@@ -69,9 +69,9 @@ public class XmlMarshallingTransformerParserTests {
|
||||
|
||||
@Test
|
||||
public void testDOMResult() throws Exception {
|
||||
MessageHandler transformer = (MessageHandler) appContext.getBean("marshallingTransfomerDOMResultFactory");
|
||||
Transformer transformer = (Transformer) appContext.getBean("marshallingTransformerDOMResultFactory");
|
||||
GenericMessage<Object> message = new GenericMessage<Object>("hello");
|
||||
Message<?> result = transformer.handle(message);
|
||||
Message<?> result = transformer.transform(message);
|
||||
assertTrue("Wrong payload type ", result.getPayload() instanceof DOMResult);
|
||||
Document doc = (Document) ((DOMResult) result.getPayload()).getNode();
|
||||
assertEquals("Wrong palyoad", "hello", doc.getDocumentElement().getTextContent());
|
||||
@@ -79,9 +79,9 @@ public class XmlMarshallingTransformerParserTests {
|
||||
|
||||
@Test
|
||||
public void testStringResult() throws Exception {
|
||||
MessageHandler transformer = (MessageHandler) appContext.getBean("marshallingTransfomerStringResultFactory");
|
||||
Transformer transformer = (Transformer) appContext.getBean("marshallingTransformerStringResultFactory");
|
||||
GenericMessage<Object> message = new GenericMessage<Object>("hello");
|
||||
Message<?> result = transformer.handle(message);
|
||||
Message<?> result = transformer.transform(message);
|
||||
assertTrue("Wrong payload type", result.getPayload() instanceof StringResult);
|
||||
}
|
||||
|
||||
|
||||
@@ -26,10 +26,10 @@ import org.junit.Test;
|
||||
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.integration.handler.MessageHandler;
|
||||
import org.springframework.integration.message.GenericMessage;
|
||||
import org.springframework.integration.message.Message;
|
||||
import org.springframework.integration.message.MessagingException;
|
||||
import org.springframework.integration.transformer.Transformer;
|
||||
import org.springframework.integration.xml.util.XmlTestUtil;
|
||||
import org.springframework.xml.transform.StringSource;
|
||||
|
||||
@@ -53,41 +53,41 @@ public class XmlUnmarshallingTransformerParserTests {
|
||||
|
||||
@Test
|
||||
public void testDefaultUnmarshall() throws Exception {
|
||||
MessageHandler transformer = (MessageHandler) appContext.getBean("defaultUnmarshaller");
|
||||
Transformer transformer = (Transformer) appContext.getBean("defaultUnmarshaller");
|
||||
GenericMessage<Object> message = new GenericMessage<Object>(new StringSource(
|
||||
"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><order><orderItem>test</orderItem></order>"));
|
||||
Message<?> result = transformer.handle(message);
|
||||
Message<?> result = transformer.transform(message);
|
||||
assertEquals("Wrong payload after unmarshalling", "unmarshalled", result.getPayload());
|
||||
assertTrue("Wrong source passed to unmarshaller", unmarshaller.sourcesPassed.poll() instanceof StringSource);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnmarshallString() throws Exception {
|
||||
MessageHandler transformer = (MessageHandler) appContext.getBean("defaultUnmarshaller");
|
||||
Transformer transformer = (Transformer) appContext.getBean("defaultUnmarshaller");
|
||||
GenericMessage<Object> message = new GenericMessage<Object>(
|
||||
"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><order><orderItem>test</orderItem></order>");
|
||||
Message<?> result = transformer.handle(message);
|
||||
Message<?> result = transformer.transform(message);
|
||||
assertEquals("Wrong payload after unmarshalling", "unmarshalled", result.getPayload());
|
||||
assertTrue("Wrong source passed to unmarshaller", unmarshaller.sourcesPassed.poll() instanceof StringSource);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnmarshallDocument() throws Exception {
|
||||
MessageHandler transformer = (MessageHandler) appContext.getBean("defaultUnmarshaller");
|
||||
Transformer transformer = (Transformer) appContext.getBean("defaultUnmarshaller");
|
||||
GenericMessage<Object> message = new GenericMessage<Object>(
|
||||
XmlTestUtil
|
||||
.getDocumentForString("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><order><orderItem>test</orderItem></order>"));
|
||||
Message<?> result = transformer.handle(message);
|
||||
Message<?> result = transformer.transform(message);
|
||||
assertEquals("Wrong payload after unmarshalling", "unmarshalled", result.getPayload());
|
||||
assertTrue("Wrong source passed to unmarshaller", unmarshaller.sourcesPassed.poll() instanceof DOMSource);
|
||||
}
|
||||
|
||||
@Test(expected = MessagingException.class)
|
||||
public void testUnmarshallUnsupported() throws Exception {
|
||||
MessageHandler transformer = (MessageHandler) appContext.getBean("defaultUnmarshaller");
|
||||
Transformer transformer = (Transformer) appContext.getBean("defaultUnmarshaller");
|
||||
GenericMessage<Object> message = new GenericMessage<Object>(new StringBuffer(
|
||||
"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><order><orderItem>test</orderItem></order>"));
|
||||
transformer.handle(message);
|
||||
transformer.transform(message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -28,9 +28,9 @@ import org.w3c.dom.Document;
|
||||
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.integration.handler.MessageHandler;
|
||||
import org.springframework.integration.message.GenericMessage;
|
||||
import org.springframework.integration.message.Message;
|
||||
import org.springframework.integration.transformer.Transformer;
|
||||
import org.springframework.integration.xml.util.XmlTestUtil;
|
||||
|
||||
/**
|
||||
@@ -51,10 +51,10 @@ public class XsltPayloadTransformerParserTests {
|
||||
|
||||
@Test
|
||||
public void testWithResourceProvided() throws Exception {
|
||||
MessageHandler messageTransformer = (MessageHandler) applicationContext
|
||||
Transformer transformer = (Transformer) applicationContext
|
||||
.getBean("xsltTransformerWithResource");
|
||||
GenericMessage<Object> message = new GenericMessage<Object>(XmlTestUtil.getDomSourceForString(doc));
|
||||
Message<?> result = messageTransformer.handle(message);
|
||||
Message<?> result = transformer.transform(message);
|
||||
assertTrue("Payload was not a DOMResult", result.getPayload() instanceof DOMResult);
|
||||
Document doc = (Document) ((DOMResult) result.getPayload()).getNode();
|
||||
assertEquals("Wrong payload", "test", doc.getDocumentElement().getTextContent());
|
||||
@@ -62,25 +62,24 @@ public class XsltPayloadTransformerParserTests {
|
||||
|
||||
@Test
|
||||
public void testWithTemplatesProvided() throws Exception {
|
||||
MessageHandler messageTransformer = (MessageHandler) applicationContext
|
||||
Transformer transformer = (Transformer) applicationContext
|
||||
.getBean("xsltTransformerWithTemplates");
|
||||
GenericMessage<Object> message = new GenericMessage<Object>(XmlTestUtil.getDomSourceForString(doc));
|
||||
Message<?> result = messageTransformer.handle(message);
|
||||
Message<?> result = transformer.transform(message);
|
||||
assertTrue("Payload was not a DOMResult", result.getPayload() instanceof DOMResult);
|
||||
Document doc = (Document) ((DOMResult) result.getPayload()).getNode();
|
||||
assertEquals("Wrong payload", "test", doc.getDocumentElement().getTextContent());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testWithTemplatesAndResultTransformer() throws Exception {
|
||||
MessageHandler messageTransformer = (MessageHandler) applicationContext
|
||||
Transformer transformer = (Transformer) applicationContext
|
||||
.getBean("xsltTransformerWithTemplatesAndResultTransformer");
|
||||
GenericMessage<Object> message = new GenericMessage<Object>(XmlTestUtil.getDomSourceForString(doc));
|
||||
Message<?> result = messageTransformer.handle(message);
|
||||
|
||||
Message<?> result = transformer.transform(message);
|
||||
assertEquals("Wrong payload type", String.class, result.getPayload().getClass());
|
||||
String strResult = (String)result.getPayload();
|
||||
assertEquals("Wrong payload", "testReturn", strResult);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ public class XmlPayloadMarshallingTransformerTests {
|
||||
XmlPayloadMarshallingTransformer transformer = new XmlPayloadMarshallingTransformer(
|
||||
marshaller);
|
||||
transformer.setResultFactory(new StringResultFactory());
|
||||
Object result = transformer.transform("world");
|
||||
Object result = transformer.transformPayload("world");
|
||||
assertEquals(StringResult.class, result.getClass());
|
||||
assertEquals("hello world", result.toString());
|
||||
assertEquals("world", marshaller.payloads.get(0));
|
||||
@@ -53,7 +53,7 @@ public class XmlPayloadMarshallingTransformerTests {
|
||||
TestMarshaller marshaller = new TestMarshaller();
|
||||
XmlPayloadMarshallingTransformer transformer = new XmlPayloadMarshallingTransformer(
|
||||
marshaller);
|
||||
Object result = transformer.transform("world");
|
||||
Object result = transformer.transformPayload("world");
|
||||
assertEquals(DOMResult.class, result.getClass());
|
||||
assertEquals("world", marshaller.payloads.get(0));
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ public class XmlPayloadUnmarshallingTransformerTests {
|
||||
public void testStringSourceToString() {
|
||||
Unmarshaller unmarshaller = new TestUnmarshaller();
|
||||
XmlPayloadUnmarshallingTransformer transformer = new XmlPayloadUnmarshallingTransformer(unmarshaller);
|
||||
Object transformed = transformer.transform(new StringSource("world"));
|
||||
Object transformed = transformer.transformPayload(new StringSource("world"));
|
||||
assertEquals(String.class, transformed.getClass());
|
||||
assertEquals("hello world", transformed.toString());
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public class XsltPayloadTransformerTest {
|
||||
|
||||
@Test
|
||||
public void testDocumentAsPayload() throws Exception {
|
||||
Object transformed = transformer.transform(XmlTestUtil
|
||||
Object transformed = transformer.transformPayload(XmlTestUtil
|
||||
.getDocumentForString(docAsString));
|
||||
assertTrue("Wrong return type for document payload", Document.class
|
||||
.isAssignableFrom(transformed.getClass()));
|
||||
@@ -63,7 +63,7 @@ public class XsltPayloadTransformerTest {
|
||||
@Test
|
||||
public void testSourceAsPayload() throws Exception {
|
||||
Object transformed = transformer
|
||||
.transform(new StringSource(docAsString));
|
||||
.transformPayload(new StringSource(docAsString));
|
||||
assertEquals("Wrong return type for source payload", DOMResult.class,
|
||||
transformed.getClass());
|
||||
DOMResult result = (DOMResult) transformed;
|
||||
@@ -74,7 +74,7 @@ public class XsltPayloadTransformerTest {
|
||||
|
||||
@Test
|
||||
public void testStringAsPayload() throws Exception {
|
||||
Object transformed = transformer.transform(docAsString);
|
||||
Object transformed = transformer.transformPayload(docAsString);
|
||||
assertEquals("Wrong return type for string payload", String.class,
|
||||
transformed.getClass());
|
||||
String transformedString = (String) transformed;
|
||||
@@ -85,7 +85,7 @@ public class XsltPayloadTransformerTest {
|
||||
@Test
|
||||
public void testStringAsPayloadUseFactoriesTrue() throws Exception {
|
||||
transformer.setAlwaysUseSourceResultFactories(true);
|
||||
Object transformed = transformer.transform(docAsString);
|
||||
Object transformed = transformer.transformPayload(docAsString);
|
||||
assertEquals("Wrong return type for useFactories true",
|
||||
DOMResult.class, transformed.getClass());
|
||||
DOMResult result = (DOMResult) transformed;
|
||||
@@ -99,19 +99,19 @@ public class XsltPayloadTransformerTest {
|
||||
Integer returnValue = new Integer(13);
|
||||
transformer = new XsltPayloadTransformer(getXslResource(), new StubResultTransformer(returnValue));
|
||||
Object transformed = transformer
|
||||
.transform(new StringSource(docAsString));
|
||||
.transformPayload(new StringSource(docAsString));
|
||||
assertEquals("Wrong value from result conversion", returnValue,
|
||||
transformed);
|
||||
}
|
||||
|
||||
@Test(expected = TransformerException.class)
|
||||
public void testNonXmlString() throws Exception {
|
||||
transformer.transform("test");
|
||||
transformer.transformPayload("test");
|
||||
}
|
||||
|
||||
@Test(expected = MessagingException.class)
|
||||
public void testUnsupportedPayloadType() throws Exception {
|
||||
transformer.transform(new Long(12));
|
||||
transformer.transformPayload(new Long(12));
|
||||
}
|
||||
|
||||
private Resource getXslResource() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user