public DocumentProcessorServiceSettings documentProcessorServiceSettings()

in spring-cloud-previews/google-cloud-document-ai-spring-starter/src/main/java/com/google/cloud/documentai/v1/spring/DocumentProcessorServiceSpringAutoConfiguration.java [124:412]


  public DocumentProcessorServiceSettings documentProcessorServiceSettings(
      @Qualifier("defaultDocumentProcessorServiceTransportChannelProvider")
          TransportChannelProvider defaultTransportChannelProvider)
      throws IOException {
    DocumentProcessorServiceSettings.Builder clientSettingsBuilder;
    if (this.clientProperties.getUseRest()) {
      clientSettingsBuilder = DocumentProcessorServiceSettings.newHttpJsonBuilder();
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Using REST (HTTP/JSON) transport.");
      }
    } else {
      clientSettingsBuilder = DocumentProcessorServiceSettings.newBuilder();
    }
    clientSettingsBuilder
        .setCredentialsProvider(this.credentialsProvider)
        .setTransportChannelProvider(defaultTransportChannelProvider)
        .setEndpoint(DocumentProcessorServiceSettings.getDefaultEndpoint())
        .setHeaderProvider(this.userAgentHeaderProvider());
    if (this.clientProperties.getQuotaProjectId() != null) {
      clientSettingsBuilder.setQuotaProjectId(this.clientProperties.getQuotaProjectId());
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Quota project id set to "
                + this.clientProperties.getQuotaProjectId()
                + ", this overrides project id from credentials.");
      }
    }
    if (this.clientProperties.getExecutorThreadCount() != null) {
      ExecutorProvider executorProvider =
          DocumentProcessorServiceSettings.defaultExecutorProviderBuilder()
              .setExecutorThreadCount(this.clientProperties.getExecutorThreadCount())
              .build();
      clientSettingsBuilder.setBackgroundExecutorProvider(executorProvider);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Background executor thread count is "
                + this.clientProperties.getExecutorThreadCount());
      }
    }
    Retry serviceRetry = clientProperties.getRetry();
    if (serviceRetry != null) {
      RetrySettings processDocumentRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.processDocumentSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .processDocumentSettings()
          .setRetrySettings(processDocumentRetrySettings);

      RetrySettings fetchProcessorTypesRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.fetchProcessorTypesSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .fetchProcessorTypesSettings()
          .setRetrySettings(fetchProcessorTypesRetrySettings);

      RetrySettings listProcessorTypesRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listProcessorTypesSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .listProcessorTypesSettings()
          .setRetrySettings(listProcessorTypesRetrySettings);

      RetrySettings getProcessorTypeRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getProcessorTypeSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .getProcessorTypeSettings()
          .setRetrySettings(getProcessorTypeRetrySettings);

      RetrySettings listProcessorsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listProcessorsSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.listProcessorsSettings().setRetrySettings(listProcessorsRetrySettings);

      RetrySettings getProcessorRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getProcessorSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.getProcessorSettings().setRetrySettings(getProcessorRetrySettings);

      RetrySettings getProcessorVersionRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getProcessorVersionSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .getProcessorVersionSettings()
          .setRetrySettings(getProcessorVersionRetrySettings);

      RetrySettings listProcessorVersionsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listProcessorVersionsSettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .listProcessorVersionsSettings()
          .setRetrySettings(listProcessorVersionsRetrySettings);

      RetrySettings createProcessorRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.createProcessorSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .createProcessorSettings()
          .setRetrySettings(createProcessorRetrySettings);

      RetrySettings getEvaluationRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getEvaluationSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.getEvaluationSettings().setRetrySettings(getEvaluationRetrySettings);

      RetrySettings listEvaluationsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listEvaluationsSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .listEvaluationsSettings()
          .setRetrySettings(listEvaluationsRetrySettings);

      RetrySettings listLocationsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listLocationsSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.listLocationsSettings().setRetrySettings(listLocationsRetrySettings);

      RetrySettings getLocationRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getLocationSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.getLocationSettings().setRetrySettings(getLocationRetrySettings);

      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured service-level retry settings from properties.");
      }
    }
    Retry processDocumentRetry = clientProperties.getProcessDocumentRetry();
    if (processDocumentRetry != null) {
      RetrySettings processDocumentRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.processDocumentSettings().getRetrySettings(),
              processDocumentRetry);
      clientSettingsBuilder
          .processDocumentSettings()
          .setRetrySettings(processDocumentRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for processDocument from properties.");
      }
    }
    Retry fetchProcessorTypesRetry = clientProperties.getFetchProcessorTypesRetry();
    if (fetchProcessorTypesRetry != null) {
      RetrySettings fetchProcessorTypesRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.fetchProcessorTypesSettings().getRetrySettings(),
              fetchProcessorTypesRetry);
      clientSettingsBuilder
          .fetchProcessorTypesSettings()
          .setRetrySettings(fetchProcessorTypesRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for fetchProcessorTypes from properties.");
      }
    }
    Retry listProcessorTypesRetry = clientProperties.getListProcessorTypesRetry();
    if (listProcessorTypesRetry != null) {
      RetrySettings listProcessorTypesRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listProcessorTypesSettings().getRetrySettings(),
              listProcessorTypesRetry);
      clientSettingsBuilder
          .listProcessorTypesSettings()
          .setRetrySettings(listProcessorTypesRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for listProcessorTypes from properties.");
      }
    }
    Retry getProcessorTypeRetry = clientProperties.getGetProcessorTypeRetry();
    if (getProcessorTypeRetry != null) {
      RetrySettings getProcessorTypeRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getProcessorTypeSettings().getRetrySettings(),
              getProcessorTypeRetry);
      clientSettingsBuilder
          .getProcessorTypeSettings()
          .setRetrySettings(getProcessorTypeRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for getProcessorType from properties.");
      }
    }
    Retry listProcessorsRetry = clientProperties.getListProcessorsRetry();
    if (listProcessorsRetry != null) {
      RetrySettings listProcessorsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listProcessorsSettings().getRetrySettings(),
              listProcessorsRetry);
      clientSettingsBuilder.listProcessorsSettings().setRetrySettings(listProcessorsRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for listProcessors from properties.");
      }
    }
    Retry getProcessorRetry = clientProperties.getGetProcessorRetry();
    if (getProcessorRetry != null) {
      RetrySettings getProcessorRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getProcessorSettings().getRetrySettings(), getProcessorRetry);
      clientSettingsBuilder.getProcessorSettings().setRetrySettings(getProcessorRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for getProcessor from properties.");
      }
    }
    Retry getProcessorVersionRetry = clientProperties.getGetProcessorVersionRetry();
    if (getProcessorVersionRetry != null) {
      RetrySettings getProcessorVersionRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getProcessorVersionSettings().getRetrySettings(),
              getProcessorVersionRetry);
      clientSettingsBuilder
          .getProcessorVersionSettings()
          .setRetrySettings(getProcessorVersionRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for getProcessorVersion from properties.");
      }
    }
    Retry listProcessorVersionsRetry = clientProperties.getListProcessorVersionsRetry();
    if (listProcessorVersionsRetry != null) {
      RetrySettings listProcessorVersionsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listProcessorVersionsSettings().getRetrySettings(),
              listProcessorVersionsRetry);
      clientSettingsBuilder
          .listProcessorVersionsSettings()
          .setRetrySettings(listProcessorVersionsRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for listProcessorVersions from properties.");
      }
    }
    Retry createProcessorRetry = clientProperties.getCreateProcessorRetry();
    if (createProcessorRetry != null) {
      RetrySettings createProcessorRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.createProcessorSettings().getRetrySettings(),
              createProcessorRetry);
      clientSettingsBuilder
          .createProcessorSettings()
          .setRetrySettings(createProcessorRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for createProcessor from properties.");
      }
    }
    Retry getEvaluationRetry = clientProperties.getGetEvaluationRetry();
    if (getEvaluationRetry != null) {
      RetrySettings getEvaluationRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getEvaluationSettings().getRetrySettings(), getEvaluationRetry);
      clientSettingsBuilder.getEvaluationSettings().setRetrySettings(getEvaluationRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for getEvaluation from properties.");
      }
    }
    Retry listEvaluationsRetry = clientProperties.getListEvaluationsRetry();
    if (listEvaluationsRetry != null) {
      RetrySettings listEvaluationsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listEvaluationsSettings().getRetrySettings(),
              listEvaluationsRetry);
      clientSettingsBuilder
          .listEvaluationsSettings()
          .setRetrySettings(listEvaluationsRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for listEvaluations from properties.");
      }
    }
    Retry listLocationsRetry = clientProperties.getListLocationsRetry();
    if (listLocationsRetry != null) {
      RetrySettings listLocationsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listLocationsSettings().getRetrySettings(), listLocationsRetry);
      clientSettingsBuilder.listLocationsSettings().setRetrySettings(listLocationsRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for listLocations from properties.");
      }
    }
    Retry getLocationRetry = clientProperties.getGetLocationRetry();
    if (getLocationRetry != null) {
      RetrySettings getLocationRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getLocationSettings().getRetrySettings(), getLocationRetry);
      clientSettingsBuilder.getLocationSettings().setRetrySettings(getLocationRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for getLocation from properties.");
      }
    }
    return clientSettingsBuilder.build();
  }