code: @Override
      protected synchronized void schedule(Runnable runnable) {
          executor = Executors.newScheduledThreadPool(1, new ThreadFactory() {
              @Override
              public Thread newThread(Runnable r) {
                  Thread t = new Thread(r, "pollingConfigurationSource");
                  t.setDaemon(true);
                  return t;
              }
          });
          executor.scheduleWithFixedDelay(runnable, initialDelayMillis, delayMillis, TimeUnit.MILLISECONDS);        
      }
docs: This method is implemented with
  {@link java.util.concurrent.ScheduledExecutorService#scheduleWithFixedDelay(Runnable, long, long, TimeUnit)}