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 }