code: @Override
      public void init(final CONFIG config) throws InitializationException, InterruptedException {
          try {
              try(final CloseableWriteLockWrapper ignored = getManageWriteLock(this)) {
                  if (config == null) {
                      throw new NotAvailableException("config");
                  }
                  currentScope = detectScope(config);
                  applyConfigUpdate(config);
              }
              super.init(currentScope);
          } catch (CouldNotPerformException ex) {
              throw new InitializationException(this, ex);
          }
      }
docs: Initialize the controller with a configuration.
  
  @param config the configuration
  
  @throws InitializationException        if the initialization fails
  @throws java.lang.InterruptedException if the initialization is interrupted