SWS-351 - Arbitrary parameter injection for @Endpoints

This commit is contained in:
Arjen Poutsma
2010-05-03 10:14:02 +00:00
parent 637a7a0eaa
commit a9cc3333d1
6 changed files with 8 additions and 8 deletions

View File

@@ -69,7 +69,7 @@ public abstract class AbstractPayloadMethodProcessor extends TransformerObjectSu
public final Object resolveArgument(MessageContext messageContext, MethodParameter parameter) throws Exception {
Source requestPayload = getRequestPayload(messageContext);
return requestPayload != null ? resolveRequestPayloadArgument(requestPayload, parameter) : null;
return requestPayload != null ? resolveRequestPayloadArgument(parameter, requestPayload) : null;
}
/** Returns the request payload as {@code Source}. */
@@ -81,12 +81,12 @@ public abstract class AbstractPayloadMethodProcessor extends TransformerObjectSu
/**
* Resolves the given parameter, annotated with {@link RequestPayload}, into a method argument.
*
* @param requestPayload the request payload
* @param parameter the parameter to resolve to an argument
* @param requestPayload the request payload
* @return the resolved argument. May be {@code null}.
* @throws Exception in case of errors
*/
protected abstract Object resolveRequestPayloadArgument(Source requestPayload, MethodParameter parameter)
protected abstract Object resolveRequestPayloadArgument(MethodParameter parameter, Source requestPayload)
throws Exception;
// MethodReturnValueHandler

View File

@@ -43,7 +43,7 @@ public class Dom4jPayloadMethodProcessor extends AbstractPayloadMethodProcessor
}
@Override
protected Object resolveRequestPayloadArgument(Source requestPayload, MethodParameter parameter)
protected Object resolveRequestPayloadArgument(MethodParameter parameter, Source requestPayload)
throws TransformerException {
if (requestPayload instanceof DOMSource) {
org.w3c.dom.Node node = ((DOMSource) requestPayload).getNode();

View File

@@ -43,7 +43,7 @@ public class DomPayloadMethodProcessor extends AbstractPayloadMethodProcessor {
}
@Override
protected Node resolveRequestPayloadArgument(Source requestPayload, MethodParameter parameter) throws Exception {
protected Node resolveRequestPayloadArgument(MethodParameter parameter, Source requestPayload) throws Exception {
if (requestPayload instanceof DOMSource) {
return resolveArgumentDomSource(parameter, (DOMSource) requestPayload);
}

View File

@@ -43,7 +43,7 @@ public class JDomPayloadMethodProcessor extends AbstractPayloadMethodProcessor {
}
@Override
protected Element resolveRequestPayloadArgument(Source requestPayload, MethodParameter parameter) throws Exception {
protected Element resolveRequestPayloadArgument(MethodParameter parameter, Source requestPayload) throws Exception {
if (requestPayload instanceof DOMSource) {
Node node = ((DOMSource) requestPayload).getNode();
DOMBuilder domBuilder = new DOMBuilder();

View File

@@ -46,7 +46,7 @@ public class SourcePayloadMethodProcessor extends AbstractPayloadMethodProcessor
}
@Override
protected Object resolveRequestPayloadArgument(Source requestPayload, MethodParameter parameter) throws Exception {
protected Object resolveRequestPayloadArgument(MethodParameter parameter, Source requestPayload) throws Exception {
Class<?> parameterType = parameter.getParameterType();
if (parameterType.isAssignableFrom(requestPayload.getClass())) {
return requestPayload;

View File

@@ -51,7 +51,7 @@ public class XomPayloadMethodProcessor extends AbstractPayloadMethodProcessor {
}
@Override
protected Element resolveRequestPayloadArgument(Source requestPayload, MethodParameter parameter)
protected Element resolveRequestPayloadArgument(MethodParameter parameter, Source requestPayload)
throws TransformerException, IOException, ParsingException {
if (requestPayload instanceof DOMSource) {
org.w3c.dom.Node node = ((DOMSource) requestPayload).getNode();