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.ObjectA holder of gRPC routes that constitutes a service.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static interfaceGrpcRoutes.AllGrpcRoutesA collection of route corresponding to the enclosingGrpcRoutes.protected static interfaceGrpcRoutes.BlockingRequestStreamingRoute<Req,Resp>A blocking gRPC route with request streaming.protected static interfaceGrpcRoutes.BlockingResponseStreamingRoute<Req,Resp>A blocking gRPC route with response streaming.protected static interfaceGrpcRoutes.BlockingRoute<Req,Resp>A blocking gRPC route.protected static interfaceGrpcRoutes.BlockingStreamingRoute<Req,Resp>A blocking gRPC route with bi-directional streaming.protected static interfaceGrpcRoutes.RequestStreamingRoute<Req,Resp>An asynchronous gRPC route with request streaming.protected static interfaceGrpcRoutes.ResponseStreamingRoute<Req,Resp>An asynchronous gRPC route with response streaming.protected static interfaceGrpcRoutes.Route<Req,Resp>An asynchronous gRPC route.protected static interfaceGrpcRoutes.StreamingRoute<Req,Resp>An asynchronous gRPC route with bi-directional streaming.
-
Constructor Summary
Constructors Modifier Constructor Description protectedGrpcRoutes()Create a new instance.protectedGrpcRoutes(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.BlockingRequestStreamingRouteto 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.BlockingRequestStreamingRouteto 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.BlockingResponseStreamingRouteto 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.BlockingResponseStreamingRouteto 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.BlockingRouteto 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.BlockingRouteto 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.BlockingStreamingRouteto 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.BlockingStreamingRouteto 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.RequestStreamingRouteto 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.RequestStreamingRouteto 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.ResponseStreamingRouteto 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.ResponseStreamingRouteto 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.Routeto 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.Routeto 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.StreamingRouteto 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.StreamingRouteto this factory.protected abstract ServicenewServiceFromRoutes(GrpcRoutes.AllGrpcRoutes routes)Create a newGrpcRoutesfrom the passedGrpcRoutes.AllGrpcRoutes.protected abstract voidregisterRoutes(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 creatingGrpcExecutionStrategyinstances that can be used for offloading the handling of request to resource methods, as specified viaRouteExecutionStrategyannotation
-
-
Method Detail
-
registerRoutes
protected abstract void registerRoutes(Service service)
Register all routes contained in the passedGrpcRoutes.- Parameters:
service-GrpcRoutesfor which routes have to be registered.
-
newServiceFromRoutes
protected abstract Service newServiceFromRoutes(GrpcRoutes.AllGrpcRoutes routes)
Create a newGrpcRoutesfrom the passedGrpcRoutes.AllGrpcRoutes.- Parameters:
routes-GrpcRoutes.AllGrpcRoutesfor which aGrpcRouteshas to be created.- Returns:
GrpcRoutescontaining 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.Routeto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.serviceClass-Classof the gRPC service.methodName- the name of gRPC method.route-GrpcRoutes.Routeto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.Routeto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.executionStrategy-GrpcExecutionStrategyto use.route-GrpcRoutes.Routeto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.StreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.serviceClass-Classof the gRPC service.methodName- the name of gRPC method.route-GrpcRoutes.StreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.StreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.executionStrategy-GrpcExecutionStrategyto use.route-GrpcRoutes.StreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.RequestStreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.serviceClass-Classof the gRPC service.methodName- the name of gRPC method.route-GrpcRoutes.RequestStreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.RequestStreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.executionStrategy-GrpcExecutionStrategyto use.route-GrpcRoutes.RequestStreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.ResponseStreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.serviceClass-Classof the gRPC service.methodName- the name of gRPC method.route-GrpcRoutes.ResponseStreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.ResponseStreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.executionStrategy-GrpcExecutionStrategyto use.route-GrpcRoutes.ResponseStreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.BlockingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.serviceClass-Classof the gRPC service.methodName- the name of gRPC method.route-GrpcRoutes.BlockingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.BlockingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.executionStrategy-GrpcExecutionStrategyto use.route-GrpcRoutes.BlockingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.BlockingStreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.serviceClass-Classof the gRPC service.methodName- the name of gRPC method.route-GrpcRoutes.BlockingStreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.BlockingStreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.executionStrategy-GrpcExecutionStrategyto use.route-GrpcRoutes.BlockingStreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.BlockingRequestStreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.serviceClass-Classof the gRPC service.methodName- the name of gRPC method.route-GrpcRoutes.BlockingRequestStreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.BlockingRequestStreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.executionStrategy-GrpcExecutionStrategyto use.route-GrpcRoutes.BlockingRequestStreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.BlockingResponseStreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.serviceClass-Classof the gRPC service.methodName- the name of gRPC method.route-GrpcRoutes.BlockingResponseStreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor 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.BlockingResponseStreamingRouteto this factory.- Type Parameters:
Req- Type of request.Resp- Type of response.- Parameters:
path- for this route.executionStrategy-GrpcExecutionStrategyto use.route-GrpcRoutes.BlockingResponseStreamingRouteto add.requestClass-Classfor the request object.responseClass-Classfor the response object.serializationProvider-GrpcSerializationProviderfor the route.
-
-