org.apache.camel.processor.idempotent
Class MemoryIdempotentRepository

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

@ManagedResource(value="MemoryIdempotentRepository")
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:

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()
           
protected  void doStop()
           
 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.impl.ServiceSupport
addChildService, doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspended, isSuspending, removeChildService, resume, shutdown, start, 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
Specified by:
doStart in class ServiceSupport
Throws:
Exception

doStop

protected void doStop()
               throws Exception
Specified by:
doStop in class ServiceSupport
Throws:
Exception


Apache CAMEL