KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > petals > jbi > routing > Router


1 /*
2  * PETALS: PETALS Services Platform
3  * Copyright (C) 2005 EBM WebSourcing
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
18  * USA.
19  *
20  * Initial developer(s): Adrien LOUIS
21  * --------------------------------------------------------------------------
22  * $Id: Router.java,v 1.2 2006/03/17 10:24:27 alouis Exp $
23  * --------------------------------------------------------------------------
24  */

25
26 package org.objectweb.petals.jbi.routing;
27
28 import org.objectweb.petals.jbi.component.context.ComponentContextImpl;
29 import org.objectweb.petals.jbi.messaging.MessageExchangeImpl;
30
31 /**
32  * Routes messages from the DeliveryChannel to their destinations. Performs an
33  * itinerary resolution, adding for example a transformatino service before
34  * delivering the message to its recipient, and perform an address resolution,
35  * finding the endpoint satisfying the the destination information (finding an
36  * endpoint for a specified service). Resolutions are based on defined rules.
37  *
38  * Routes messages from the Transporter to the correct DeliveryChannel
39  *
40  * @author Adrien LOUIS - EBM WebSourcing
41  */

42 public interface Router {
43
44     /**
45      * Send the message into the NMR
46      *
47      * @param source
48      * @param exchange
49      * @param timeOut timeout of the message (in ms). 0 for no timeout
50      * @throws RoutingException
51      */

52     void send(ComponentContextImpl source, MessageExchangeImpl exchange,
53         long timeOut) throws RoutingException;
54
55     /**
56      * Push this MessageExchange, received from the Transporter, to the correct
57      * deliveryChannel queue.
58      *
59      * @param exchange
60      * @throws RoutingException
61      */

62     void receive(MessageExchangeImpl exchange) throws RoutingException;
63 }
64
Popular Tags