View Javadoc

1   /*
2    * $Id: Interceptor.java 12269 2008-07-10 04:19:03Z dfeist $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.api.interceptor;
12  
13  import org.mule.api.MuleException;
14  import org.mule.api.MuleMessage;
15  
16  
17  /**
18   * <code>Interceptor</code> is based on a similar concept of servlet filters and
19   * works much the same way. This method is more commonally known as the interceptor
20   * pattern and it allows for pre and processing of invocations on the object being
21   * intercepted.
22   *
23   * <p>In 2.x this is deprecated, but we provide an adapter, in the Spring Extras package, to
24   * help use old implementations.  There is one significant change, however - because the
25   * interception is now "lower" in the call chain, {@link org.mule.api.interceptor.Invocation#execute()}
26   * returns an Object rather than a {@link org.mule.api.MuleMessage}.  To simplify handling this,
27   * the adapter we provide will construct a suitable MuleMessage for you if you return null. 
28   *
29   * @deprecated - This is only used for backwards compatability with old style (Mule 1.x) interceptors
30   */
31  public interface Interceptor
32  {
33  
34      /**
35       * Invoked when the component should be called.  The implementation can call
36       * {@link Invocation#execute()} to call the component.
37       * 
38       * @param invocation the invocation containing info about the current message and
39       *            service
40       * @return A result message that may have been altered by this invocation
41       * @throws org.mule.api.MuleException if the invocation fails
42       */
43      MuleMessage intercept(Invocation invocation) throws MuleException;
44  
45  }