Package io.servicetalk.grpc.api
Class GrpcRoutes<Service extends GrpcService>
- java.lang.Object
-
- io.servicetalk.grpc.api.GrpcRoutes<Service>
-
- Type Parameters:
Service
- Type for service that these routes represent.
public abstract class GrpcRoutes<Service extends GrpcService> extends java.lang.Object
A holder of gRPC routes that constitutes a service.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static interface
GrpcRoutes.AllGrpcRoutes
A collection of route corresponding to the enclosingGrpcRoutes
.protected static interface
GrpcRoutes.BlockingRequestStreamingRoute<Req,Resp>
A blocking gRPC route with request streaming.protected static interface
GrpcRoutes.BlockingResponseStreamingRoute<Req,Resp>
A blocking gRPC route with response streaming.protected static interface
GrpcRoutes.BlockingRoute<Req,Resp>
A blocking gRPC route.protected static interface
GrpcRoutes.BlockingStreamingRoute<Req,Resp>
A blocking gRPC route with bi-directional streaming.protected static interface
GrpcRoutes.RequestStreamingRoute<Req,Resp>
An asynchronous gRPC route with request streaming.protected static interface
GrpcRoutes.ResponseStreamingRoute<Req,Resp>
An asynchronous gRPC route with response streaming.protected static interface
GrpcRoutes.Route<Req,Resp>
An asynchronous gRPC route.protected static interface
GrpcRoutes.StreamingRoute<Req,Resp>
An asynchronous gRPC route with bi-directional streaming.
-
Constructor Summary
Constructors Modifier Constructor Description protected
GrpcRoutes()
Create a new instance.protected
GrpcRoutes(RouteExecutionStrategyFactory<GrpcExecutionStrategy> strategyFactory)
Create new instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected <Req,Resp>
voidaddBlockingRequestStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.BlockingRequestStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingRequestStreamingRoute
to this factory.protected <Req,Resp>
voidaddBlockingRequestStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.BlockingRequestStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingRequestStreamingRoute
to this factory.protected <Req,Resp>
voidaddBlockingResponseStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.BlockingResponseStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingResponseStreamingRoute
to this factory.protected <Req,Resp>
voidaddBlockingResponseStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.BlockingResponseStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingResponseStreamingRoute
to this factory.protected <Req,Resp>
voidaddBlockingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.BlockingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingRoute
to this factory.protected <Req,Resp>
voidaddBlockingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.BlockingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingRoute
to this factory.protected <Req,Resp>
voidaddBlockingStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.BlockingStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingStreamingRoute
to this factory.protected <Req,Resp>
voidaddBlockingStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.BlockingStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingStreamingRoute
to this factory.protected <Req,Resp>
voidaddRequestStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.RequestStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.RequestStreamingRoute
to this factory.protected <Req,Resp>
voidaddRequestStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.RequestStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.RequestStreamingRoute
to this factory.protected <Req,Resp>
voidaddResponseStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.ResponseStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.ResponseStreamingRoute
to this factory.protected <Req,Resp>
voidaddResponseStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.ResponseStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.ResponseStreamingRoute
to this factory.protected <Req,Resp>
voidaddRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.Route<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.Route
to this factory.protected <Req,Resp>
voidaddRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.Route<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.Route
to this factory.protected <Req,Resp>
voidaddStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.StreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.StreamingRoute
to this factory.protected <Req,Resp>
voidaddStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.StreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.StreamingRoute
to this factory.protected abstract Service
newServiceFromRoutes(GrpcRoutes.AllGrpcRoutes routes)
Create a newGrpcRoutes
from the passedGrpcRoutes.AllGrpcRoutes
.protected abstract void
registerRoutes(Service service)
Register all routes contained in the passedGrpcRoutes
.
-
-
-
Constructor Detail
-
GrpcRoutes
protected GrpcRoutes()
Create a new instance.
-
GrpcRoutes
protected GrpcRoutes(RouteExecutionStrategyFactory<GrpcExecutionStrategy> strategyFactory)
Create new instance.- Parameters:
strategyFactory
- aRouteExecutionStrategyFactory<GrpcExecutionStrategy>
for creatingGrpcExecutionStrategy
instances that can be used for offloading the handling of request to resource methods, as specified viaRouteExecutionStrategy
annotation
-
-
Method Detail
-
registerRoutes
protected abstract void registerRoutes(Service service)
Register all routes contained in the passedGrpcRoutes
.- Parameters:
service
-GrpcRoutes
for which routes have to be registered.
-
newServiceFromRoutes
protected abstract Service newServiceFromRoutes(GrpcRoutes.AllGrpcRoutes routes)
Create a newGrpcRoutes
from the passedGrpcRoutes.AllGrpcRoutes
.- Parameters:
routes
-GrpcRoutes.AllGrpcRoutes
for which aGrpcRoutes
has to be created.- Returns:
GrpcRoutes
containing all the passed routes.
-
addRoute
protected final <Req,Resp> void addRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.Route<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.Route
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.serviceClass
-Class
of the gRPC service.methodName
- the name of gRPC method.route
-GrpcRoutes.Route
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addRoute
protected final <Req,Resp> void addRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.Route<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.Route
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.executionStrategy
-GrpcExecutionStrategy
to use.route
-GrpcRoutes.Route
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addStreamingRoute
protected final <Req,Resp> void addStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.StreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.StreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.serviceClass
-Class
of the gRPC service.methodName
- the name of gRPC method.route
-GrpcRoutes.StreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addStreamingRoute
protected final <Req,Resp> void addStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.StreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.StreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.executionStrategy
-GrpcExecutionStrategy
to use.route
-GrpcRoutes.StreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addRequestStreamingRoute
protected final <Req,Resp> void addRequestStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.RequestStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.RequestStreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.serviceClass
-Class
of the gRPC service.methodName
- the name of gRPC method.route
-GrpcRoutes.RequestStreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addRequestStreamingRoute
protected final <Req,Resp> void addRequestStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.RequestStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.RequestStreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.executionStrategy
-GrpcExecutionStrategy
to use.route
-GrpcRoutes.RequestStreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addResponseStreamingRoute
protected final <Req,Resp> void addResponseStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.ResponseStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.ResponseStreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.serviceClass
-Class
of the gRPC service.methodName
- the name of gRPC method.route
-GrpcRoutes.ResponseStreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addResponseStreamingRoute
protected final <Req,Resp> void addResponseStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.ResponseStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.ResponseStreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.executionStrategy
-GrpcExecutionStrategy
to use.route
-GrpcRoutes.ResponseStreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addBlockingRoute
protected final <Req,Resp> void addBlockingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.BlockingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.serviceClass
-Class
of the gRPC service.methodName
- the name of gRPC method.route
-GrpcRoutes.BlockingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addBlockingRoute
protected final <Req,Resp> void addBlockingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.BlockingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.executionStrategy
-GrpcExecutionStrategy
to use.route
-GrpcRoutes.BlockingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addBlockingStreamingRoute
protected final <Req,Resp> void addBlockingStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.BlockingStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingStreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.serviceClass
-Class
of the gRPC service.methodName
- the name of gRPC method.route
-GrpcRoutes.BlockingStreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addBlockingStreamingRoute
protected final <Req,Resp> void addBlockingStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.BlockingStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingStreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.executionStrategy
-GrpcExecutionStrategy
to use.route
-GrpcRoutes.BlockingStreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addBlockingRequestStreamingRoute
protected final <Req,Resp> void addBlockingRequestStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.BlockingRequestStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingRequestStreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.serviceClass
-Class
of the gRPC service.methodName
- the name of gRPC method.route
-GrpcRoutes.BlockingRequestStreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addBlockingRequestStreamingRoute
protected final <Req,Resp> void addBlockingRequestStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.BlockingRequestStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingRequestStreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.executionStrategy
-GrpcExecutionStrategy
to use.route
-GrpcRoutes.BlockingRequestStreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addBlockingResponseStreamingRoute
protected final <Req,Resp> void addBlockingResponseStreamingRoute(java.lang.String path, java.lang.Class<?> serviceClass, java.lang.String methodName, GrpcRoutes.BlockingResponseStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingResponseStreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.serviceClass
-Class
of the gRPC service.methodName
- the name of gRPC method.route
-GrpcRoutes.BlockingResponseStreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
addBlockingResponseStreamingRoute
protected final <Req,Resp> void addBlockingResponseStreamingRoute(java.lang.String path, GrpcExecutionStrategy executionStrategy, GrpcRoutes.BlockingResponseStreamingRoute<Req,Resp> route, java.lang.Class<Req> requestClass, java.lang.Class<Resp> responseClass, GrpcSerializationProvider serializationProvider)
Adds aGrpcRoutes.BlockingResponseStreamingRoute
to this factory.- Type Parameters:
Req
- Type of request.Resp
- Type of response.- Parameters:
path
- for this route.executionStrategy
-GrpcExecutionStrategy
to use.route
-GrpcRoutes.BlockingResponseStreamingRoute
to add.requestClass
-Class
for the request object.responseClass
-Class
for the response object.serializationProvider
-GrpcSerializationProvider
for the route.
-
-