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

## org.mule.routing.inbound
Class IdempotentReceiver

    java.lang.Object
      org.mule.routing.AbstractRouter
          org.mule.routing.inbound.SelectiveConsumer
              org.mule.routing.inbound.IdempotentReceiver

All Implemented Interfaces:
  MuleContextAware, Disposable, Initialisable, InboundRouter, Router

Direct Known Subclasses:
  IdempotentSecureHashReceiver

    public class IdempotentReceiver

extends SelectiveConsumer

`IdempotentReceiver` ensures that only unique messages are received by a service. It does this by checking the unique ID of the incoming message. Note that the underlying endpoint must support unique message IDs for this to work, otherwise a `UniqueIdNotSupportedException` is thrown.
By default this implementation uses an instance of

Field Summary
`protected String` | `assignedComponentName`
`protected String` | `idExpression`
`protected ObjectStore` | `store`

Fields inherited from class org.mule.routing.inbound.SelectiveConsumer
`logger`

Fields inherited from class org.mule.routing.AbstractRouter
`muleContext`

Fields inherited from interface org.mule.api.lifecycle.Initialisable
`PHASE_NAME`

Fields inherited from interface org.mule.api.lifecycle.Disposable
`PHASE_NAME`

Constructor Summary
`IdempotentReceiver()`

Method Summary
`protected ObjectStore` | `createMessageIdStore()`
`String` | `getIdExpression()`
`protected String` | `getIdForEvent(MuleEvent event)`
`ObjectStore` | `getStore()`
`protected void` | `initialize(MuleEvent event)`
`boolean` | `isMatch(MuleEvent event)` Determines if the event should be processed by this router.
`MuleEvent[]` | `process(MuleEvent event)` A received MuleEvent is passed to this method for processing.
`void` | `setIdExpression(String idExpression)`
`void` | `setStore(ObjectStore store)`

Methods inherited from class org.mule.routing.inbound.SelectiveConsumer
`getFilter, getMessageInfoMapping, isTransformFirst, setFilter, setMessageInfoMapping, setTransformFirst`

Methods inherited from class org.mule.routing.AbstractRouter
`dispose, getMuleContext, getRouterStatistics, initialise, setMuleContext, setRouterStatistics`

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

Methods inherited from interface org.mule.api.routing.Router
`getRouterStatistics, setRouterStatistics`

Methods inherited from interface org.mule.api.lifecycle.Initialisable
`initialise`

Methods inherited from interface org.mule.api.lifecycle.Disposable
`dispose`

Field Detail

### store

    protected volatile ObjectStore store

### assignedComponentName

    protected volatile String assignedComponentName

### idExpression

    protected String idExpression

Constructor Detail

### IdempotentReceiver

    public IdempotentReceiver()

Method Detail

### initialize

    protected void initialize(MuleEvent event)
                       throws RoutingException

  Throws:
    `RoutingException`

### createMessageIdStore

    protected ObjectStore createMessageIdStore()
                                        throws InitialisationException

  Throws:
    `InitialisationException`

### isMatch

    public boolean isMatch(MuleEvent event)
                    throws MessagingException

  Description copied from interface: `InboundRouter`
  Determines if the event should be processed by this router. Routers can be selectively invoked by configuing a filter on them. Usually the filter is applied to the event when calling this method. All core Mule inbound routers extend the SelectiveConsumer router.

  Specified by:
    `isMatch` in interface `InboundRouter`
  Overrides:
    `isMatch` in class `SelectiveConsumer`
  Parameters:
    `event` - the current event to evaluate
  Returns:
    true if the event should be processed by this router
  Throws:
    `MessagingException` - if the event cannot be evaluated
  See Also:
    `SelectiveConsumer`

### process

    public MuleEvent[] process(MuleEvent event)
                        throws MessagingException

  Description copied from interface: `InboundRouter`
  A received MuleEvent is passed to this method for processing. The router can control processing by either 1. passing back a null to indicate that the router has either discarded the event of the event has been stored for further processing. A reaosn for storing the event might be that other events in it's correlation group are expected to be received. 2. Pass back an array of one or more events to be processed by the service. Often 1 event is returned, i.e. in the case of event aggregation. The router may return an array of events if a set of events have been resequenced or multiple events have been generated from a single event.

  Specified by:
    `process` in interface `InboundRouter`
  Overrides:
    `process` in class `SelectiveConsumer`
  Parameters:
    `event` - the event received by the inbound endpoint before it is passed to the service
  Returns:
    null to indicate the event has been stored/destroyed or an array of events to be processed by the service
  Throws:
    `MessagingException` - if an error occurs during processing of the event

### getIdForEvent

    protected String getIdForEvent(MuleEvent event)
                            throws MessagingException

  Throws:
    `MessagingException`

### getIdExpression

    public String getIdExpression()

### setIdExpression

    public void setIdExpression(String idExpression)

### getStore

    public ObjectStore getStore()

### setStore

    public void setStore(ObjectStore store)

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

Copyright © 2003-2009 MuleSource, Inc.. All Rights Reserved.