Commit Graph

267 Commits

Author SHA1 Message Date
Dave Syer
a3d7ba643d Split bean registration and creation for stubs
GrpcClientRegistry was responsible for both, which causes lifecycle
issues when users don't follow recommendations. This change
pushes the bean registration firmly down a level into an
ImportBeanDefinitionRegistrar. Also helps with AOT because the AOT
processor only runs the IBDR at build time.
2025-04-03 12:09:23 +01:00
Dave Syer
326c075b36 Ensure only one client is created by default 2025-04-03 11:33:45 +01:00
Dave Syer
97ba123fbf Add composite pattern to GrpcChannelBuilderCustomizer 2025-04-03 09:01:46 +01:00
Dave Syer
3f709fd9f4 Change method signature for exception handler 2025-04-02 17:26:36 +01:00
Schuyler Metcalf
6af7f41ebd Removes restriction on InProcessServerFactory to apply only to non web applications
Signed-off-by: Schuyler Metcalf <schuyler.metcalf@hey.com>
2025-04-02 14:57:52 +01:00
Dave Syer
1fb440df68 Disable proxy generation for a test 2025-03-31 13:51:05 +01:00
Dave Syer
4065a6f3a9 Update Spring dependencies 2025-03-28 13:26:16 +00:00
Dave Syer
83d9000770 Update Spring Boot to 3.4.4 2025-03-28 12:03:50 +00:00
Dave Syer
60dac75874 Don't use supplier for customizer 2025-03-28 11:37:53 +00:00
Dave Syer
055688a533 Ensure @Import works with 1 or many 2025-03-27 17:36:46 +00:00
Dave Syer
8b26b8f262 Rename annotation to mirror Spring HTTP interfaces 2025-03-26 08:30:01 +00:00
Dave Syer
55bd93958a Rename client annotations 2025-03-26 08:23:11 +00:00
Dave Syer
6bb10ab65e Add a test and check for direct onErrorMap 2025-03-26 08:19:41 +00:00
Dave Syer
5d1b0e78fc Add a test and check for direct onErrorMap 2025-03-26 08:18:38 +00:00
Dave Syer
e468136a64 Remove redundant address configuration 2025-03-25 17:43:49 +00:00
Dave Syer
582b59a7a6 Add registrar to autoconfig 2025-03-25 07:11:24 +00:00
Dave Syer
fce479bc36 Add a bean post processor for reactive stubs
Fixes gh-143
2025-03-25 06:57:12 +00:00
Dave Syer
e4fa0f83df Check if csrf protection is already disabled
If the user has explicitly disabled CSRF protection in a custom
SecurityFilterChain, we should be able to back off and not try
to disable it just for the gRPC endpoints (accidentally switching
it back on for the other endpoints).

