Class GrpcServiceRegistry
java.lang.Object
io.micronaut.protobuf.json.registry.GrpcServiceRegistry
A class responsible for maintaining a registry of gRPC service methods, enabling them
to be exposed and invoked via JSON over REST. The registry manages mappings between
service names, method names, and their corresponding
The
Annotations: -
Thread Safety: - This class uses a thread-safe
ExecutableMethod instances.
The
GrpcServiceRegistry is primarily used to support the integration of gRPC
methods with REST-based clients by providing a centralized point for method registration
and lookup.
Annotations: -
@Singleton: Indicates that this class is a singleton within the application context.
- @Experimental: Marks the class as experimental functionality, which is subject to
change in future releases.
Thread Safety: - This class uses a thread-safe
ConcurrentHashMap to store service and method mappings,
ensuring safe registration and retrieval in concurrent environments.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionOptional<io.micronaut.inject.ExecutableMethod<?,?>> getExecutableMethod(String serviceName, String methodName) Retrieves anExecutableMethodinstance based on the specified service name and method name.voidregister(Class<?> serviceBeanType, String methodName, io.micronaut.inject.ExecutableMethod<?, ?> method) Registers a gRPC service method with the internal registry, allowing it to be exposed for invocation via JSON over REST.
-
Constructor Details
-
GrpcServiceRegistry
public GrpcServiceRegistry()
-
-
Method Details
-
register
public void register(Class<?> serviceBeanType, String methodName, io.micronaut.inject.ExecutableMethod<?, ?> method) Registers a gRPC service method with the internal registry, allowing it to be exposed for invocation via JSON over REST. This method maintains a mapping between the service name, method name, and its correspondingExecutableMethod.- Parameters:
serviceBeanType- The class type of the gRPC service bean being registered. Must not be null.methodName- The name of the method in the gRPC service being registered. Must not be null or empty.method- TheExecutableMethodrepresenting the method's metadata and logic. Must not be null.
-
getExecutableMethod
public Optional<io.micronaut.inject.ExecutableMethod<?,?>> getExecutableMethod(String serviceName, String methodName) Retrieves anExecutableMethodinstance based on the specified service name and method name. This method is used to locate a registered gRPC method within the given service context.- Parameters:
serviceName- The name of the gRPC service containing the method. Must not be null or empty.methodName- The name of the method within the service to retrieve. Must not be null or empty.- Returns:
- An
Optionalcontaining theExecutableMethodif found, or an emptyOptionalif no matching service or method is registered.
-