Coverage Report - org.mule.umo.routing.UMOResponseRouter
 
Classes in this File Line Coverage Branch Coverage Complexity
UMOResponseRouter
N/A
N/A
1
 
 1  
 /*
 2  
  * $Id: UMOResponseRouter.java 7963 2007-08-21 08:53:15Z dirk.olmes $
 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.umo.routing;
 12  
 
 13  
 import org.mule.umo.UMOEvent;
 14  
 import org.mule.umo.UMOMessage;
 15  
 
 16  
 /**
 17  
  * <code>UMOResponseRouter</code> is a router that handles response flow. Response
 18  
  * Aggregators are used to collect responses that are usually sent to replyTo
 19  
  * endpoints set on outbound routers. When an event is sent out via an outbound
 20  
  * router, the response router will block the response flow on an UMOComponent until
 21  
  * the Response Router resolves a reply or times out.
 22  
  */
 23  
 
 24  
 public interface UMOResponseRouter extends UMORouter
 25  
 {
 26  
     /**
 27  
      * This method is invoked when an event is received via an endpoint on this
 28  
      * Response Router. It is responsible for tieing up the event it receives with
 29  
      * responses waiting to return back to the callee. This method will be called by
 30  
      * a different thread to the getResponse method. The getResponse() method block
 31  
      * the response execution until the process method signals that a match is found.
 32  
      * 
 33  
      * @param event
 34  
      * @throws RoutingException
 35  
      */
 36  
     void process(UMOEvent event) throws RoutingException;
 37  
 
 38  
     /**
 39  
      * Called by the Mule framework once the outbound router has been processed on a
 40  
      * component the Message passed in is the response message from the component (or
 41  
      * outbount router if a response was returned). This method is invoked to signal
 42  
      * that the event flow for the component has completed and what ever message is
 43  
      * returned from this method with be sent back as the response. This method will
 44  
      * block until the correct response for the given Message has been received.
 45  
      * 
 46  
      * @param message The processed message from the Component
 47  
      * @return the response message sent back to the callee
 48  
      * @throws RoutingException
 49  
      * @see UMOMessage
 50  
      * @see org.mule.umo.UMOComponent
 51  
      */
 52  
     UMOMessage getResponse(UMOMessage message) throws RoutingException;
 53  
 
 54  
     /**
 55  
      * Sets the timeout delay that the response router should wait for a response for
 56  
      * a given event. If the time expires and exception will be thrown by Mule.
 57  
      * 
 58  
      * @param timeout the time in milliseconds to wait for a response event
 59  
      */
 60  
     void setTimeout(int timeout);
 61  
 
 62  
     /**
 63  
      * Returns the timeout delay that the response router should wait for a response
 64  
      * for a given event. If the time expires and exception will be thrown by Mule.
 65  
      * 
 66  
      * @return the time in milliseconds to wait for a response event
 67  
      */
 68  
     int getTimeout();
 69  
 
 70  
     /**
 71  
      * Should the router fail and throw an exception if a timeout occurs or should it return
 72  
      * the events received so far.
 73  
      * //TODO This method is not implemented yet
 74  
      * @param fail
 75  
      */
 76  
     void setFailOnTimeout(boolean fail);
 77  
 
 78  
     /**
 79  
      * Should the router fail and throw an exception if a timeout occurs or should it return
 80  
      * the events received so far.
 81  
      * //TODO This method is not implemented yet
 82  
      * @return
 83  
      */
 84  
     boolean isFailOnTimeout();
 85  
 }