Interface CacheManagerEventListener

  • All Known Implementing Classes:
    CacheManagerEventListenerRegistry, ManagementService, SampledMBeanRegistrationProvider

    public interface CacheManagerEventListener
    Allows implementers to register callback methods that will be executed when a CacheManager event occurs. The lifecycle events are:
    1. init
    2. dispose
    CacheManager change events are:
    1. adding a Cache
    2. removing a Cache
    Note that the caches that are part of the initial configuration are not considered "changes". It is only caches added or removed beyond the initial config. Callbacks to these methods are synchronous and unsynchronized. It is the responsibility of the implementer to safely handle the potential performance and thread safety issues depending on what their listener is doing.
    Since:
    1.2
    Version:
    $Id$
    Author:
    Greg Luck
    See Also:
    CacheEventListener
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void dispose()
      Stop the listener and free any resources.
      Status getStatus()
      Returns the listener status.
      void init()
      Call to start the listeners and do any other required initialisation.
      void notifyCacheAdded​(java.lang.String cacheName)
      Called immediately after a cache has been added and activated.
      void notifyCacheRemoved​(java.lang.String cacheName)
      Called immediately after a cache has been disposed and removed.
    • Method Detail

      • init

        void init()
           throws CacheException
        Call to start the listeners and do any other required initialisation. init should also handle any work to do with the caches that are part of the initial configuration.
        Throws:
        CacheException - - all exceptions are wrapped in CacheException
      • getStatus

        Status getStatus()
        Returns the listener status.
        Returns:
        the status at the point in time the method is called
      • dispose

        void dispose()
              throws CacheException
        Stop the listener and free any resources.
        Throws:
        CacheException - - all exceptions are wrapped in CacheException
      • notifyCacheAdded

        void notifyCacheAdded​(java.lang.String cacheName)
        Called immediately after a cache has been added and activated.

        Note that the CacheManager calls this method from a synchronized method. Any attempt to call a synchronized method on CacheManager from this method will cause a deadlock.

        Note that activation will also cause a CacheEventListener status change notification from Status.STATUS_UNINITIALISED to Status.STATUS_ALIVE. Care should be taken on processing that notification because:

        • the cache will not yet be accessible from the CacheManager.
        • the addCaches methods which cause this notification are synchronized on the CacheManager. An attempt to call CacheManager.getEhcache(String) will cause a deadlock.
        The calling method will block until this method returns.

        Parameters:
        cacheName - the name of the Cache the operation relates to
        See Also:
        CacheEventListener
      • notifyCacheRemoved

        void notifyCacheRemoved​(java.lang.String cacheName)
        Called immediately after a cache has been disposed and removed. The calling method will block until this method returns.

        Note that the CacheManager calls this method from a synchronized method. Any attempt to call a synchronized method on CacheManager from this method will cause a deadlock.

        Note that a CacheEventListener status changed will also be triggered. Any attempt from that notification to access CacheManager will also result in a deadlock.

        Parameters:
        cacheName - the name of the Cache the operation relates to