SWS-351 - Arbitrary parameter injection for @Endpoints
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user