View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.api.routing;
8   
9   import org.mule.api.construct.FlowConstructAware;
10  import org.mule.api.context.MuleContextAware;
11  import org.mule.api.lifecycle.Lifecycle;
12  import org.mule.api.processor.MessageProcessor;
13  import org.mule.api.transaction.TransactionConfig;
14  
15  import java.util.List;
16  
17  /**
18   * <code>OutboundRouter</code> is used to control outbound routing behaviour for an
19   * event. One or more Outbound routers can be associated with an
20   * <code>OutboundRouterCollection</code> and will be selected based on the filters
21   * set on the individual Outbound Router.
22   * 
23   * @see OutboundRouterCollection
24   */
25  public interface OutboundRouter
26      extends MatchableMessageRouter, RouterStatisticsRecorder, Lifecycle, MuleContextAware, FlowConstructAware
27  {
28  
29      void setTransactionConfig(TransactionConfig transactionConfig);
30  
31      /**
32       * Sets the replyTo route for any outgoing messages. This will then be used by
33       * other Mule routers to send replies back for this message. If the underlying
34       * protocol supports replyTo messages, such as Jms, a Jms Destination will be
35       * attached to the outbound message
36       * 
37       * @param replyTo route string to use
38       */
39      void setReplyTo(String replyTo);
40  
41      /**
42       * Determines whether this router supports dynamic route. i.e. routes that are
43       * not configured at design time. routes might be pulled from the message or
44       * payload.
45       */
46      boolean isDynamicRoutes();
47  
48      /**
49       * Gets a list of MessageProcessor instances associated with this router
50       * 
51       * @return a list of MessageProcessor instances
52       */
53      List<MessageProcessor> getRoutes();
54  
55  }