org.apache.camel.processor.idempotent
Class MemoryIdempotentRepository

java.lang.Object
  extended by org.apache.camel.support.ServiceSupport
      extended by org.apache.camel.processor.idempotent.MemoryIdempotentRepository
All Implemented Interfaces:
Service, ShutdownableService, IdempotentRepository<String>, StatefulService, SuspendableService

@ManagedResource(description="Memory based idempotent repository")
public class MemoryIdempotentRepository
extends ServiceSupport
implements IdempotentRepository<String>

A memory based implementation of IdempotentRepository.

Care should be taken to use a suitable underlying Map to avoid this class being a memory leak.

Version:

Field Summary
 
Fields inherited from class org.apache.camel.support.ServiceSupport
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending
 
Constructor Summary
MemoryIdempotentRepository()
           
MemoryIdempotentRepository(Map<String,Object> set)
           
 
Method Summary
 boolean add(String key)
          Adds the key to the repository.
 boolean confirm(String key)
          Confirms the key, after the exchange has been processed successfully.
 boolean contains(String key)
          Returns true if this repository contains the specified element.
protected  void doStart()
          Implementations override this method to support customized start/stop.
protected  void doStop()
          Implementations override this method to support customized start/stop.
 Map<String,Object> getCache()
           
 int getCacheSize()
           
static IdempotentRepository<String> memoryIdempotentRepository()
          Creates a new memory based repository using a LRUCache with a default of 1000 entries in the cache.
static IdempotentRepository<String> memoryIdempotentRepository(int cacheSize)
          Creates a new memory based repository using a LRUCache.
static IdempotentRepository<String> memoryIdempotentRepository(Map<String,Object> cache)
          Creates a new memory based repository using the given Map to use to store the processed message ids.
 boolean remove(String key)
          Removes the key from the repository.
 void setCacheSize(int cacheSize)
           
 
Methods inherited from class org.apache.camel.support.ServiceSupport
doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, shutdown, start, stop, suspend
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.camel.Service
start, stop
 

Constructor Detail

MemoryIdempotentRepository

public MemoryIdempotentRepository()

MemoryIdempotentRepository

public MemoryIdempotentRepository(Map<String,Object> set)
Method Detail

memoryIdempotentRepository

public static IdempotentRepository<String> memoryIdempotentRepository()
Creates a new memory based repository using a LRUCache with a default of 1000 entries in the cache.


memoryIdempotentRepository

public static IdempotentRepository<String> memoryIdempotentRepository(int cacheSize)
Creates a new memory based repository using a LRUCache.

Parameters:
cacheSize - the cache size

memoryIdempotentRepository

public static IdempotentRepository<String> memoryIdempotentRepository(Map<String,Object> cache)
Creates a new memory based repository using the given Map to use to store the processed message ids.

Care should be taken to use a suitable underlying Map to avoid this class being a memory leak.

Parameters:
cache - the cache

add

@ManagedOperation(description="Adds the key to the store")
public boolean add(String key)
Description copied from interface: IdempotentRepository
Adds the key to the repository.

Specified by:
add in interface IdempotentRepository<String>
Parameters:
key - the key of the message for duplicate test
Returns:
true if this repository did not already contain the specified element

contains

@ManagedOperation(description="Does the store contain the given key")
public boolean contains(String key)
Description copied from interface: IdempotentRepository
Returns true if this repository contains the specified element.

This operation is used if the option eager has been enabled.

Specified by:
contains in interface IdempotentRepository<String>
Parameters:
key - the key of the message
Returns:
true if this repository contains the specified element

remove

@ManagedOperation(description="Remove the key from the store")
public boolean remove(String key)
Description copied from interface: IdempotentRepository
Removes the key from the repository.

Is usually invoked if the exchange failed.

Specified by:
remove in interface IdempotentRepository<String>
Parameters:
key - the key of the message for duplicate test
Returns:
true if the key was removed

confirm

public boolean confirm(String key)
Description copied from interface: IdempotentRepository
Confirms the key, after the exchange has been processed successfully.

This operation is used if the option eager has been enabled.

Specified by:
confirm in interface IdempotentRepository<String>
Parameters:
key - the key of the message for duplicate test
Returns:
true if the key was confirmed

getCache

public Map<String,Object> getCache()

getCacheSize

@ManagedAttribute(description="The current cache size")
public int getCacheSize()

setCacheSize

public void setCacheSize(int cacheSize)

doStart

protected void doStart()
                throws Exception
Description copied from class: ServiceSupport
Implementations override this method to support customized start/stop.

Important: See ServiceSupport.doStop() for more details.

Specified by:
doStart in class ServiceSupport
Throws:
Exception
See Also:
ServiceSupport.doStop()

doStop

protected void doStop()
               throws Exception
Description copied from class: ServiceSupport
Implementations override this method to support customized start/stop.

Important: Camel will invoke this ServiceSupport.doStop() method when the service is being stopped. This method will also be invoked if the service is still in uninitialized state (eg has not been started). The method is always called to allow the service to do custom logic when the service is being stopped, such as when CamelContext is shutting down.

Specified by:
doStop in class ServiceSupport
Throws:
Exception
See Also:
ServiceSupport.doStart()


Apache CAMEL