Fixes gh-142
2025-03-24 10:09:43 +00:00
mackey0225
cfb14ba7e0 Fix typo in docs
Signed-off-by: mackey0225 <masaki.asano0225@gmail.com>
2025-03-24 08:31:38 +00:00
Eric
c0b8b630eb Make maven tree display more friendly
Signed-off-by: Eric <cs.liaow@gmail.com>
2025-03-24 08:30:56 +00:00
Dave Syer
6198fe04d8 Add reactive version of servlet request matchers 2025-03-18 14:56:06 +00:00
Dave Syer
3a3807ed0e No need for duplicate bean names 2025-03-13 12:43:01 +00:00
Dave Syer
fc2e90f3b9 Remove redundant @GrpcClients 2025-03-13 12:38:50 +00:00
Sergei Batsura
b004ba6559 Added defaultDeadline client property
Signed-off-by: Sergei Batsura <batsura.sa@gmail.com>
[resolves #136]
2025-03-13 12:36:20 +00:00
Dave Syer
ff1b8e3dfa Clarify section indents 2025-03-13 12:27:06 +00:00
Dave Syer
6b12a27d2e Harmonize grpc versions 2025-03-10 17:52:57 +00:00
Andrey Litvitski
ec9eb13004 Add AOT integration test
Signed-off-by: Andrey Litvitski <andrey1010102008@gmail.com>
2025-03-10 12:26:34 -05:00
Dave Syer
e71bdcf8a9 Add OAuth2 sample to Gradle build 2025-03-10 16:51:33 +00:00
Dave Syer
fe2509d1ac Revert to snapshots 2025-03-10 10:25:10 +00:00
Dave Syer
630e776158 Bump to 0.5.0 2025-03-10 09:09:29 +00:00
Dave Syer
b8ff6eae22 Fix versions 2025-03-10 08:58:52 +00:00
Chris Bono
454f0b832d Extract Boot managed deps. from spring-grpc-dependencies
This extracts the Spring Boot managed dependencies from
the spring-grpc-dependencies BOM module into a new
module (`spring-grpc-build-dependencies`) that includes
the dependencies from the BOM as well as the Spring
Boot managed dependencies.

Resolves #118

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2025-03-10 08:39:51 +00:00
Dave Syer
d8995bb59a Add support for @EnableGrpcClients
Automatic bean definition registration for stubs

Fixes #91
2025-03-07 08:56:30 +00:00
Dave Syer
f580197169 Fix bugs in security autoconfig conditions 2025-03-06 14:52:20 +00:00
Dave Syer
2578d99cd3 Harmonize plugin versions 2025-03-05 14:43:20 +00:00
Chris Bono
2464944f6e Fix docs.yml workflow (add 'package' command)
The recent move to do config props generation only at docs
generation time left the docs.yml broken as it requires the
config props generator class to be compiled prior to running.

This updates the './build-docs.sh' to include the package command
as well as update the docs.yml to use the same script.

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2025-03-04 08:23:49 +00:00
Chris Bono
ba5ab90807 Add Spring Boot 3.5.x support to README
Resolves #121

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2025-03-04 08:22:37 +00:00
Chris Bono
0720cb25cb Add Spring Boot compatability check workflow
Adds a GHA workflow to check Spring Boot compatability of the framework.

The workflow exercises the samples and dynamically sets the version of
each samples Spring Boot plugin.

We do the dynamic version setting using the power of Gradle init scripts
and the fact that each of the samples is exposed as a Gradle module.
Doing this has a positive side effect that our samples are kept up to date
for both Maven and Gradle.

Reworks the Gradle aspect of the samples as follows:

- removes settings.xml in each sample in favor of root samples/setting.xml
- removes Gradle wrapper from each sample in favor of root samples/gradlew
- cleans up build.gradle (they were missing dependencies to work)
- adds README-GRADLE.md at samples/

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2025-03-03 18:52:46 +00:00
Dave Syer
b423429b8f Revert to snapshot 2025-03-03 12:47:03 +00:00
Dave Syer
ae46cdffe5 Remove native-image.properties in samples 2025-03-03 10:50:36 +00:00
Dave Syer
24f7d20c2f Add some logging when services registered 2025-03-03 10:01:40 +00:00
Dave Syer
28a2c58f78 Bump to 0.4.0
There are some version management issues with 0.3.0 so we
need a release to catch up with changes in Boot.
2025-03-03 09:45:48 +00:00
Dave Syer
ebf9caa44d Add config property for http2 by default 2025-03-03 09:26:06 +00:00
Dave Syer
3047c27f9c Add (temporarily) some native image metadata
Still waiting for
https://github.com/oracle/graalvm-reachability-metadata/pull/593
2025-03-03 09:13:28 +00:00
Dave Syer
d32f13e6ed Match dependencies in gradle build 2025-03-03 08:51:03 +00:00
Dave Syer
244f87e8fe Fix some gradle builds 2025-02-25 18:05:41 +00:00
Dave Syer
babe00025d Remove some unnecessary code 2025-02-25 18:02:55 +00:00
Dave Syer
6853d2dad4 There may be more than one security configuration
In an app with servlets *and* a native gRPC server for instance,
the global AuthenticationManagerBuilder (the @Bean) should be
treated as a parent for the one used by GrpcSecurity. It's the
same in HttpSecurity. Slightly more complicated than necessary
when there is only native gRPC security, but at least it now
works, and makes it easier to introduce multiple GrpcSecurity
instances in future if necessary (like with HttpSecurity it
could be a prototype).
2025-02-24 16:23:43 +00:00
Dave Syer
dee423953f Add condition to guard security servlet config 2025-02-24 14:04:33 +00:00
Chris Bono
b04b6ca1ac Add ConditionalOnGrpcServerEnabled flag
This adds a coarse-grained conditional guard that will disable the
server autoconfiguration if `spring.grpc.server.enabled` is set to
false or `BindableService` class is not available on the classpath.

Signed-off-by: Chris Bono <chris.bono@gmail.com>
2025-02-24 12:42:06 +00:00