KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mule > umo > routing > UMOResponseRouter


1 /*
2  * $Id: UMOResponseRouter.java 3798 2006-11-04 04:07:14Z aperepel $
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 MuleSource MPL
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  * Agrregators 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  * @author <a HREF="mailto:ross.mason@symphonysoft.com">Ross Mason</a>
24  * @version $Revision: 3798 $
25  */

26
27 public interface UMOResponseRouter extends UMORouter
28 {
29     /**
30      * This method is invoked when an event is received via an endpoint on this
31      * Response Router. It is responsible for tieing up the event it receives with
32      * responses waiting to return back to the callee. This method will be called by
33      * a different thread to the getResponse method. The getResponse() method block
34      * the response execution until the process method signals that a match is found.
35      *
36      * @param event
37      * @throws RoutingException
38      */

39     void process(UMOEvent event) throws RoutingException;
40
41     /**
42      * Called by the Mule framework once the outbound router has been processed on a
43      * component the Message passed in is the response message from the component (or
44      * outbount router if a response was returned). This method is invoked to signal
45      * that the event flow for the component has completed and what ever message is
46      * returned from this method with be sent back as the response. This method will
47      * block until the correct response for the given Message has been received.
48      *
49      * @param message The processed message from the Component
50      * @return the response message sent back to the callee
51      * @throws RoutingException
52      * @see UMOMessage
53      * @see org.mule.umo.UMOComponent
54      */

55     UMOMessage getResponse(UMOMessage message) throws RoutingException;
56
57     /**
58      * Sets the timeout delay that the response router should wait for a response for
59      * a given event. If the time expires and exception will be thrown by Mule.
60      *
61      * @param timeout the time in milliseconds to wait for a response event
62      */

63     void setTimeout(int timeout);
64
65     /**
66      * Returns the timeout delay that the response router should wait for a response
67      * for a given event. If the time expires and exception will be thrown by Mule.
68      *
69      * @return the time in milliseconds to wait for a response event
70      */

71     int getTimeout();
72 }
73
Popular Tags