org.jboss.soa.esb.actions
Class ContentBasedWiretap
java.lang.Object
org.jboss.soa.esb.actions.AbstractActionLifecycle
org.jboss.soa.esb.actions.AbstractActionPipelineProcessor
org.jboss.soa.esb.actions.ContentBasedWiretap
- All Implemented Interfaces:
- ActionLifecycle, ActionPipelineProcessor
- Direct Known Subclasses:
- ContentBasedRouter
public class ContentBasedWiretap
- extends AbstractActionPipelineProcessor
ContentBasedWirtap implements the WireTap pattern.
The WireTap is an Enterprise Integration Pattern (EIP) where a copy of the message is
sent to a control channel.
The CBRWT is identical in functionality to the ContentBasedRouter,
however it does not terminate the pipeline which makes it suitable to be used as a WireTap.
Configuration Example:
<action class="org.jboss.soa.esb.actions.ContentBasedRouter" name="OrderDiscountBasedOnCustomerHistory">
<property name="ruleSet" value="OrderDiscountOnMultipleOrders.drl" />
<property name="ruleReload" value="false" />
<property name="stateful" value="true" />
<property name="object-paths">
<object-path esb="body.TheOrderHeader" />
<object-path esb="body.TheCustomer" />
</property>
<property name="destinations">
<route-to destination-name="blue" service-category="BlueTeam" service-name="GoBlue" />
<route-to destination-name="red" service-category="RedTeam" service-name="GoRed" />
<route-to destination-name="green" service-category="GreenTeam" service-name="GoGreen" />
</property>
</action>
Property description:
class action class, one of : org.jboss.soa.esb.actions.ContentBasedRouter, org.jboss.soa.esb.actions.ContentBasedWireTap,
or org.jboss.soa.esb.actions.MessageFilter
ruleSet Name of the filename containing the Drools ruleSet.
ruleLanguage Optional reference to a file containing the definition of a Domain Specific Language to be used for evaluating
the rule set.
ruleReload Optional property which can be to true to enable 'hot' redeployment of rule sets.
stateful Optional property which tells the RuleService to use a stateful session where facts will be
remembered between invokations.
object-paths Optional property to pass Message objects into Rule Services WorkingMemory.
destinations A set of route-to properties each containing the logical name
of the destination along with the Service category and name
as referenced in the registry.
The logical name is the name
which should be used in the rule set.
- Author:
- schifest@heuristica.com.ar, kstam@jboss.com, kevin.conner@jboss.com, Daniel Bevenius
Method Summary |
protected void |
checkMyParms()
Reading the piece of configTree specific to the CBR, and setting the
configuration. |
protected java.util.List<Service> |
executeRules(Message message)
|
void |
initialise()
Initialise the action instance. |
Message |
process(Message message)
Router the message to one or more destinations, using the
ContentBasedRouter to figure out to which destinations it is going to
be routed too. |
protected void |
routeMessage(Message message,
java.util.List<Service> outgoingDestinations)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ROUTE_TO_TAG
public static final java.lang.String ROUTE_TO_TAG
- See Also:
- Constant Field Values
OBJECT_PATH_TAG
public static final java.lang.String OBJECT_PATH_TAG
- See Also:
- Constant Field Values
OBJECT_PATH
public static final java.lang.String OBJECT_PATH
- See Also:
- Constant Field Values
ENTRY_POINT
public static final java.lang.String ENTRY_POINT
- See Also:
- Constant Field Values
DEFAULT_CBR_CLASS
public static final java.lang.String DEFAULT_CBR_CLASS
- See Also:
- Constant Field Values
_config
protected ConfigTree _config
_destinations
protected java.util.Map<java.lang.String,Service> _destinations
messageMulticaster
protected MessageMulticaster messageMulticaster
_cbrClass
protected java.lang.String _cbrClass
_ruleSet
protected java.lang.String _ruleSet
_ruleLanguage
protected java.lang.String _ruleLanguage
_ruleReload
protected boolean _ruleReload
_messagePathList
protected java.util.List<java.lang.String> _messagePathList
entryPointMap
protected java.util.Map<java.lang.String,java.util.List<java.lang.String>> entryPointMap
_mapper
protected ObjectMapper _mapper
_registry
protected Registry _registry
_cbr
protected ContentBasedRouter _cbr
_logger
protected static org.apache.log4j.Logger _logger
ContentBasedWiretap
public ContentBasedWiretap(ConfigTree config)
throws ConfigurationException,
RegistryException,
MessageRouterException
- Throws:
ConfigurationException
RegistryException
MessageRouterException
initialise
public void initialise()
- Description copied from class:
AbstractActionLifecycle
- Initialise the action instance.
This method is called after the action instance has been instantiated so that
configuration options can be validated.
- Specified by:
initialise
in interface ActionLifecycle
- Overrides:
initialise
in class AbstractActionLifecycle
process
public Message process(Message message)
throws ActionProcessingException
- Router the message to one or more destinations, using the
ContentBasedRouter to figure out to which destinations it is going to
be routed too.
- Parameters:
message
-
- Returns:
- Message
- Throws:
ActionProcessingException
executeRules
protected java.util.List<Service> executeRules(Message message)
throws MessageRouterException
- Throws:
MessageRouterException
routeMessage
protected final void routeMessage(Message message,
java.util.List<Service> outgoingDestinations)
throws MessageRouterException
- Throws:
MessageRouterException
checkMyParms
protected void checkMyParms()
throws ConfigurationException
- Reading the piece of configTree specific to the CBR, and setting the
configuration.
- Throws:
ConfigurationException