Commit Graph

51 Commits

Author SHA1 Message Date
Dave Syer
3cb6ce3912 Move code around so factory gets address not port 2024-10-19 07:52:50 +01:00
Dave Syer
85de440e50 Use dependency management plugin to resolve versions 2024-10-17 11:46:31 +01:00
Dave Syer
e9298a3f06 Add Gradle configuration for sample 2024-10-16 13:54:11 +01:00
Dave Syer
f0a84cec5d Sack the flatten plugin, at least till it works 2024-10-16 13:02:45 +01:00
Dave Syer
9b89bf2b21 Add basic getting started guide to README 2024-10-16 11:10:12 +01:00
Dave Syer
a969d09fc0 Generated configprops 2024-10-14 10:50:39 +01:00
Dave Syer
d2ec311d07 Resolve placeholders in channel address 2024-10-14 10:49:43 +01:00
Dave Syer
b92fd43664 Add support for client connection negotiation
The serverside SSL was working, but the clients were not able to
connect because they all had insecure call credentials. This change
adds a NegotiationType enum for configuring the client, and an
integration test that uses it (implicitly).

Also move some logic around. The netty-specific channel factories
weren't doing any work. This makes them do something, so more
classpath-dependent logic can go into them.
2024-10-14 10:46:53 +01:00
Dave Syer
fab5c73be1 Add support for server-side SSL
There's no integration test per se, but the GrpcServerApplicationTests
main method runs the server securely with an anonymous certificate, so
you can test it manually with grpcurl -insecure.

See #10
2024-10-11 12:12:38 +01:00
Dave Syer
8263972b63 Move vanilla integration test back to its own source file 2024-10-08 17:06:26 +01:00
Dave Syer
b30dc45e5a Add README to sample and make sure it works 2024-10-08 14:34:34 +01:00
Chris Bono
beba50bb4a Add config props document generation 2024-10-08 12:32:37 +01:00
Chris Bono
9642e00f7a Generate metadata for config props
Adds the `spring-boot-configuration-processor` to enable automatic metadata
generation so our config props play well in IDEs.

Also updates the default values for duration properties to use
`Duration.of<Unit>(long)` instead of `Duration.of(long, DurationUnit)` as
Spring Boot config processor can not determine a default for the config
metadata in the latter format.
2024-10-07 18:36:37 +01:00
Chris Bono
9bcc3390cc Add keep-alive and inbound limits server properties
Resolves #6
2024-10-07 18:36:37 +01:00
Chris Bono
1529658106 Consolidate samples into single integration test
This commit moves the current sample variants into a single
integration test (GrpcServerApplicationTests) leveraging the
Junit5 `@Nested` feature.
2024-10-07 09:04:51 +01:00
Chris Bono
946299baf8 Rename BaseServerFactoryPropertyMapper to DefaultServerFactoryPropertyMapper 2024-10-04 11:17:21 -05:00
Chris Bono
42cdd2feda Rename BaseGrpcServerFactory to DefaultGrpcServerFactory 2024-10-04 11:16:48 -05:00
Chris Bono
9f59120988 Delete unused server factory/helpers 2024-10-04 11:02:42 -05:00
Chris Bono
e0159ed6fb Add property / mapper tests 2024-10-02 13:54:03 +01:00
Chris Bono
11c658bfba Use explicit server factory impls
This commit breaks the DefaultGrpcServerFactory into concrete
implementations which helps with type-safety of different builders.

Also, an aggregate customizers helper is added to allow the
server builder customizers to be type specific and properly
applied as such.

Tests were also enhanced to cover newly added components.
2024-10-02 13:54:03 +01:00
Dave Syer
a430720dbf Fix link in README 2024-10-01 08:51:09 +01:00
Dave Syer
8ce86686c4 Another docs change 2024-10-01 08:50:22 +01:00
Dave Syer
acfa3f641a Also replace in poms and docs metadata 2024-10-01 08:49:16 +01:00
Dave Syer
51bf868164 Also update docs with official name 2024-10-01 08:47:18 +01:00
fengli79
ceb9d0f2d8 Update the README.md with official name of gRPC. 2024-10-01 08:26:26 +01:00
Chris Bono
e7fa5709e2 Rename configurer to customizer
This commit renames GrpcServerConfigurer to ServerBuilderCustomizer.
2024-09-26 08:36:39 +01:00
Chris Bono
5f4fa5204d Add back in @ConditionalOnBean to auto-config
Also adds auto-configuration tests for server.
2024-09-24 16:12:12 +01:00
Chris Bono
5bc8a8c3a2 Revert ApplicationEventPublisherAware 2024-09-24 16:12:12 +01:00
Chris Bono
c04800aca4 Remove unused GrpcServiceDiscoverer 2024-09-24 16:12:12 +01:00
Chris Bono
bb60c8fcaa Simplify server auto-configuration
This simplifies the server-side auto-configuration as follows:

- delete svc discover abstraction (use ObjectProvider for now)
- use single AC class
2024-09-24 16:12:12 +01:00
Chris Bono
32286cfbed Add format plugin to samples
This adds the spring-javaformat plugin to the samples
module. The motivation is as follows:

- Keep the samples in the Spring recommended format
- Allow running `./mvnw spring-javaformat:apply` at project root
2024-09-23 07:45:45 +01:00
Chris Bono
422289e800 [CI] Add CI for PRs 2024-09-23 07:45:45 +01:00
Dave Syer
0535606a86 Fix link 2024-09-20 08:25:58 +01:00
Dave Syer
f38a16fee9 Add support for external client (channel) config
Fixes #11
2024-09-16 13:25:29 +01:00
Dave Syer
9c20aa0ea0 Distinguish between available and epollable 2024-09-16 11:46:49 +01:00
Dave Syer
1bdcee5930 Add path parameter to GrpcChannelConfigurer 2024-09-12 12:28:44 +01:00
Dave Syer
e9e2466714 Rename action 2024-09-12 09:18:32 +01:00
Dave Syer
5e37f189d1 Make server autoconfig depend on existence of services 2024-09-11 08:19:05 +01:00
Dave Syer
cf0e396fcd Support for non-default address spring.grpc.server 2024-09-10 14:01:01 +01:00
Dave Syer
f47a710c2d Add docs workflow 2024-09-10 08:47:09 +01:00
Dave Syer
777180db30 Add support for unix domain sockets 2024-09-09 15:41:24 +01:00
Dave Syer
2249f6e2b3 Support for @LocalGrpcPort in @Lazy beans 2024-09-09 13:26:05 +01:00
Dave Syer
e418bef34e Add channel configurers (global beans) 2024-09-09 12:55:05 +01:00
Dave Syer
4d948d180f Store channels as map so they can be cached 2024-09-09 11:06:14 +01:00
Dave Syer
a406f7dc2f Add basic GrpcChannelFactory implementation 2024-09-09 10:52:36 +01:00
Dave Syer
6323cf9d86 Simplify through use of grpc builder APIs 2024-09-09 09:10:46 +01:00
Dave Syer
4beb624978 Remove unimplemented config properties 2024-09-06 11:57:35 +01:00
Dave Syer
f4d7625de8 Rename package 2024-09-06 11:56:07 +01:00
Dave Syer
aeef454cb0 Add basic autoconfiguration for server and sample 2024-09-06 09:29:45 +01:00
Dave Syer
c3a8eed64f Add server sample 2024-09-05 13:12:34 +01:00