Class MemoryIdempotentRepository

  • All Implemented Interfaces:
    AutoCloseable, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.IdempotentRepository, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

    @ManagedResource(description="Memory based idempotent repository")
    public class MemoryIdempotentRepository
    extends org.apache.camel.support.service.ServiceSupport
    implements org.apache.camel.spi.IdempotentRepository
    A memory based implementation of IdempotentRepository.

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

    • Field Summary

      • Fields inherited from class org.apache.camel.support.service.BaseService

        BUILT, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean add​(String key)  
      void clear()  
      boolean confirm​(String key)  
      boolean contains​(String key)  
      protected void doStart()  
      protected void doStop()  
      Map<String,​Object> getCache()  
      int getCacheSize()  
      static org.apache.camel.spi.IdempotentRepository memoryIdempotentRepository()
      Creates a new memory based repository using a LRUCache with a default of 1000 entries in the cache.
      static org.apache.camel.spi.IdempotentRepository memoryIdempotentRepository​(int cacheSize)
      Creates a new memory based repository using a LRUCache.
      static org.apache.camel.spi.IdempotentRepository 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)  
      void setCacheSize​(int cacheSize)  
      • Methods inherited from class org.apache.camel.support.service.BaseService

        build, doBuild, doFail, doInit, doLifecycleChange, doResume, doShutdown, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
      • Methods inherited from interface org.apache.camel.spi.IdempotentRepository

        add, confirm, contains, remove
      • Methods inherited from interface org.apache.camel.Service

        build, close, init, start, stop
      • Methods inherited from interface org.apache.camel.ShutdownableService

        shutdown
      • Methods inherited from interface org.apache.camel.StatefulService

        getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending
      • Methods inherited from interface org.apache.camel.SuspendableService

        isSuspended, resume, suspend
    • Constructor Detail

      • MemoryIdempotentRepository

        public MemoryIdempotentRepository()
      • MemoryIdempotentRepository

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

      • memoryIdempotentRepository

        public static org.apache.camel.spi.IdempotentRepository memoryIdempotentRepository()
        Creates a new memory based repository using a LRUCache with a default of 1000 entries in the cache.
      • memoryIdempotentRepository

        public static org.apache.camel.spi.IdempotentRepository memoryIdempotentRepository​(int cacheSize)
        Creates a new memory based repository using a LRUCache.
        Parameters:
        cacheSize - the cache size
      • memoryIdempotentRepository

        public static org.apache.camel.spi.IdempotentRepository 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)
        Specified by:
        add in interface org.apache.camel.spi.IdempotentRepository
      • contains

        @ManagedOperation(description="Does the store contain the given key")
        public boolean contains​(String key)
        Specified by:
        contains in interface org.apache.camel.spi.IdempotentRepository
      • remove

        @ManagedOperation(description="Remove the key from the store")
        public boolean remove​(String key)
        Specified by:
        remove in interface org.apache.camel.spi.IdempotentRepository
      • confirm

        public boolean confirm​(String key)
        Specified by:
        confirm in interface org.apache.camel.spi.IdempotentRepository
      • clear

        @ManagedOperation(description="Clear the store")
        public void clear()
        Specified by:
        clear in interface org.apache.camel.spi.IdempotentRepository
      • getCacheSize

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

        public void setCacheSize​(int cacheSize)
      • doStart

        protected void doStart()
                        throws Exception
        Overrides:
        doStart in class org.apache.camel.support.service.BaseService
        Throws:
        Exception
      • doStop

        protected void doStop()
                       throws Exception
        Overrides:
        doStop in class org.apache.camel.support.service.BaseService
        Throws:
        Exception