/**
  * Start the service. Setup a remote domain controller connection and hand it to the server
  * manager.
  *
  * @param context The start context
  * @throws StartException
  */
 public synchronized void start(final StartContext context) throws StartException {
   InetAddress dcAddress = domainControllerAddress.getValue();
   if (dcAddress.isAnyLocalAddress() || dcAddress.isSiteLocalAddress()) {
     try {
       dcAddress = InetAddress.getLocalHost();
     } catch (UnknownHostException e) {
       throw new StartException("Failed to get domain controller address", e);
     }
   }
   final NetworkInterfaceBinding managementInterface = localManagementInterface.getValue();
   domainControllerConnection =
       new RemoteDomainControllerConnection(
           serverManager.getName(),
           dcAddress,
           domainControllerPort.getValue(),
           managementInterface.getAddress(),
           localManagementPort.getValue(),
           localRepository,
           connectTimeout,
           executorService.getValue(),
           threadFactoryValue.getValue());
 }