code: public void start(
  			final String initialOwnerAddress,
  			final RpcService initialRpcService,
  			final HighAvailabilityServices initialHighAvailabilityServices,
  			final JobLeaderListener initialJobLeaderListener) {
  
  		if (JobLeaderService.State.CREATED != state) {
  			throw new IllegalStateException("The service has already been started.");
  		} else {
  			LOG.info("Start job leader service.");
  
  			this.ownerAddress = Preconditions.checkNotNull(initialOwnerAddress);
  			this.rpcService = Preconditions.checkNotNull(initialRpcService);
  			this.highAvailabilityServices = Preconditions.checkNotNull(initialHighAvailabilityServices);
  			this.jobLeaderListener = Preconditions.checkNotNull(initialJobLeaderListener);
  			state = JobLeaderService.State.STARTED;
  		}
  	}
docs: Start the job leader service with the given services.
  
  @param initialOwnerAddress to be used for establishing connections (source address)
  @param initialRpcService to be used to create rpc connections
  @param initialHighAvailabilityServices to create leader retrieval services for the different jobs
  @param initialJobLeaderListener listening for job leader changes