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>
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>
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>
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.
The problem with the flatten plugin is that it unconditionally
nukes the dependency management section, which we very much need
in our "dependencies" modules.
The key is to make the "dependencies" pom independent of the main
reactor (pattern copied form Spring Cloud). Then you can run
flatten in the main reactor build and not in the dependencies,
which then retain there useful properties and dependency
management.
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
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
This commit adds the additional-spring-configuration-metadata.json
file to the autoconfigure module so that we can add default values
for properties whose defaults can not be determined.
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.