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 excludes the older protobuf libs
`protobuf-java` and `proto-google-common-protos` from the
`grpc-protobuf` lib and then explicitly adds back in the
dependencies at the desired version in the root pom.xml
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
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.
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
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.
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.
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