class ScheduledRefreshCacheExtension implements CacheExtension {

    @Override
    public void init() {
        if (config.getUniqueNamePart() != null) {
            this.name = "scheduledRefresh_" + underlyingCache.getCacheManager().getName()
                    + "_" + underlyingCache.getName() + "_" + config.getUniqueNamePart();
        } 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);

}