code: @Override
      protected final void setup() {
          checkState(jobListeners == null, "Re-entry is not allowed.");
          checkState(triggerListeners == null, "Re-entry is not allowed.");
          checkState(schedulerListeners == null, "Re-entry is not allowed.");
          checkState(schedulerConfiguration == null, "Re-entry is not allowed.");
  
          jobListeners = Multibinder.newSetBinder(binder(), JobListener.class);
          triggerListeners = Multibinder.newSetBinder(binder(), TriggerListener.class);
          schedulerListeners = Multibinder.newSetBinder(binder(), SchedulerListener.class);
          schedulerConfiguration = new SchedulerConfiguration();
  
          // load the quartz config
          if (getSettings() != null) {
              URL configFileUrl = getSettings().getFileUrl("quartz.configurationFile", "classpath:conf/quartz.properties");
              if (configFileUrl == null) {
                  log.debug("Failed to find Quartz Scheduler config file '{}'",
                          getSettings().getString("quartz.configurationFile", "classpath:conf/quartz.properties"));
              } else {
                  try (InputStream is = configFileUrl.openStream()) {
                      Properties properties = new Properties();
                      properties.load(is);
                      schedulerConfiguration.withProperties(properties);
                      log.info("Configured Quartz Scheduler from '{}'", configFileUrl);
                  } catch (IOException e) {
                  }
              }
          }
  
          addJobListener(JobsMonitor.class);
  
          try {
              schedule();
              bind(JobFactory.class).to(InjectorJobFactory.class).in(Scopes.SINGLETON);
              bind(Scheduler.class).toProvider(SchedulerProvider.class).asEagerSingleton();
              bind(SchedulerConfiguration.class).toInstance(schedulerConfiguration);
          } finally {
              jobListeners = null;
              triggerListeners = null;
              schedulerListeners = null;
              schedulerConfiguration = null;
          }
      }
docs: {@inheritDoc}