Package io.micronaut.protobuf.json
Class GrpcExposedMethodValidator
java.lang.Object
io.micronaut.protobuf.json.GrpcExposedMethodValidator
- All Implemented Interfaces:
io.micronaut.context.event.BeanInitializedEventListener<Object>
,EventListener
@Internal
@Singleton
public class GrpcExposedMethodValidator
extends Object
implements io.micronaut.context.event.BeanInitializedEventListener<Object>
Validates beans that implement gRPC services and have methods annotated with
The purpose of this class is to identify and validate any misconfigured or improperly annotated gRPC service classes during the initialization phase of the application's lifecycle. This includes: - Checking if any methods in the bean are annotated with
If a violation is found during validation, an
This class is triggered automatically as a listener for bean initialization events, utilizing the Micronaut
Note: - This validator explicitly processes beans flagged with the
Responsibilities: - Enforces that methods annotated with
Dependency Injection: This class is a Singleton and is managed by Micronaut's dependency injection.
@GrpcRestJsonExposed
.
This validator ensures the annotated methods belong to classes that implement BindableService
, which is
a requirement for defining a valid gRPC service.
The purpose of this class is to identify and validate any misconfigured or improperly annotated gRPC service classes during the initialization phase of the application's lifecycle. This includes: - Checking if any methods in the bean are annotated with
@GrpcRestJsonExposed
.
- Validating that the containing class of those methods implements the BindableService
interface.
If a violation is found during validation, an
IllegalStateException
is thrown to prevent misconfigured
services from running in the application.
This class is triggered automatically as a listener for bean initialization events, utilizing the Micronaut
BeanInitializedEventListener
.
Note: - This validator explicitly processes beans flagged with the
@GrpcRestJsonExposed
annotation at the
method level. Only those beans are inspected for compliance.
- Validation happens prior to PostConstruct
or other lifecycle hooks being executed.
Responsibilities: - Enforces that methods annotated with
@GrpcRestJsonExposed
are correctly defined within a gRPC
BindableService
.
- Logs successful validation or throws an exception if validation fails.
Dependency Injection: This class is a Singleton and is managed by Micronaut's dependency injection.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiononInitialized
(io.micronaut.context.event.BeanInitializingEvent<Object> event) Fired when a bean is instantiated but thePostConstruct
initialization hooks have not yet been called and in this case of beanProvider
instances theProvider.get()
method has not yet been invoked.
-
Constructor Details
-
GrpcExposedMethodValidator
public GrpcExposedMethodValidator()
-
-
Method Details
-
onInitialized
Fired when a bean is instantiated but the
PostConstruct
initialization hooks have not yet been called and in this case of beanProvider
instances theProvider.get()
method has not yet been invoked.- Specified by:
onInitialized
in interfaceio.micronaut.context.event.BeanInitializedEventListener<Object>
- Parameters:
event
- The bean initializing event- Returns:
- The bean or a replacement bean of the same type
-