class ScheduledRefreshCacheExtension implements CacheExtension {

   @Override
   public void init() {
      if (config.getScheduledRefreshName() != null) {
         this.name = "scheduledRefresh_" + underlyingCache.getCacheManager().getName() + "_"
               + underlyingCache.getName() + "_" + config.getScheduledRefreshName();
      } else {
         this.name = "scheduledRefresh_" + underlyingCache.getCacheManager().getName() + "_"
               + underlyingCache.getName();
      }
      this.groupName = name + "_grp";
      try {
         makeAndStartQuartzScheduler();
         try {
            JobDetail seed = addOverseerJob();

            try {
               scheduleOverseerJob(seed);
               status = Status.STATUS_ALIVE;
            } catch (SchedulerException e) {
               LOG.error("Unable to schedule control job for Scheduled Refresh", e);
            }

         } catch (SchedulerException e) {
            LOG.error("Unable to add Scheduled Refresh control job to Quartz Job Scheduler", e);
         }
      } catch (SchedulerException e) {
         LOG.error("Unable to instantiate Quartz Job Scheduler for Scheduled Refresh", e);
      }

   }

   public  ScheduledRefreshCacheExtension(ScheduledRefreshConfiguration config, Ehcache cache);

}