Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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

Field Summary
`protected ContentBasedRouter` | `_cbr`
`protected java.lang.String` | `_cbrClass`
`protected ConfigTree` | `_config`
`protected java.util.Map<java.lang.String,Service>` | `_destinations`
`protected static org.apache.log4j.Logger` | `_logger`
`protected ObjectMapper` | `_mapper`
`protected java.util.List<java.lang.String>` | `_messagePathList`
`protected Registry` | `_registry`
`protected java.lang.String` | `_ruleLanguage`
`protected boolean` | `_ruleReload`
`protected java.lang.String` | `_ruleSet`
`static java.lang.String` | `DEFAULT_CBR_CLASS`
`protected MessageMulticaster` | `messageMulticaster`
`static java.lang.String` | `OBJECT_PATH`
`static java.lang.String` | `OBJECT_PATH_TAG`
`static java.lang.String` | `ROUTE_TO_TAG`

Fields inherited from interface org.jboss.soa.esb.actions.ActionPipelineProcessor
`PROCESS_EXCEPTION_METHOD, PROCESS_METHOD, PROCESS_SUCCESS_METHOD`

Constructor Summary
`ContentBasedWiretap(ConfigTree config)`

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 org.jboss.soa.esb.actions.AbstractActionPipelineProcessor
`processException, processSuccess`

Methods inherited from class org.jboss.soa.esb.actions.AbstractActionLifecycle
`destroy`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.jboss.soa.esb.actions.ActionLifecycle
`destroy`

Field Detail

### 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

### 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

### _mapper

    protected ObjectMapper _mapper

### _registry

    protected Registry _registry

### _cbr

    protected ContentBasedRouter _cbr

### _logger

    protected static org.apache.log4j.Logger _logger

Constructor Detail

### ContentBasedWiretap

    public ContentBasedWiretap(ConfigTree config)
                        throws ConfigurationException,
                               RegistryException,
                               MessageRouterException

Throws:
  `ConfigurationException`
  `RegistryException`
  `MessageRouterException`

Method Detail

### 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`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD