INT-1951, INT-1981 added parametrization to references of SourceExtractor

This commit is contained in:
Oleg Zhurakousky
2011-08-08 10:44:19 -04:00
parent 71f6a7278b
commit fae321bf4b
3 changed files with 10 additions and 9 deletions

View File

@@ -38,21 +38,22 @@ import org.springframework.xml.transform.TransformerObjectSupport;
* An outbound Messaging Gateway for invoking a Web Service.
*
* @author Mark Fisher
* @author Oleg Zhurakousky
*/
public class SimpleWebServiceOutboundGateway extends AbstractWebServiceOutboundGateway {
private final SourceExtractor sourceExtractor;
private final SourceExtractor<?> sourceExtractor;
public SimpleWebServiceOutboundGateway(DestinationProvider destinationProvider) {
this(destinationProvider, null, null);
}
public SimpleWebServiceOutboundGateway(DestinationProvider destinationProvider, SourceExtractor sourceExtractor) {
public SimpleWebServiceOutboundGateway(DestinationProvider destinationProvider, SourceExtractor<?> sourceExtractor) {
this(destinationProvider, sourceExtractor, (WebServiceMessageFactory) null);
}
public SimpleWebServiceOutboundGateway(DestinationProvider destinationProvider, SourceExtractor sourceExtractor, WebServiceMessageFactory messageFactory) {
public SimpleWebServiceOutboundGateway(DestinationProvider destinationProvider, SourceExtractor<?> sourceExtractor, WebServiceMessageFactory messageFactory) {
super(destinationProvider, messageFactory);
this.sourceExtractor = (sourceExtractor != null) ? sourceExtractor : new DefaultSourceExtractor();
}
@@ -83,11 +84,11 @@ public class SimpleWebServiceOutboundGateway extends AbstractWebServiceOutboundG
}
private static class DefaultSourceExtractor extends TransformerObjectSupport implements SourceExtractor {
private static class DefaultSourceExtractor extends TransformerObjectSupport implements SourceExtractor<DOMSource> {
public Object extractData(Source source) throws IOException, TransformerException {
public DOMSource extractData(Source source) throws IOException, TransformerException {
if (source instanceof DOMSource) {
return source;
return (DOMSource)source;
}
DOMResult result = new DOMResult();
this.transform(source, result);

View File

@@ -26,7 +26,7 @@ import org.springframework.ws.client.core.SourceExtractor;
/**
* @author Mark Fisher
*/
public class StubSourceExtractor implements SourceExtractor {
public class StubSourceExtractor implements SourceExtractor<Object> {
public Object extractData(Source source) throws IOException, TransformerException {
return "test";

View File

@@ -102,7 +102,7 @@ public class WebServiceOutboundGatewayParserTests {
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
SourceExtractor sourceExtractor = (SourceExtractor) context.getBean("sourceExtractor");
SourceExtractor<?> sourceExtractor = (SourceExtractor<?>) context.getBean("sourceExtractor");
assertEquals(sourceExtractor, accessor.getPropertyValue("sourceExtractor"));
}
@@ -138,7 +138,7 @@ public class WebServiceOutboundGatewayParserTests {
ApplicationContext context = new ClassPathXmlApplicationContext(
"simpleWebServiceOutboundGatewayParserTests.xml", this.getClass());
AbstractEndpoint endpoint = (AbstractEndpoint) context.getBean("gatewayWithCustomSourceExtractorAndMessageFactory");
SourceExtractor sourceExtractor = (SourceExtractor) context.getBean("sourceExtractor");
SourceExtractor<?> sourceExtractor = (SourceExtractor<?>) context.getBean("sourceExtractor");
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());