diff --git a/servicetalk-client-api/0.42/service-discovery.html b/servicetalk-client-api/0.42/service-discovery.html index 6aee516e8c..aa1b425b18 100644 --- a/servicetalk-client-api/0.42/service-discovery.html +++ b/servicetalk-client-api/0.42/service-discovery.html @@ -1069,7 +1069,7 @@
A core abstraction in ServiceTalk is its -ServiceDiscoverer +ServiceDiscoverer used by the protocol Clients (eg. HTTP/1.1, HTTP/2, gRPC, etc.).
ServiceDiscoverer abstraction allows for various protocol-independent Service Discovery mechanisms to be implemented. This section will discuss the various implementations offered in ServiceTalk.
DefaultDnsServiceDiscovererBuilder +
DefaultDnsServiceDiscovererBuilder is used to configure and build instances of ServiceDiscoverer that use Domain Name System (DNS) to resolve hosts represented by domain name into a set of IP-addresses needed for Clients to connect to the remote servers. Resolution happens every diff --git a/servicetalk-concurrent-api/0.42/async-context.html b/servicetalk-concurrent-api/0.42/async-context.html index a8dd55c455..3ea0b155af 100644 --- a/servicetalk-concurrent-api/0.42/async-context.html +++ b/servicetalk-concurrent-api/0.42/async-context.html @@ -1240,7 +1240,7 @@
subscribe
, propagate it up the operator chain,
and capture it effectively in the source (or in a wrapped Subscriber
just outside the source).
No result, just termination (Completable
).
No result, just termination (Completable
).
Exactly one result (Single
).
Exactly one result (Single
).
Zero or many results (Publisher
).
Zero or many results (Publisher
).
A PublisherSource
+
A PublisherSource
is an asynchronous primitive that mimics ReactiveStreams interfaces and is
designed to be used when the source may produce zero or potentially infinite number of results.
A SingleSource
+
A SingleSource
is an asynchronous primitive that is designed to be used when the source will produce exactly one result or terminate
with an error.
A CompletableSource
is an asynchronous primitive that is designed to be used when the source will complete or terminate with an error.
A Publisher
+
A Publisher
extends Publisher source and adds commonly used operators.
A Single
+
A Single
extends Single source and adds commonly used operators.
A Completable
+
A Completable
extends Completable source and adds commonly used operators.
ServiceTalk uses the Executor
+
ServiceTalk uses the Executor
abstraction to specify the source of threads to be used for the delivery of signals from an asynchronous source. The
default signal offloading, if any, used by an asynchronous source is determined by the source. For example, the HTTP
sources, in addition to allowing for specification of an offloading executor, provide both direct control of the
diff --git a/servicetalk-concurrent-api/0.42/blocking-safe-by-default.html b/servicetalk-concurrent-api/0.42/blocking-safe-by-default.html
index 523045e6d7..3ab0f6ab41 100644
--- a/servicetalk-concurrent-api/0.42/blocking-safe-by-default.html
+++ b/servicetalk-concurrent-api/0.42/blocking-safe-by-default.html
@@ -1108,7 +1108,7 @@
By default, in ServiceTalk, signals are not executed on an EventLoop thread, but instead executed using an -Executor +Executor provided by the application in the order they are received.
The grpc
folder contains examples for
+
The grpc
folder contains examples for
the gRPC application protocol. We provide
implementations for the examples proto services provided by
gRPC.
This example demonstrates asynchronous request processing for the hello world API using the -HelloWorldServer +HelloWorldServer and a -HelloWorldClient
+HelloWorldClientThis example demonstrates blocking request processing for the hello world API using the -BlockingHelloWorldServer +BlockingHelloWorldServer and a -BlockingHelloWorldClient
+BlockingHelloWorldClientAsynchronous processing for different APIs in the route guide service -are demonstrated using the RouteGuideServer +are demonstrated using the RouteGuideServer and the following clients:
RouteGuideClient - +
RouteGuideClient -
getFeature
API that uses the
aggregated programming paradigm.
RouteGuideRequestStreamingClient - +
RouteGuideRequestStreamingClient -
recordRoute
API that uses the
request streaming programming paradigm.
RouteGuideResponseStreamingClient - +
RouteGuideResponseStreamingClient -
recordRoute
API that uses the
response streaming programming paradigm.
RouteGuideStreamingClient -
recordRoute
API that uses the
bi-directional streaming programming paradigm.
Blocking processing for different APIs in the route guide service -are demonstrated using the BlockingRouteGuideServer +are demonstrated using the BlockingRouteGuideServer and the following clients:
BlockingRouteGuideClient -
getFeature
API that uses the
aggregated programming paradigm.
BlockingRouteGuideRequestStreamingClient - +
BlockingRouteGuideRequestStreamingClient -
recordRoute
API that uses the
request streaming programming paradigm.
BlockingRouteGuideResponseStreamingClient - +
BlockingRouteGuideResponseStreamingClient -
recordRoute
API that uses the
response streaming programming paradigm.
BlockingRouteGuideStreamingClient - +
BlockingRouteGuideStreamingClient -
recordRoute
API that uses the
bi-directional streaming programming paradigm.
CompressionExampleServer - Waits for hello request from the client and responds with a compressed greeting response.
+CompressionExampleServer - Waits for hello request from the client and responds with a compressed greeting response.
CompressionExampleClient - Sends a hello request to the server and receives a +
CompressionExampleClient - Sends a hello request to the server and receives a compressed greeting response.
DeadlineServer – Waits for hello request from the client and, after 5 seconds of delay, responds with a greeting response.
DeadlineClient – Sends hello requests to the server with 1 minute deadline and 3 second deadline and receives a greeting response within that time or cancels the request.
Demonstrates how to use HTTP/2 keep alive for gRPC -server +server and -client. +client. Keep alive uses transport control frames to ensure the peer is still able to read and write to open connections. If the peer is not able to respond to the control frame within the configured amount of time, the connection is closed. This is useful if your environment doesn’t provide other forms of connection keep alive (e.g. @@ -1247,11 +1247,11 @@
DebuggingServer – Waits for hello request from the client and responds with a greeting response.
DebuggingClient – Sends hello requests to the server and receives a greeting response.
This example demonstrates the following: - Use of -GrpcLifecycleObserver to log a summary of each request/response.
+GrpcLifecycleObserver to log a summary of each request/response.Using the following classes:
@@ -1272,13 +1272,13 @@LifecycleObserverServer - A server that installs a -GrpcLifecycleObserver +
LifecycleObserverServer - A server that installs a +GrpcLifecycleObserver on the server builder.
LifecycleObserverClient - A client that installs a -GrpcLifecycleObserver +
LifecycleObserverClient - A client that installs a +GrpcLifecycleObserver on via a client filter on the client builder.
This example demonstrates the following: - Use of -DefaultHealthService +DefaultHealthService which implements gRPC health checking paired with a simple "hello world" service.
Using the following classes: -* HealthServerExample a server -that installs DefaultHealthService in addition to +* HealthServerExample a server +that installs DefaultHealthService in addition to a simple "hello world" service. -* HealthClientExample a client +* HealthClientExample a client that calls the "hello world" server, the "health check" server, and prints results.
ErrorExampleServer - Requires each request has a non-empty token
field or else returns an
+
ErrorExampleServer - Requires each request has a non-empty token
field or else returns an
error.
ErrorExampleClient - Sends a request with missing token
field to simulate an error
+
ErrorExampleClient - Sends a request with missing token
field to simulate an error
condition on the server.
ExecutionStrategyServer - Starts multiple servers configured using a variety of modes and techniques to specify the execution strategy to be used.
+ExecutionStrategyServer - Starts multiple servers configured using a variety of modes and techniques to specify the execution strategy to be used.
ExecutionStrategyClient - Sends requests to each of the differently configured servers and reports execution details.
+ExecutionStrategyClient - Sends requests to each of the differently configured servers and reports execution details.
This example demonstrates how options for the servicetalk-grpc-protoc plugin can be used. See -protoc-options for more details.
+protoc-options for more details.This example demonstrates context with asynchronous request processing using the -RequestResponseContextClient +RequestResponseContextClient and a -RequestResponseContextServer.
+RequestResponseContextServer.This example demonstrates context with blocking request processing using the -BlockingRequestResponseContextClient +BlockingRequestResponseContextClient and a -BlockingRequestResponseContextServer.
+BlockingRequestResponseContextServer.HelloWorldServer - a server that demonstrates the asynchronous API and +
HelloWorldServer - a server that demonstrates the asynchronous API and
responds with a simple Hello World!
response body as a text/plain
.
HelloWorldClient - a client that sends a GET
request to the
-server and receives the response as a single content.
HelloWorldClient - a client that sends a GET
request to the
+server and receives the response as a single content.
HelloWorldUrlClient - a client that sends a GET
request to the
+
HelloWorldUrlClient - a client that sends a GET
request to the
specified URL in absolute-form and receives the response as a single content.
HelloWorldStreamingServer - a server that responds with a +
HelloWorldStreamingServer - a server that responds with a
stream of text/plain
payload body for every request.
HelloWorldStreamingClient - a client that sends a GET
-request to the server and receives the response payload
+
HelloWorldStreamingClient - a client that sends a GET
+request to the server and receives the response payload
body as a stream of buffers.
HelloWorldStreamingUrlClient - a client that sends a +
HelloWorldStreamingUrlClient - a client that sends a
GET
request to the specified URL in absolute-form and receives the response payload body as a stream of buffers.
BlockingHelloWorldServer - a server that demonstrates the +
BlockingHelloWorldServer - a server that demonstrates the
blocking API and responds with a simple Hello World!
response body as a text/plain
.
BlockingHelloWorldClient - a client that sends a GET
request to
-the server and receives the response payload body as one aggregated
+
BlockingHelloWorldClient - a client that sends a GET
request to
+the server and receives the response payload body as one aggregated
object.
BlockingHelloWorldUrlClient - a client that sends a GET
+
BlockingHelloWorldUrlClient - a client that sends a GET
request to the specified URL in absolute-form and receives the response payload body as one aggregated object.
BlockingHelloWorldStreamingServer - a server +
BlockingHelloWorldStreamingServer - a server
that responds with an iterable stream of text/plain
payload body for every request.
BlockingHelloWorldStreamingClient - a client
-that sends a GET
request to the server and
+
BlockingHelloWorldStreamingClient - a client
+that sends a GET
request to the server and
receives the response payload body as a blocking iterable stream of buffers.
BlockingHelloWorldStreamingUrlClient - a +
BlockingHelloWorldStreamingUrlClient - a
client that sends a GET
request to the specified URL in absolute-form and receives the response payload body as a
blocking iterable stream of buffers.
CompressionFilterExampleServer - a server that demonstrates +
CompressionFilterExampleServer - a server that demonstrates
the asynchronous API and responds with a simple Hello World!
response body, optionally customized for a specific name for POST
requests, as a text/plain
.
CompressionFilterExampleClient.java - a single-address client that
-sends a POST
request containing a name to the server and
+
CompressionFilterExampleClient.java - a single-address client that
+sends a POST
request containing a name to the server and
receives a response greeting the posted name as a single content.
CompressionFilterExampleUrlClient.java - a multi-address client that
-sends a POST
request containing a name to the server and
+
CompressionFilterExampleUrlClient.java - a multi-address client that
+sends a POST
request containing a name to the server and
receives a response greeting the posted name as a single content.
DebuggingExampleServer - the async Hello World!
+
DebuggingExampleServer - the async Hello World!
server enhanced with debugging capabilities.
DebuggingExampleClient.java - the async Hello World!
single-address client enhanced with debugging capabilities.
DebuggingExampleClient.java - the async Hello World!
single-address client enhanced with debugging capabilities.
DebuggingExampleUrlClient.java - the async Hello World!
multi-address client enhanced with debugging capabilities.
DebuggingExampleUrlClient.java - the async Hello World!
multi-address client enhanced with debugging capabilities.
TimeoutServer - the async Hello World!
server client enhanced to use timeout capabilities.
TimeoutServer - the async Hello World!
server client enhanced to use timeout capabilities.
TimeoutClient.java - the async Hello World!
single-address client enhanced to use timeout capabilities.
TimeoutClient.java - the async Hello World!
single-address client enhanced to use timeout capabilities.
TimeoutUrlClient.java - the async Hello World!
multi-address client enhanced to use timeout capabilities.
TimeoutUrlClient.java - the async Hello World!
multi-address client enhanced to use timeout capabilities.
An example similar to "Hello World" examples, which demonstrates -asynchronous-aggregated, -asynchronous-streaming, -blocking-aggregated, and -blocking-streaming +asynchronous-aggregated, +asynchronous-streaming, +blocking-aggregated, and +blocking-streaming client and server with JSON serialization of simple pojo classes.
Client sends a POST
request with a JSON payload CreatePojoRequest and expects a response
-with Content-Type: application/json
and PojoResponse as a payload.
Client sends a POST
request with a JSON payload CreatePojoRequest and expects a response
+with Content-Type: application/json
and PojoResponse as a payload.
All serializers and deserializers defined in -SerializerUtils.
+SerializerUtils.An example similar to "Hello World" examples, which demonstrates -asynchronous-aggregated, -asynchronous-streaming, -blocking-aggregated, and -blocking-streaming +asynchronous-aggregated, +asynchronous-streaming, +blocking-aggregated, and +blocking-streaming client and server with Protobuf serialization of simple proto objects.
Client sends a POST
request with a Protobuf payload RequestMessage
and expects a response with
Content-Type: application/protobuf
and ResponseMessage
as a payload
-(message.proto).
+(message.proto).
All serializers and deserializers defined in
-SerializerUtils.
An example similar to "Hello World" examples, which demonstrates
-blocking-aggregated
+blocking-aggregated
client and server with byte[]
serialization.
Client sends a GET
request and expects a response that can be deserialized as byte[]
.
All serializers and deserializers defined in
-SerializerUtils.
HelloWorldJaxRsServer - a JAX-RS based hello world server that demonstrates how to +
HelloWorldJaxRsServer - a JAX-RS based hello world server that demonstrates how to write blocking as well as asynchronous resource methods.
HelloWorldJaxRsResource - a JAX-RS resource having different methods for +
HelloWorldJaxRsResource - a JAX-RS resource having different methods for blocking and asynchronous interactions.
More examples of how to use the resource can be found in the -HelloWorldJaxRsResource javadocs.
+HelloWorldJaxRsResource javadocs.This example demonstrates some basic functionality of the -HttpMetaData classes:
+HttpMetaData classes:MetaDataDemoServer - A server that provides greetings in various languages.
+MetaDataDemoServer - A server that provides greetings in various languages.
MetaDataDemoClient - A client that requests greetings in various languages.
+MetaDataDemoClient - A client that requests greetings in various languages.
HttpServerMutualTLS - A server that sets the trust manager and key manager, and requires client authentication.
+HttpServerMutualTLS - A server that sets the trust manager and key manager, and requires client authentication.
HttpClientMutualTLS - A single-address client that sets the trust manager and key manager.
+HttpClientMutualTLS - A single-address client that sets the trust manager and key manager.
HttpUrlClientMutualTLS - A multi-address client that sets the trust manager and key manager when needed.
+HttpUrlClientMutualTLS - A multi-address client that sets the trust manager and key manager when needed.
This example demonstrates the following: - Use of -HttpLifecycleObserver to log a summary of each request/response.
+HttpLifecycleObserver to log a summary of each request/response.Using the following classes:
@@ -1474,18 +1474,18 @@LifecycleObserverServer - A server that installs a -HttpLifecycleObserver +
LifecycleObserverServer - A server that installs a +HttpLifecycleObserver on the server builder.
LifecycleObserverClient - A single-address client that installs a -HttpLifecycleObserver +
LifecycleObserverClient - A single-address client that installs a +HttpLifecycleObserver on via a client filter on the client builder.
LifecycleObserverUrlClient - A multi-address client that installs a -HttpLifecycleObserver +
LifecycleObserverUrlClient - A multi-address client that installs a +HttpLifecycleObserver on via a client filter on the client builder.
This example demonstrates how to use the experimental DefaultLoadBalancer:
+This example demonstrates how to use the experimental DefaultLoadBalancer:
DefaultLoadBalancerClient - A client that uses the DefaultLoadBalancer.
+DefaultLoadBalancerClient - A client that uses the DefaultLoadBalancer.
HelloWorldServer - A simple server implementation.
+HelloWorldServer - A simple server implementation.
OpenTracingServer - A server that generates/propagates span IDs, makes spans available in logs via MDC, publishes spans via Zipkin’s HTTP API.
+OpenTracingServer - A server that generates/propagates span IDs, makes spans available in logs via MDC, publishes spans via Zipkin’s HTTP API.
OpenTracingClient - A client that generates/propagates span IDs, makes spans available in logs via MDC, publishes spans via local console logger.
+OpenTracingClient - A client that generates/propagates span IDs, makes spans available in logs via MDC, publishes spans via local console logger.
ZipkinServerSimulator - A server that simulates/mocks a Zipkin server, and logs requests to the console.
+ZipkinServerSimulator - A server that simulates/mocks a Zipkin server, and logs requests to the console.
BraveTracingServer - A server that uses Brave OpenTracing implementation.
+BraveTracingServer - A server that uses Brave OpenTracing implementation.
RedirectingServer - Starts two servers, one of them (HTTP) redirects to another (HTTPS).
SingleAddressRedirectClient.java - +
SingleAddressRedirectClient.java -
Async Hello World
example that demonstrates how relative redirects can be handled automatically by a single-address client.
MultiAddressUrlRedirectClient.java - +
MultiAddressUrlRedirectClient.java -
Async Hello World
example that demonstrates how redirects can be handled automatically by a multi-address client.
It demonstrates how users can preserve headers and payload body of the original request while redirecting to non-relative locations.
ManualRedirectClient.java -
Async Hello World
example that demonstrates how redirects can be handled manually between multiple single-address clients.
RetryServer - +
RetryServer -
A special "flaky" Hello World
server that alternates "509" Gateway Timeout and "200" Success responses for client
requests to demonstrate client retry.
RetryClient.java - +
RetryClient.java -
Async Hello World
example that demonstrates how retry can be requested for a single-address client.
RetryUrlClient.java -
Async Hello World
example that demonstrates how retry can be requested for a multi-address client.
Http2PriorKnowledgeServer - A server that uses HTTP/2 with Prior Knowledge.
Http2PriorKnowledgeClient - A single-address client that uses HTTP/2 with Prior Knowledge.
Http2PriorKnowledgeUrlClient - +
Http2PriorKnowledgeUrlClient - A multi-address client that conditionally uses HTTP/2 with Prior Knowledge.
HttpServerWithAlpn - A server that negotiates HTTP/2 or HTTP/1.1 using ALPN extension for TLS connections.
HttpClientWithAlpn - A single-address client that negotiates HTTP/2 or HTTP/1.1 using ALPN extension for TLS connections.
HttpUrlClientWithAlpn - A multi-address client that conditionally negotiates HTTP/2 or HTTP/1.1 using ALPN extension for TLS connections.
This example demonstrates how client and server can use unix domain sockets. See -the uds example code for more details.
+the uds example code for more details.