-
InterfaceDescriptionThis API is going to be removed in future releases with no planned replacement. If it cannot be removed from your application, consider copying it into your codebase.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider using
ClientGroup
as an alternative or reach out to the maintainers describing the use-case.This interface is not used by ServiceTalk internal code anymore and will be removed in the future releases. If you depend on it, consider replicating this implementation in your codebase or reach out to us explaining the use-case.This interface is not used by ServiceTalk internal code anymore and will be removed in the future releases. If you depend on it, consider replicating this implementation in your codebase or reach out to us explaining the use-case.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.UsePublisher.groupBy(Function, int)
instead.UseScanLifetimeMapper
.UseScanMapper
.UseBufferEncoder
andBufferDecoder
.This class is not used starting from version 0.42.0 (see PR#1893), we plan to remove it in future releases. In case you have a use-case, let us know.Serialization is now specified viaMethodDescriptor
. Compression is configured per route. gRPC framing is internalized in the gRPC implementation.gRPC Service Filters will be removed in future release of ServiceTalk. We encourage the use ofStreamingHttpServiceFilterFactory
and if the access to the decoded payload is necessary, then performing that logic can be done in the particularservice implementation
. Please useHttpServerBuilder.appendServiceFilter(StreamingHttpServiceFilterFactory)
upon thebuilder
obtained usingGrpcServerBuilder.initializeHttp(GrpcServerBuilder.HttpInitializer)
if HTTP filters are acceptable in your use case.There is no use of this interface in our codebase, it will be removed in the future releases. If you depend on it, consider replicating a similar interface in your codebase.this interface is not needed anymore and will be removed in a future version with no replacement.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.UseDelayedRetryException
instead.In areas which requireTimeoutFromRequest
use variants that acceptBiFunction
<HttpRequestMetaData
,TimeSource
,Duration
>. E.g.:TimeoutHttpRequesterFilter(BiFunction, boolean)
,TimeoutHttpServiceFilter(BiFunction, boolean)
for filters.GeneralType
serialization is not supported by all serializers. Defer to your specificSerializer
implementation.Use the following types:UseStreamingSerializer
.useLateConnectionAcceptor
instead.useLateConnectionAcceptor
instead.This interface will be removed in the future releases.
-
ClassDescriptionWe are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider using
ClientGroup
as an alternative or reach out to the maintainers describing the use-case.This class is not used by ServiceTalk internal code anymore and will be removed in the future releases. If you depend on it, consider replica ting this implementation in your codebase.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.This class is not used by ServiceTalk internal code anymore and will be removed in the future releases. If you depend on it, consider replicating this implementation in your codebase.This class is not used by ServiceTalk internal code anymore and will be removed in the future releases. If you depend on it, consider replicating this implementation in your codebase.This internal class will be removed in the future releases without a replacement. If you depend on it, consider copying into your codebase.This internal class will be removed in the future releases without a replacement. If you depend on it, consider copying into your codebase.This class is no longer used by ServiceTalk and will be removed in the future releases. If you depend on it, consider copying into your codebase.this class will be made package-private in the future, rely on theDnsServiceDiscovererBuilder
instead.UseBufferDecoder
. This type will be removed along withContentCodec
.UseBufferEncoder
. This type will be removed along withContentCodec
.UseNettyCompression
andNettyBufferEncoders
.The gRPC framing is now built into grpc-netty. This class is no longer necessary and will be removed in a future release.ProtoBufSerializationProviderBuilder.registerMessageType(Class, Parser)
is used to add one or moreMessageLite
message types. ResultingGrpcSerializationProvider
fromProtoBufSerializationProviderBuilder.build()
will only serialize and deserialize those message types.This class will be removed in the future in favor of direct usage ofGrpcClientMetadata
. Deprecation ofGrpcMetadata.path()
renders this type unnecessary.This class will be removed in the future in favor of direct usage ofGrpcClientMetadata
. Deprecation ofGrpcMetadata.path()
renders this type unnecessary.UseHttpSerializers
.MergeExecutionStrategy
directly instead.useDefaultHttpLoadBalancerFactory
instead.this class will be made package-private in the future, useRoundRobinLoadBalancers
to createRoundRobinLoadBalancerBuilder
.this class will be made package-private in the future, rely on theRoundRobinLoadBalancerBuilder
instead.Use implementations of following types:GeneralType
serialization is not supported by all serializers. Defer to your specificSerializer
implementation. For example jackson offers TypeReference which can be used directly.This API is going to be removed in future releases with no planned replacement. If it cannot be removed from your application, consider copying it into your codebase.This class will be removed in the future releases.
-
ExceptionsDescriptionWe are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider using
ClientGroup
as an alternative or reach out to the maintainers describing the use-case.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.This class is no longer used by ServiceTalk and will be removed in the future releases. If you depend on it, consider copying into your codebase.This exception type was thrown only byProtoBufSerializationProviderBuilder
that was deprecated and will be removed in future releases. UseSerializationException
instead that can be thrown by a new implementation.UseProxyConnectResponseException
instead
-
FieldDescriptionUse
DefaultGrpcClientMetadata()
to create a new instance instead.GrpcClientMetadata
contains modifiableGrpcMetadata.requestContext()
andGrpcMetadata.responseContext()
now. Using this constant there will be no access to the actual context and both mentioned methods will throwUnsupportedOperationException
.UseTransportObserverConnectionFactoryFilter
to configureTransportObserver
and then listenConnectionObserver.onProxyConnect(Object)
callback to distinguish between a regular connection and a connection to the secure HTTP proxy tunnel. For clear text HTTP proxies, consider installing a custom client filter that will populateHttpMetaData.context()
with a similar key or reach out to the ServiceTalk developers to discuss ideas.This will be removed in a future release of ST. Alternative offering hereRetryingHttpRequesterFilter.BackOffPolicy.ofNoRetries()
.
-
MethodDescriptionconsider using higher level client builders to append filters.Implement and use
LoadBalancedAddress.newConnection(ContextMap)
.UseSingle.concat(Publisher)
orSingle.concatDeferSubscribe(Publisher)
instead.useDnsServiceDiscovererObserver.onNewDiscovery(String, String)
instead. To avoid breaking changes, all current implementations must implement both methods. In the next version the default implementation will swap. Then users will be able to keep implementation only for the new method. In the release after, the deprecated method will be removed.io.servicetalk.encoding.api.internal.HeaderUtils.encodingFor(Collection<ContentCodec>, CharSequence) UseGrpcExecutionStrategies.offloadNone()
instead.UseGrpcRoutes.BlockingResponseStreamingRoute.handle(GrpcServiceContext, Object, BlockingStreamingGrpcServerResponse)
. In the next release, this method will have a default implementation but the new overload won't. To avoid breaking API changes, make sure to implement both methods. The release after next will remove this method. This intermediate step is necessary to maintainFunctionalInterface
contract that requires to have a single non-default method. Note: if you also useGrpcRoutes.BlockingResponseStreamingRoute.wrap(GrpcRoutes.BlockingResponseStreamingRoute, GracefulAutoCloseable)
method, make sure to pass there an implementation ofGrpcRoutes.BlockingResponseStreamingRoute
that implements both overloads instead of a lambda. Otherwise, the defaultGrpcRoutes.BlockingResponseStreamingRoute.handle(GrpcServiceContext, Object, BlockingStreamingGrpcServerResponse)
implementation will be used.UseGrpcRoutes.BlockingStreamingRoute.handle(GrpcServiceContext, BlockingIterable, BlockingStreamingGrpcServerResponse)
. In the next release, this method will have a default implementation but the new overload won't. To avoid breaking API changes, make sure to implement both methods. The release after next will remove this method. This intermediate step is necessary to maintainFunctionalInterface
contract that requires to have a single non-default method. Note: if you also useGrpcRoutes.BlockingStreamingRoute.wrap(GrpcRoutes.BlockingStreamingRoute, GracefulAutoCloseable)
method, make sure to pass there an implementation ofGrpcRoutes.BlockingStreamingRoute
that implements both overloads instead of a lambda. Otherwise, the defaultGrpcRoutes.BlockingStreamingRoute.handle(GrpcServiceContext, BlockingIterable, BlockingStreamingGrpcServerResponse)
implementation will be used.This method is not used starting from version 0.42.0 (see PR#1893), we plan to remove it in future releases. In case you have a use-case, let us know.This method is not used starting from version 0.42.0 (see PR#1893), we plan to remove it in future releases. In case you have a use-case, let us know.Will be removed along withContentCodec
.UseGrpcStatusException.fromThrowable(Throwable)
to create aGrpcStatusException
thenThrowable.getCause()
.io.servicetalk.health.v1.Health.BlockingHealthClient.check(Health.CheckMetadata, HealthCheckRequest) io.servicetalk.health.v1.Health.BlockingHealthClient.watch(Health.WatchMetadata, HealthCheckRequest) UseHealth.BlockingWatchRpc.watch(GrpcServiceContext, HealthCheckRequest, BlockingStreamingGrpcServerResponse)
. In the next release, this method will have a default implementation but the new overload won't. To avoid breaking API changes, make sure to implement both methods. The release after next will remove this method. This intermediate step is necessary to maintainFunctionalInterface
contract that requires to have a single non-default method.Use overload withHttpExecutionStrategy
rather thanHttpExecutionStrategyInfluencer
Use overload withHttpExecutionStrategy
rather thanHttpExecutionStrategyInfluencer
Use overload withHttpExecutionStrategy
rather thanHttpExecutionStrategyInfluencer
Use overload withHttpExecutionStrategy
rather thanHttpExecutionStrategyInfluencer
Use overload withHttpExecutionStrategy
rather thanHttpExecutionStrategyInfluencer
Use overload withHttpExecutionStrategy
rather thanHttpExecutionStrategyInfluencer
Use overload withHttpExecutionStrategy
rather thanHttpExecutionStrategyInfluencer
Use overload withHttpExecutionStrategy
rather thanHttpExecutionStrategyInfluencer
Use overload withHttpExecutionStrategy
rather thanHttpExecutionStrategyInfluencer
UseHttpExecutionStrategies.offloadNone()
instead.This method is not useful anymore and will be removed in future releases.ImplementHttpExecutionStrategyInfluencer.requiredOffloads()
instead.UseHttpRequestMetaData.contentEncoding()
for requests andContentEncodingHttpServiceFilter
for responses. An example can be found here.UseHttpRequestMetaData.contentEncoding(BufferEncoder)
for requests andContentEncodingHttpServiceFilter
for responses. An example can be found here.UseHttpProviders.MultiAddressHttpClientBuilderProvider.newBuilder(String, MultiAddressHttpClientBuilder)
. To avoid breaking changes, all current implementations must implement both methods. In the next version the default implementation will swap. Then users will be able to keep implementation only for the new method. In the release after, the deprecated method will be removed.UseHttpSerializers.textSerializerUtf8()
for aggregated. For streaming, use one of the following:HttpSerializers.appSerializerUtf8FixLen()
HttpSerializers.appSerializerAsciiVarLen()
- Aggregate the payload (e.g.
StreamingHttpRequest.toRequest()
) and useHttpSerializers.textSerializer(Charset)
if your payload is text HttpSerializers.streamingSerializer(StreamingSerializerDeserializer, Consumer, Predicate)
targeted at yourHttpHeaderNames.CONTENT_TYPE
UseHttpSerializers.textSerializer(Charset)
for aggregated. For streaming, use one of the following:HttpSerializers.appSerializerUtf8FixLen()
HttpSerializers.appSerializerAsciiVarLen()
- Aggregate the payload (e.g.
StreamingHttpRequest.toRequest()
) and useHttpSerializers.textSerializer(Charset)
if your payload is text HttpSerializers.streamingSerializer(StreamingSerializerDeserializer, Consumer, Predicate)
targeted at yourHttpHeaderNames.CONTENT_TYPE
io.servicetalk.http.api.HttpSerializationProviders.textDeserializer(Charset, Predicate<HttpHeaders>) UseHttpSerializers.textSerializer(Charset)
for aggregated. For streaming, use one of the following:HttpSerializers.appSerializerUtf8FixLen()
HttpSerializers.appSerializerAsciiVarLen()
- Aggregate the payload (e.g.
StreamingHttpRequest.toRequest()
) and useHttpSerializers.textSerializer(Charset)
if your payload is text HttpSerializers.streamingSerializer(StreamingSerializerDeserializer, Consumer, Predicate)
targeted at yourHttpHeaderNames.CONTENT_TYPE
UseHttpSerializers.textSerializerUtf8()
for aggregated. For streaming, use one of the following:UseHttpSerializers.textSerializer(Charset)
for aggregated. For streaming, use one of the following:UseHttpSerializers.textSerializer(Charset)
for aggregated. For streaming, use one of the following:useDefaultHttpLoadBalancerFactory
and wrap the raw load balancer factory you're interested in using.UseHttpClients.forMultiAddressUrl()
to createMultiAddressHttpClientBuilder
, then useMultiAddressHttpClientBuilder.initializer(SingleAddressInitializer)
to overrideServiceDiscoverer
usingSingleAddressHttpClientBuilder.serviceDiscoverer(ServiceDiscoverer)
for all or some of the internal clients.We are unaware of anyone using "partition" feature and plan to remove it in future releases. If you depend on it, consider usingClientGroup
as an alternative or reach out to the maintainers describing the use-case.In areas which requireTimeoutFromRequest
use variants that acceptBiFunction
<HttpRequestMetaData
,TimeSource
,Duration
>. E.g.:TimeoutHttpRequesterFilter(BiFunction, boolean)
,TimeoutHttpServiceFilter(BiFunction, boolean)
for filters. Note that passedBiFunction
should never block.UseStreamingDeserializer
that understands your protocol's framing.UseStreamingDeserializer
that understands your protocol's framing.UseDeserializer
.UseDeserializer
.UseSerializer
UseStreamingDeserializer
that understands your protocol's framing.UseStreamingSerializer
.use the bind method with early and late acceptors instead.Use#initChannel(Channel, ExecutionContext, CloseHandler, FlushStrategy, long, SslConfig, ChannelInitializer, Protocol, ConnectionObserver, boolean, Predicate)
.Use#initChannel(Channel, ExecutionContext, CloseHandler, FlushStrategy, long, SslConfig, ChannelInitializer, Protocol, ConnectionObserver, boolean, Predicate)
.Use#initChannel(Channel, ExecutionContext, CloseHandler, FlushStrategy, long, SslConfig, ChannelInitializer, Protocol, ConnectionObserver, boolean, Predicate)
.Use#initChildChannel(Channel, ConnectionContext, CloseHandler, FlushStrategy, long, Protocol, ChannelConfig, StreamObserver, boolean, Predicate, UnaryOperator)
.Use#initChildChannel(Channel, ConnectionContext, CloseHandler, FlushStrategy, long, Protocol, ChannelConfig, StreamObserver, boolean, Predicate, UnaryOperator)
.Use#initChildChannel(Channel, ConnectionContext, CloseHandler, FlushStrategy, long, Protocol, ChannelConfig, StreamObserver, boolean, Predicate, UnaryOperator)
.IoExecutor now implementsExecutor
so this method is redundant.UseNettyPipelineSslUtils.extractSslSession(ChannelPipeline, SslHandshakeCompletionEvent, Consumer)
instead, reporting toConnectionObserver.SecurityHandshakeObserver
is handled automatically for allSslHandler
s initialized bySslClientChannelInitializer
orSslServerChannelInitializer
.UseNettyPipelineSslUtils.extractSslSession(SslConfig, ChannelPipeline)
instead, reporting toConnectionObserver.SecurityHandshakeObserver
is handled automatically for allSslHandler
s initialized bySslClientChannelInitializer
orSslServerChannelInitializer
not required anymore, will be removed in the future releases, seeNettyPipelineSslUtils.extractSslSessionAndReport(SslConfig, ChannelPipeline, ConnectionObserver)
for an alternative approachThis method is not used by internal ServiceTalk code anymore and will be removed in future releases.
-
ConstructorDescriptionuse
DnsServiceDiscoverers.builder(String)
instead.this constructor is not needed anymore, useGrpcRoutes()
instead.UseGrpcStatusException
if there is aThrowable
cause.UseGrpcStatusException
if there is a cause orGrpcStatus(GrpcStatusCode, String)
.UseBuilder()
and set the custom strategy onHealth.ServiceFactory.Builder.routeExecutionStrategyFactory(RouteExecutionStrategyFactory)
instead.UseBuilder()
and set the custom strategy onHealth.ServiceFactory.Builder.routeExecutionStrategyFactory(RouteExecutionStrategyFactory)
instead.useHealth.ServiceFactory.Builder.routeExecutionStrategyFactory(RouteExecutionStrategyFactory)
on the Builder instead.useRoundRobinLoadBalancers.builder(String)
instead.this method is internal, no user should be setting theOpenTelemetry
as it is obtained by usingGlobalOpenTelemetry.get()
and there should be no other implementations but the one available in the classpath, this constructor will be removed in the future releases. UseOpenTelemetryHttpRequestFilter(String, OpenTelemetryOptions)
orOpenTelemetryHttpRequestFilter()
instead.this method is internal, no user should be setting theOpenTelemetry
as it is obtained by usingGlobalOpenTelemetry.get()
and there should be no other implementations but the one available in the classpath, this constructor will be removed in the future releases. UseOpenTelemetryHttpServerFilter(OpenTelemetryOptions)
orOpenTelemetryHttpServerFilter()
instead.