This adds a starter module that includes the Spring gRPC server
starter and the required dependencies ((`spring-boot-starter-web`
and `jakarta-grpc-servlet`) to use the servlet container as a
gRPC server.
Signed-off-by: Chris Bono <chris.bono@gmail.com>
This adds a starter module that includes the Spring gRPC
core module and the grpc-stub dependency.
Also, makes the `grpc-stub` dependency optional in Spring
gRPC core module.
Signed-off-by: Chris Bono <chris.bono@gmail.com>
This renames the `spring.grpc.security.csrf.enabled` property
to `spring.grpc.server.security.csrf.enabled` to signal that
it is a server configuration property.
Signed-off-by: Chris Bono <chris.bono@gmail.com>
This adds the following entries to additional-spring-configuration-metadata.json:
- `spring.grpc.security.csrf.enabled`
- `spring.grpc.server.servlet.enabled`
They are not present in first class `@ConfigurationProperties` so need to be
manually added.
Signed-off-by: Chris Bono <chris.bono@gmail.com>
Updates the fix-getting-started.adoc section of the reference
guide to remove the requirement of the "web" and "graalvm"
dependencies as the former requires other information besides
dependencies to work properly and the latter is just complication
that is not needed for a simple quick start.
See #97
This commit moves the channel config ("NamedChannel") back to
autoconfigure module as the effort to move to core turns out to
be more trouble than it is worth at this time.
Fixes#92
This commit introduces the NamedChannelRegistry which allows
moving the NamedChannel model to the core package and decouples
it from the client properties.
This commit improves the GrpcChannelFactory createChannel API by
introducing `ChannelBuilderOptions` that can be specified during
channel creation.
Additionally, concrete Netty channel factory implementations have
been added as well as adding type to the GrpcChannelBuilderCustomizer
which helps match customizers to channel factories.
If the user wants a second port for gRPC that should be possible
(and was the only way with the old ecosystem projects). This change
adds a webflux sample and support for
spring.grpc.server.{servlet,reactive}.enabled to be explicitly
"false" to disable the embedded services.
N.B. embedded services are not yet supported in webflux so the flag
has no effect, except to disable gRPC completely if it is "true".
This commit adds a guard on the Servlet gRPC server auto-configuration
to ensure that the `io.grpc:grpc-servlet-jakarta` lib is on the classpath.
Resolves#83
Signed-off-by: Chris Bono <chris.bono@gmail.com>
This commit simplifies the client properties by setting the default values
directly on the properties and removes markdown from the property javadocs.
This improves end user experience by adding default values and descriptions
to the generated config props docs.
Signed-off-by: Chris Bono <chris.bono@gmail.com>
This commit renames the GrpcChannelConfigurer to GrpcChannelBuilderCustomizer
to more accurately represent its purpose and for consistency with the
server-side terminology.
Additionally, a new `What's new?` doc is added to list breaking changes between
versions.
See #52
Signed-off-by: Chris Bono <chris.bono@gmail.com>
This commit adds the implementation to the previously added skeleton
ActuatorHealthAdapter. On a configurable schedule, the adapter takes
a configured list of Actuator health indicators and gets their current
status and maps it into the gRPC HealthStatusManager.
See #56
Signed-off-by: Chris Bono <chris.bono@gmail.com>
This commit adds a ConditionalOnProperty on the Actuator health
adapter autoconfiguration to allow users to disable only that
part of the health system.
Also, unrelated, the generated configprops with their default values.
See #56
Signed-off-by: Chris Bono <chris.bono@gmail.com>
This commit autoconfigures the gRPC health service by providing
the following beans:
- gRPC HealthStatusManager
- gRPC HealthService
- Actuator health check adapter (skeleton impl)
See #56
Signed-off-by: Chris Bono <chris.bono@gmail.com>
This commit implements the `@GprcService(blendWithGlobalInterceptors)`
feature. This allows global and per-service server interceptors to be
combined into a single list and then finally sorted (i.e. blended).
Signed-off-by: Chris Bono <chris.bono@gmail.com>
This commit introduces the `@GrpcService` annotation which can be used to
associate one or more `ServerInterceptor` beans with a `BindableService`.
See #5
Signed-off-by: Chris Bono <chris.bono@gmail.com>