This change adds two booleans to the ChannelBuilders to
allow transports to use get and put. These are currently defaulted to
on, but unset on the method descriptors. This change is 1/2 that will
allow the safe / idempotent bits to be set on generated proto code.
Part 2/2 will actually enable it.
The use case for this is for interceptors that implement caching logic.
They need to be able to access the safe/idempotent bits on the MD in
order to decide to how to handle the request, even if gRPC doesn't use
GET / PUT HTTP methods.
* cronet: update README for using published grpc-cronet with play service Cronet implementation.
* doc: Added cronet/README.md version update to RELEASING.md.
- Implementing priority failover
- Removed `localityWeight` field from `LocalityLbInfo` because this is always available and up to date in `edsResponsLocalityInfo`, otherwise need to create a new instance of `LocalityLbInfo` each time weight is updated.
- Introduced `PriorityManager` that manages all the priority failover logic.
The fileTree is supposed to be relative to the current project, which in
this case would be the child project, but apparently it isn't. Poked
around but couldn't find out why. In any case this fixes a regression
introduced in 4215b80b where checkstyle would no longer file any Java
files and thus it would not notice any failures.
* Defined a proto message that maps the bootstrap JSON file for convenient parsing purpose.
* Implemented a Bootstrapper class which reads a local bootstrap file.
* Added unit test for Bootstrapper.
* Let xDS load balancer bootstrap from a bootstrap file. Currently not use configurations from bootstrap in xDS communication as the xDS load balancer implementation is undergoing changes. We will integrate it later.
* Added newline at the end of files.
* Added json_name proto field option.
* Replaced all RuntimeException with IOException for bootstrap data errors.
* Changed to use JUnit exception rules in test.
* Use StandardCharSets.UTF_8
* Revert "Let xDS load balancer bootstrap from a bootstrap file. Currently not use configurations from bootstrap in xDS communication as the xDS load balancer implementation is undergoing changes. We will integrate it later."
This reverts commit 37200cdd3c.
* Use initialization-on-demand holder idiom for instantiating Bootstrapper instance.
* Fixed usage of JUnit exception rules.
* Changed lazily instantiated variable to camel case
* Removed unnecessary constructor.
- Get rid of `XdsLbState` and make config change handling into two layers: `LookasideLb` (handles balancer name) and `LookasideChannelLb` (handles child policy), under `XdsLoadBalanecer` (fallback manager layer)
- Move `XdsComms`/`AdsStream` to a layer under `LookasideChannelLb`. They don't keep the helper, but only `SyncCtx` and `ChannelLogger`
- For each layer, we pass in a `LoadBalancer.Factory` for the next/child layer. In test,
+ we mock/fake the factory, so we don't care about the implementation details of the child layer.
+ we capture the helper of `factory.newBalancer(factory)`, so we can mimic `updateBalancingState() `from the child layer.
Part 1 contains fallback management logic. There is no change in fallback management logic.
Examples and android projects were left unchanged. They can be changed
later.
No plugin versions were changed, to make this as non-functional of a
change as possible. Upgrading Gradle to 5.6 was necessary for
pluginManagement in settings.gradle.
This allows plumbing information to the subchannel via Attributes, like
an authority override. RR still does not support multiple EAGs that only
differ by attributes.