SWS-351 - Arbitrary parameter injection for @Endpoints

This commit is contained in:
Arjen Poutsma
2010-05-07 09:58:31 +00:00
parent f738427b74
commit 3556ee7f01
3 changed files with 77 additions and 19 deletions

View File

@@ -19,14 +19,17 @@ package org.springframework.ws.server.endpoint.adapter.method;
import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.stax.StAXSource;
import javax.xml.transform.stream.StreamSource;
import org.springframework.core.MethodParameter;
import org.springframework.ws.server.endpoint.annotation.RequestPayload;
import org.springframework.ws.server.endpoint.annotation.ResponsePayload;
import org.springframework.xml.transform.StaxSource;
import org.springframework.xml.transform.StringSource;
/** @author Arjen Poutsma */
@SuppressWarnings("Since15")
public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProcessorTestCase {
@Override
@@ -36,20 +39,22 @@ public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProce
@Override
protected MethodParameter[] createSupportedParameters() throws NoSuchMethodException {
return new MethodParameter[] {
new MethodParameter(getClass().getMethod("source", Source.class), 0),
new MethodParameter(getClass().getMethod("dom", DOMSource.class), 0),
new MethodParameter(getClass().getMethod("sax", SAXSource.class), 0),
new MethodParameter(getClass().getMethod("stream", StreamSource.class), 0)};
return new MethodParameter[]{new MethodParameter(getClass().getMethod("source", Source.class), 0),
new MethodParameter(getClass().getMethod("dom", DOMSource.class), 0),
new MethodParameter(getClass().getMethod("stax1", StaxSource.class), 0),
new MethodParameter(getClass().getMethod("sax", SAXSource.class), 0),
new MethodParameter(getClass().getMethod("stream", StreamSource.class), 0),
new MethodParameter(getClass().getMethod("stax2", StAXSource.class), 0)};
}
@Override
protected MethodParameter[] createSupportedReturnTypes() throws NoSuchMethodException {
return new MethodParameter[] {
new MethodParameter(getClass().getMethod("source", Source.class), -1),
new MethodParameter(getClass().getMethod("dom", DOMSource.class), -1),
new MethodParameter(getClass().getMethod("sax", SAXSource.class), -1),
new MethodParameter(getClass().getMethod("stream", StreamSource.class), -1)};
return new MethodParameter[]{new MethodParameter(getClass().getMethod("source", Source.class), -1),
new MethodParameter(getClass().getMethod("dom", DOMSource.class), -1),
new MethodParameter(getClass().getMethod("stax1", StaxSource.class), -1),
new MethodParameter(getClass().getMethod("sax", SAXSource.class), -1),
new MethodParameter(getClass().getMethod("stream", StreamSource.class), -1),
new MethodParameter(getClass().getMethod("stax2", StAXSource.class), -1)};
}
@Override
@@ -67,6 +72,11 @@ public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProce
return source;
}
@ResponsePayload
public StaxSource stax1(@RequestPayload StaxSource source) {
return source;
}
@ResponsePayload
public SAXSource sax(@RequestPayload SAXSource source) {
return source;
@@ -76,4 +86,9 @@ public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProce
public StreamSource stream(@RequestPayload StreamSource source) {
return source;
}
@ResponsePayload
public StAXSource stax2(@RequestPayload StAXSource source) {
return source;
}
}