code: private Configuration makeEvaluatorConfiguration(final Configuration contextConfiguration,
                                                     final Optional<Configuration> serviceConfiguration,
                                                     final Optional<Configuration> taskConfiguration) {
  
      final String contextConfigurationString = this.configurationSerializer.toString(contextConfiguration);
  
      final Optional<String> taskConfigurationString;
      if (taskConfiguration.isPresent()) {
        taskConfigurationString = Optional.of(this.configurationSerializer.toString(taskConfiguration.get()));
      } else {
        taskConfigurationString = Optional.empty();
      }
  
      final Optional<Configuration> mergedServiceConfiguration = makeRootServiceConfiguration(serviceConfiguration);
      if (mergedServiceConfiguration.isPresent()) {
        final String serviceConfigurationString = this.configurationSerializer.toString(mergedServiceConfiguration.get());
        return makeEvaluatorConfiguration(contextConfigurationString, Optional.<String>empty(),
            Optional.of(serviceConfigurationString), taskConfigurationString);
      } else {
        return makeEvaluatorConfiguration(
            contextConfigurationString, Optional.<String>empty(), Optional.<String>empty(), taskConfigurationString);
      }
    }
docs: Make configuration for evaluator.
  @param contextConfiguration
  @param serviceConfiguration
  @param taskConfiguration
  @return Configuration