Class ThriftClientBuilder

java.lang.Object
com.linecorp.armeria.client.AbstractClientOptionsBuilder
com.linecorp.armeria.client.thrift.ThriftClientBuilder

@UnstableApi public final class ThriftClientBuilder extends com.linecorp.armeria.client.AbstractClientOptionsBuilder
Creates a new Thrift client that connects to the specified URI using the builder pattern. Use the factory methods in ThriftClients if you do not have many options to override.
  • Method Details

    • serializationFormat

      public ThriftClientBuilder serializationFormat(com.linecorp.armeria.common.SerializationFormat serializationFormat)
      Sets the Thrift SerializationFormat. If not set, the Scheme.serializationFormat() specified when creating this builder will be used by default.
      See Also:
    • path

      public ThriftClientBuilder path(String path)
      Sets the path for the Thrift endpoint. This method will be useful if your Thrift service is bound to a path. For example:
      
       // A Thrift service is bound to "/thrift"
       Server.builder()
             .service("/thrift", THttpService.of(new MyThriftService()))
             .build();
      
       // Set "/thrift" to the Thrift service path.
       ThriftClients.builder("https://api.example.com")
                    .path("/thrift")
                    .build(MyThriftService.XXXIface.class)
       
    • maxResponseStringLength

      public ThriftClientBuilder maxResponseStringLength(int maxResponseStringLength)
      Sets the maximum allowed number of bytes to read from the transport for variable-length fields (such as strings or binary). If unspecified, the value of ClientOptions.maxResponseLength() will be used instead.

      Note that this option is only valid for TBinaryProtocol and TCompactProtocol.

      Parameters:
      maxResponseStringLength - the maximum allowed string length. 0 disables the length limit.
    • maxResponseContainerLength

      public ThriftClientBuilder maxResponseContainerLength(int maxResponseContainerLength)
      Sets the maximum allowed size of containers to read from the transport for maps, sets and lists. If unspecified, the value of ClientOptions.maxResponseLength() will be used instead.

      Note that this option is only valid for TBinaryProtocol and TCompactProtocol.

      Parameters:
      maxResponseContainerLength - the maximum allowed string length. 0 disables the length limit.
    • build

      public <T> T build(Class<T> clientType)
      Returns a newly-created Thrift client which implements the specified clientType, based on the properties of this builder.
    • options

      public ThriftClientBuilder options(com.linecorp.armeria.client.ClientOptions options)
      Overrides:
      options in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • options

      public ThriftClientBuilder options(com.linecorp.armeria.client.ClientOptionValue<?>... options)
      Overrides:
      options in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • options

      public ThriftClientBuilder options(Iterable<com.linecorp.armeria.client.ClientOptionValue<?>> options)
      Overrides:
      options in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • option

      public <T> ThriftClientBuilder option(com.linecorp.armeria.client.ClientOption<T> option, T value)
      Overrides:
      option in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • option

      public <T> ThriftClientBuilder option(com.linecorp.armeria.client.ClientOptionValue<T> optionValue)
      Overrides:
      option in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • factory

      public ThriftClientBuilder factory(com.linecorp.armeria.client.ClientFactory factory)
      Overrides:
      factory in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • writeTimeout

      public ThriftClientBuilder writeTimeout(Duration writeTimeout)
      Overrides:
      writeTimeout in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • writeTimeoutMillis

      public ThriftClientBuilder writeTimeoutMillis(long writeTimeoutMillis)
      Overrides:
      writeTimeoutMillis in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • responseTimeout

      public ThriftClientBuilder responseTimeout(Duration responseTimeout)
      Overrides:
      responseTimeout in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • responseTimeoutMillis

      public ThriftClientBuilder responseTimeoutMillis(long responseTimeoutMillis)
      Overrides:
      responseTimeoutMillis in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • maxResponseLength

      public ThriftClientBuilder maxResponseLength(long maxResponseLength)
      Overrides:
      maxResponseLength in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • requestIdGenerator

      public ThriftClientBuilder requestIdGenerator(Supplier<com.linecorp.armeria.common.RequestId> requestIdGenerator)
      Overrides:
      requestIdGenerator in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • successFunction

      public ThriftClientBuilder successFunction(com.linecorp.armeria.common.SuccessFunction successFunction)
      Overrides:
      successFunction in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • endpointRemapper

      public ThriftClientBuilder endpointRemapper(Function<? super com.linecorp.armeria.client.Endpoint,? extends com.linecorp.armeria.client.endpoint.EndpointGroup> endpointRemapper)
      Overrides:
      endpointRemapper in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • decorator

      public ThriftClientBuilder decorator(Function<? super com.linecorp.armeria.client.HttpClient,? extends com.linecorp.armeria.client.HttpClient> decorator)
      Overrides:
      decorator in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • decorator

      public ThriftClientBuilder decorator(com.linecorp.armeria.client.DecoratingHttpClientFunction decorator)
      Overrides:
      decorator in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • rpcDecorator

      public ThriftClientBuilder rpcDecorator(Function<? super com.linecorp.armeria.client.RpcClient,? extends com.linecorp.armeria.client.RpcClient> decorator)
      Overrides:
      rpcDecorator in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • rpcDecorator

      public ThriftClientBuilder rpcDecorator(com.linecorp.armeria.client.DecoratingRpcClientFunction decorator)
      Overrides:
      rpcDecorator in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • clearDecorators

      public ThriftClientBuilder clearDecorators()
      Overrides:
      clearDecorators in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • addHeader

      public ThriftClientBuilder addHeader(CharSequence name, Object value)
      Overrides:
      addHeader in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • addHeaders

      public ThriftClientBuilder addHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> headers)
      Overrides:
      addHeaders in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • setHeader

      public ThriftClientBuilder setHeader(CharSequence name, Object value)
      Overrides:
      setHeader in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • setHeaders

      public ThriftClientBuilder setHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> headers)
      Overrides:
      setHeaders in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • auth

      public ThriftClientBuilder auth(com.linecorp.armeria.common.auth.BasicToken token)
      Overrides:
      auth in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • auth

      public ThriftClientBuilder auth(com.linecorp.armeria.common.auth.OAuth1aToken token)
      Overrides:
      auth in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • auth

      public ThriftClientBuilder auth(com.linecorp.armeria.common.auth.OAuth2Token token)
      Overrides:
      auth in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • auth

      public ThriftClientBuilder auth(com.linecorp.armeria.common.auth.AuthToken token)
      Overrides:
      auth in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • followRedirects

      public ThriftClientBuilder followRedirects()
      Overrides:
      followRedirects in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • followRedirects

      public ThriftClientBuilder followRedirects(com.linecorp.armeria.client.redirect.RedirectConfig redirectConfig)
      Overrides:
      followRedirects in class com.linecorp.armeria.client.AbstractClientOptionsBuilder
    • contextCustomizer

      public ThriftClientBuilder contextCustomizer(Consumer<? super com.linecorp.armeria.client.ClientRequestContext> contextCustomizer)
      Overrides:
      contextCustomizer in class com.linecorp.armeria.client.AbstractClientOptionsBuilder