code: @Override
      public synchronized void start(final StartContext context) throws StartException {
          final Runnable task = new Runnable() {
              @Override
              public void run() {
                  try {
                      if (isMasterDomainController && (discoveryOptions != null)) {
                          // Allow slave host controllers to discover this domain controller using any
                          // of the provided discovery options.
  
                          for(DomainControllerManagementInterface managementInterface : managementInterfaces) {
                              String host = interfaceBindings.get(managementInterface.getAddress()).getValue().getAddress().getHostAddress();
                              managementInterface.setHost(host);
                          }
                          for (DiscoveryOption discoveryOption : discoveryOptions) {
                              discoveryOption.allowDiscovery(managementInterfaces);
                          }
                      }
                      context.complete();
                  } catch (Exception e) {
                      context.failed(new StartException(e));
                  }
              }
          };
          try {
              executorService.getValue().execute(task);
          } catch (RejectedExecutionException e) {
              task.run();
          } finally {
              context.asynchronous();
          }
      }
docs: {@inheritDoc}