Commit Graph

64 Commits

Author SHA1 Message Date
Dave Syer
4efd23aa4e Revert to snapshots and add whats new 2025-01-15 09:07:25 +00:00
Dave Syer
406532e44e Bump to 0.3.0 for release 2025-01-15 08:46:48 +00:00
Dave Syer
1559843b43 Exception handler interceptor is ordered correctly
The exception handler interceptor has to be called first so that
it can handle exceptions thrown by other interceptors. Tests up
to now didn't assert that (they focused on exceptions thrown
in services).
2025-01-11 08:45:09 +00:00
Dave Syer
6cc3a2ab89 Use GrpcServiceDiscoverer in GrpcServletRequestMatcher 2025-01-07 09:14:59 +00:00
Dave Syer
f1ed1ce93a Add BearerTokenAuthenticationInterceptor for client 2025-01-07 09:14:59 +00:00
Dave Syer
f3b0ac11e6 Add BasicAuthenticationInterceptor for client 2025-01-07 09:14:59 +00:00
Dave Syer
f1a8299887 Add support for request matchers 2025-01-07 09:14:59 +00:00
Dave Syer
abcf83e8cc Make Spring Security work in a Tomcat app 2025-01-07 09:14:59 +00:00
Dave Syer
bca2eff2b0 Upgrade grpc-java to 1.69.0 2025-01-06 16:30:51 +00:00
Dave Syer
e0a744ba25 Add stack walker to discover main class 2025-01-06 15:15:23 +00:00
Andrey Litvitski
ddef9007af Disable in-process transport by default and add @AutoConfigureInProcessTransport annotation 2025-01-06 14:07:04 +00:00
Dave Syer
f8c6070eaa Upgrade Spring Boot to latest 2025-01-06 11:23:52 +00:00
Chris Bono
81990f0fd6 Use channel factory API w/o customizer in tests 2025-01-03 22:04:28 +00:00
Chris Bono
b08e11ad39 Improve channel factory API
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.
2025-01-03 22:04:28 +00:00
Dave Syer
b3271be918 Add explicit support for running on separate port
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".
2024-12-23 15:02:45 +00:00
Dave Syer
133bfec5e5 Upgrade Spring Boot in sample 2024-12-23 11:30:09 +00:00
Dave Syer
e979a13ecf Add config for new protoc versions 2024-12-20 14:41:03 +00:00
Dave Syer
e63ed35edf Upgrade to Spring Boot 3.4.0 2024-12-16 11:20:53 +00:00
Dave Syer
560ffdb381 Run test app over TCP not in-process 2024-12-16 11:18:39 +00:00
Dave Syer
413ab2e8a0 Remove unused annotation 2024-12-06 08:39:21 +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
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
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
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
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
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
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
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
8bab3cd081 Revert to snapshots 2024-10-25 12:35:52 +01:00
Dave Syer
2d2e0d8b8e Ready for 0.1.0 2024-10-25 12:20:47 +01:00
Dave Syer
42b54708aa Add sample with Shaded Netty 2024-10-25 12:10:57 +01:00
Dave Syer
c358f6ef4d Move GrpcServlet to autoconfiguration
Signed-off-by: Dave Syer <dsyer@vmware.com>
2024-10-23 11:26:34 +01:00
Dave Syer
1997593755 Add tomcat sample (no autoconfig)
Signed-off-by: Dave Syer <dsyer@vmware.com>
2024-10-23 11:26:16 +01:00
varunu28
434e26dcec Rename bom to dependencies 2024-10-21 09:41:42 +01:00
Chris Bono
213d1f9bd8 Add spring-grpc-spring-boot-starter module
This commit does the following:

* Adds a `spring-grpc-spring-boot-starter` module

* Adjusts the scope of the dependencies in the`spring-grpc-spring-boot-autoconfigure`
  module to optional
2024-10-21 08:30:54 +01:00
Chris Bono
f31d6ad6f7 Remove dependency on javax.annotation
This commit removes the directy dependency that was required
by the protoc compiler for our samples. The Maven and Gradle
now support an option to use an internal annotation which then
allows us to remove the deprecated javax.annotation dependency.

Background here: https://github.com/grpc/grpc-java/pull/10927
2024-10-20 21:09:13 +01:00
Chris Bono
c856f71159 Clean up dependencies and versions
This commit does the following:

- Update various dependencies to latest patch versions
- Remove unused dependencies
- Remove unused version properties
- Remove Spring Boot references in all modules except autoconfigure
  and samples
2024-10-20 21:09:13 +01:00
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
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