Commit Graph

125 Commits

Author SHA1 Message Date
Chris Bono
62499c8be2 Rename client configurer to customizer
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>
2024-12-01 17:57:41 +00:00
Chris Bono
17b8e9204c Move bean lookup utils into common package
This commit moves the `ApplicationContextBeanLookupUtils` into the
'internal' package and opens up its method to public visibility so
that it can be shared amongst framework components.

See #52

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-12-01 17:57:41 +00:00
Dave Syer
7f4cac0381 Back to snapshots 2024-11-28 15:37:42 +00:00
Dave Syer
b273d8e83a Bump to 0.2.0 2024-11-28 14:30:09 +00:00
Dave Syer
02ef2e25b3 Try to make test less likely to fail 2024-11-28 13:39:27 +00:00
Chris Bono
e0199dd130 Add client side health feature
This commit adds health auto-configuration to the client.

See #66

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-28 10:53:03 +00:00
Chris Bono
9374bdf93f Add docs for health feature
This commit adds docs for the server-side portion of the health feature.

See #56

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-26 17:28:41 +00:00
Chris Bono
6e154d53eb Add actuator health check adapter
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>
2024-11-25 07:47:57 +00:00
Chris Bono
b7b43cb6a3 Add property guard on Actuator health adapter
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>
2024-11-25 07:47:57 +00:00
Chris Bono
592d29d3b3 Move health autoconfig into health package
This commit moves the health autoconfiguration into its own
package as well as moves the ActuatorHealthAdapter into its
own class.

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-25 07:47:57 +00:00
Dave Syer
e33863992b Add some docs 2024-11-21 16:12:23 +00:00
Dave Syer
3feca42834 Move exception handling into autoconfiguration 2024-11-21 16:03:52 +00:00
Dave Syer
c239cfe970 Add sample and integration test 2024-11-21 15:24:44 +00:00
Chris Bono
f97487c768 Replace junit assertThrows w/ AssertJ assertThatExceptionOfType
Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-21 08:19:22 +00:00
Chris Bono
ab55182304 Add autoconfiguration for server-side health
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>
2024-11-21 08:19:22 +00:00
Dave Syer
2df6c37bb5 Only one inprocess server, so it can have a fixed name 2024-11-19 13:15:32 +00:00
Dave Syer
9e6c27eda6 Tidy up conditions for servlet and inprocess 2024-11-19 13:11:37 +00:00
Dave Syer
6b4f649712 Make inprocess server the default in tests 2024-11-19 12:53:25 +00:00
Dave Syer
796bcf560f Add inprocess factories and a test 2024-11-19 09:45:13 +00:00
Dave Syer
0dc3249251 Allow GrpcServerFactory to return null 2024-11-19 08:41:13 +00:00
Chris Bono
8eb623e82d Add server interceptor blending
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>
2024-11-18 06:55:49 +00:00
Chris Bono
e3d58cf988 Move some components into core module
This commit moves several components into the core module
from the autoconfiguration module. Anything that exists
in the AC module will ultimately end up in Spring Boot
project assuming we move into Spring Boot in the future.

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-15 07:49:54 +00:00
Chris Bono
d629f9f547 Add autoconfig processor to improve startup time
This commit adds the Spring Boot autoconfiguration processor to generate
the `META-INF/spring-autoconfigure-metadata.properties`,which will improve
startup time.

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-15 07:49:16 +00:00
Chris Bono
3178518433 Use specific bean types in autoconfiguration
This commit uses the most specific bean type in the autoconfiguration to
improve AOT compatibility.

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-15 07:48:53 +00:00
Chris Bono
c930bc799f Add auto-configuration test for configurer
Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-14 15:04:19 +00:00
Chris Bono
cd28b69756 Add support for service specific server interceptors
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>
2024-11-14 15:04:19 +00:00
Chris Bono
3904948d3e Add description to additional metadata fields
This commit adds a description for the observations
and reflection enabled properties.

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-14 14:57:41 +00:00
Toshiaki Maki
7e234a9f3e Add spring.grpc.server.observation.enabled to additional metadata
Signed-off-by: Toshiaki Maki <makingx@gmail.com>
2024-11-11 08:38:55 -06:00
Dave Syer
178bcf4774 Add brief docs on server o11y 2024-11-11 11:40:55 +00:00
Dave Syer
b16ec9cf24 Ensure global interceptors are added to Servlet
Builds on #42 and #1.
2024-11-11 11:34:31 +00:00
Dave Syer
c6cbfe1f17 Module name 2024-11-10 21:50:05 +00:00
Andrey Litvitski
50e2db6d8a Update JavaDocs for grpc-client classes 2024-11-10 13:45:28 +00:00
CyberZujo
d61af1a1a2 Add autoconfig for reflection service and friends #26
Signed-off-by: CyberZujo <hara_zujo@hotmail.com>
2024-11-09 11:36:52 +00:00
Dave Syer
ee994e0f4d Use new annotation for existing interceptor 2024-11-07 12:16:10 +00:00
Dave Syer
d630a41988 Tweak server docs on servlet customizations 2024-11-07 08:49:15 +00:00
Chris Bono
4daf41392a Add GlobalServerInterceptor to service discovery
This commit builds upon the previously added service discoverer
by adding support for finding all server interceptor beans that
are marked w/ the newly added `@GlobalServerInterceptor`
annotation.

