diff --git a/core/src/main/java/org/springframework/ws/client/support/interceptor/ClientInterceptor.java b/core/src/main/java/org/springframework/ws/client/support/interceptor/ClientInterceptor.java index 78597351..4c62ac5e 100644 --- a/core/src/main/java/org/springframework/ws/client/support/interceptor/ClientInterceptor.java +++ b/core/src/main/java/org/springframework/ws/client/support/interceptor/ClientInterceptor.java @@ -17,37 +17,67 @@ package org.springframework.ws.client.support.interceptor; import org.springframework.ws.client.WebServiceClientException; -import org.springframework.ws.client.core.WebServiceMessageCallback; -import org.springframework.ws.client.core.WebServiceTemplate; import org.springframework.ws.context.MessageContext; import org.springframework.ws.soap.SoapHeader; import org.springframework.ws.transport.WebServiceConnection; /** * Workflow interface that allows for customized client-side message interception. Applications can register any number - * of existing or custom interceptors on a {@link WebServiceTemplate}, to add common pre- and postprocessing behavior - * without needing to modify payload handling code. + * of existing or custom interceptors on a {@link org.springframework.ws.client.core.WebServiceTemplate}, to add common + * pre- and postprocessing behavior without needing to modify payload handling code. *
* AClientInterceptor gets called after payload creation (using {@link
- * WebServiceTemplate#marshalSendAndReceive(Object)} or similar methods, and after {@link WebServiceMessageCallback
- * callback} invocation, but before the message is sent over the {@link WebServiceConnection}. This mechanism can be
- * used for a large field of preprocessing aspects, e.g. for authorization checks, or message header checks. Its main
- * purpose is to allow for factoring out meta-data (i.e. {@link SoapHeader}) related code.
+ * org.springframework.ws.client.core.WebServiceTemplate#marshalSendAndReceive(Object)} or similar methods, and after
+ * {@link org.springframework.ws.client.core.WebServiceMessageCallback callback} invocation, but before the message is
+ * sent over the {@link WebServiceConnection}. This mechanism can be used for a large field of preprocessing aspects,
+ * e.g. for authorization checks, or message header checks. Its main purpose is to allow for factoring out meta-data
+ * (i.e. {@link SoapHeader}) related code.
*
- * Client interceptors are defined on a {@link WebServiceTemplate}, using the {@link
- * WebServiceTemplate#setInterceptors(ClientInterceptor[]) interceptors} property.
+ * Client interceptors are defined on a {@link org.springframework.ws.client.core.WebServiceTemplate}, using the {@link
+ * org.springframework.ws.client.core.WebServiceTemplate#setInterceptors(ClientInterceptor[]) interceptors} property.
*
* @author Giovanni Cuccu
* @author Arjen Poutsma
- * @see WebServiceTemplate#setInterceptors(ClientInterceptor[])
+ * @see org.springframework.ws.client.core.WebServiceTemplate#setInterceptors(ClientInterceptor[])
* @since 1.5.0
*/
public interface ClientInterceptor {
+ /**
+ * Processes the outgoing request message. Called after payload creation and callback invocation, but before the
+ * message is sent.
+ *
+ * @param messageContext contains the outgoing request message
+ * @return true to continue processing of the request interceptors; false to indicate
+ * blocking of the request endpoint chain
+ * @throws WebServiceClientException in case of errors
+ * @see MessageContext#getRequest()
+ */
boolean handleRequest(MessageContext messageContext) throws WebServiceClientException;
+ /**
+ * Processes the incoming response message. Called for non-fault response messages before payload handling in the
+ * {@link org.springframework.ws.client.core.WebServiceTemplate}.
+ *
+ * @param messageContext contains the outgoing request message
+ * @return true to continue processing of the request interceptors; false to indicate
+ * blocking of the response endpoint chain
+ * @throws WebServiceClientException in case of errors
+ * @see MessageContext#getResponse()
+ */
boolean handleResponse(MessageContext messageContext) throws WebServiceClientException;
+ /**
+ * Processes the incoming response fault. Called for response fault messages before payload handling in the {@link
+ * org.springframework.ws.client.core.WebServiceTemplate}.
+ *
+ * @param messageContext contains the outgoing request message
+ * @return true to continue processing of the request interceptors; false to indicate
+ * blocking of the request endpoint chain
+ * @throws WebServiceClientException in case of errors
+ * @see MessageContext#getResponse()
+ * @see org.springframework.ws.FaultAwareWebServiceMessage#hasFault()
+ */
boolean handleFault(MessageContext messageContext) throws WebServiceClientException;
}