private Publisher createPublisher()

in flink-connector/flink-connector-gcp-pubsub/src/main/java/com/google/pubsub/flink/PubSubSink.java [63:92]


  private Publisher createPublisher(TopicName topicName) throws IOException {
    Publisher.Builder builder = Publisher.newBuilder(topicName.toString());
    // Channel settings copied from com.google.cloud:google-cloud-pubsub:1.124.1.
    builder.setChannelProvider(
        TopicAdminSettings.defaultGrpcTransportProviderBuilder()
            .setChannelsPerCpu(1)
            .setHeaderProvider(
                FixedHeaderProvider.create(
                    "x-goog-api-client", "PubSub-Flink-Connector/1.0.0-SNAPSHOT"))
            .build());
    if (credentials().isPresent()) {
      builder.setCredentialsProvider(FixedCredentialsProvider.create(credentials().get()));
    }
    if (enableMessageOrdering().isPresent()) {
      builder.setEnableMessageOrdering(enableMessageOrdering().get());
    }
    if (endpoint().isPresent()) {
      builder.setEndpoint(endpoint().get());
    }

    String emulatorEndpoint = EmulatorEndpoint.getEmulatorEndpoint(endpoint());
    if (emulatorEndpoint != null) {
      builder.setCredentialsProvider(NoCredentialsProvider.create());
      builder.setChannelProvider(
          FixedTransportChannelProvider.create(
              GrpcTransportChannel.create(
                  ManagedChannelBuilder.forTarget(emulatorEndpoint).usePlaintext().build())));
    }
    return builder.build();
  }