1   package org.codehaus.xfire.handler;
2   
3   import javax.xml.stream.XMLStreamException;
4   import javax.xml.stream.XMLStreamReader;
5   
6   import org.codehaus.xfire.MessageContext;
7   import org.codehaus.xfire.fault.XFireFault;
8   import org.codehaus.xfire.util.STAXUtils;
9   
10  /***
11   * A handler which echoes the SOAP Body back.
12   * 
13   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
14   * @since Feb 18, 2004
15   */
16  public class EchoHandler
17      extends AbstractHandler
18  {
19      /***
20       * @see org.codehaus.xfire.handler.Handler#invoke(org.codehaus.xfire.MessageContext, javax.xml.stream.XMLStreamReader)
21       */
22      public void invoke( MessageContext context, XMLStreamReader parser ) 
23          throws XFireFault
24      {
25          try
26          {
27              STAXUtils.copy(parser, getXMLStreamWriter(context));
28          }
29          catch (XMLStreamException e)
30          {
31              throw new XFireFault("Couldn't parse the request document.", e, XFireFault.SENDER);
32          }
33      }
34  }