Resolves #4

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-07 08:10:05 +00:00
Chris Bono
daf8e046c3 Adds checkstyles to project
This commit configures in the Puppycrawl checkstyle with the Spring JavaFormat.

To avoid the intrusive nature of such a change, the spring-grpc-core module is
the only one to have the checkstyles applied. I will handle the other modules as
time permits.

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-07 08:07:48 +00:00
Dave Syer
33483bb500 Revert ServerServiceDefinition bean provider
In retrospect I think users should not have to create
ServerServiceDefinitions. It doesn't help anybody and
it seems like quite a deep internal detail.
2024-11-06 17:14:59 +00:00
Dave Syer
80e703448c FIx link in docs 2024-11-06 15:29:27 +00:00
Dave Syer
f0ec4b1bac Add support for registering service definition bean 2024-11-06 11:51:29 +00:00
Chris Bono
7fed50a420 Polish "Auto-configure Micrometer Observations"
- Add name attribute to ConditionalOnProperty
- Add autconfig to imports file
- Add a few tests to cover the other autoconfig conditonals

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-06 01:47:11 -06:00
Sunny
61b1323440 Auto-configure Micrometer Observations
This commit auto-configures in the Micrometer Observations
API and its Observation server interceptor.

Resolves #1

Signed-off-by: Sunny <hmtang@gmail.com>
2024-11-06 01:47:11 -06:00
Dave Syer
c56784fd7b Remove netty-specific credentials factory in client
See also #10
2024-11-05 15:39:30 +00:00
Dave Syer
158e779f61 Unused imports 2024-11-05 15:28:03 +00:00
Dave Syer
8491d2641b Remove netty specific channel factories 2024-11-05 13:51:32 +00:00
Dave Syer
05e6240672 Support for mTLS in client
Fixes #10
2024-11-05 12:28:22 +00:00
Dave Syer
148e1d1e23 Add client auth enum to ssl configuration 2024-11-05 07:34:42 +00:00
Dave Syer
d24e80aedd Move codec server config to a central location
There was no need for the duplication of netty and shaded netty
when the builder is generic anyway.
2024-11-05 07:33:18 +00:00
Chris Bono
9cf0227354 Add GrpcServiceDiscoverer to prepare for interceptors
This commit re-introduces the service discoverer concept from the
gRPC ecosystem. We previously removed it but realized that the
abstraction is helpful to provide fully configured service
definitions with features like server interceptors. The next
commit will take advantage of this commit to add interceptors.

See #4

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2024-11-04 08:45:23 +00:00
Chris Bono
1397632f03 Polish "Allow GrpcServlet to be configured"
* Re-order imports (we need to add the checkstyle rules to keep these consistent)
* Remove implied comment in auto-configuration
2024-10-28 13:34:50 -05:00