This commit moves the channel config ("NamedChannel") back to
autoconfigure module as the effort to move to core turns out to
be more trouble than it is worth at this time.
Fixes#92
This commit provides graceful shutdown of all channels
created by the channel factory.
Resolves#12
Co-authored-by: Andrey Litvitski <andrey1010102008@gmail.com>
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).
This commit introduces the NamedChannelRegistry which allows
moving the NamedChannel model to the core package and decouples
it from the client properties.
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.
This commit renames the GrpcChannelConfigurer to GrpcChannelBuilderCustomizer
to more accurately represent its purpose and for consistency with the
server-side terminology.
Additionally, a new `What's new?` doc is added to list breaking changes between
versions.
See #52
Signed-off-by: Chris Bono <chris.bono@gmail.com>
This commit moves the `ApplicationContextBeanLookupUtils` into the
'internal' package and opens up its method to public visibility so
that it can be shared amongst framework components.
See #52
Signed-off-by: Chris Bono <chris.bono@gmail.com>
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 moves several components into the core module
from the autoconfiguration module. Anything that exists
in the AC module will ultimately end up in Spring Boot
project assuming we move into Spring Boot in the future.
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>
This commit re-introduces the service discoverer concept from the
gRPC ecosystem. We previously removed it but realized that the
abstraction is helpful to provide fully configured service
definitions with features like server interceptors. The next
commit will take advantage of this commit to add interceptors.
See #4
Signed-off-by: Chris Bono <chris.bono@gmail.com>
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
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.
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.