/** Final initialization, once all dependencies are set. */
  public void init() {
    try {
      // get notified of events to watch for a reset
      eventTrackingService().addObserver(this);

      M_log.info("init()");

      if (cacheManager == null)
        throw new IllegalStateException("CacheManager was not injected properly!");

      cacheManager
          .getCacheManagerEventListenerRegistry()
          .registerListener(
              new CacheManagerEventListener() {

                private Status status = Status.STATUS_UNINITIALISED;

                public void dispose() throws CacheException {
                  status = Status.STATUS_SHUTDOWN;
                }

                public Status getStatus() {
                  return status;
                }

                public void init() throws CacheException {
                  status = Status.STATUS_ALIVE;
                }

                public void notifyCacheAdded(String name) {
                  Ehcache cache = cacheManager.getEhcache(name);
                  M_log.info("Added Cache name [" + name + "] as Cache [" + cache.getName() + "]");
                }

                public void notifyCacheRemoved(String name) {
                  M_log.info("Cache Removed " + name);
                }
              });
    } catch (Exception t) {
      M_log.warn("init(): ", t);
    }
  } // init