Commit Graph

97 Commits

Author SHA1 Message Date
Eric Gribkoff de36e42458
Update README etc to reference 1.31.0 (#7267) 2020-07-30 08:50:21 -07:00
Chengyuan Zhang f444b7bcc0
android, cronet, android-interop-testing, example/drop support for android SDK versions older than 16 (#7253) 2020-07-28 12:40:55 -07:00
Sanjay Pujare 158e98f982 Update README etc to reference 1.30.2 2020-06-23 16:03:09 -07:00
Chengyuan Zhang 3b81701c77
Update README etc to reference 1.30.1 (#7154) 2020-06-23 15:24:06 -07:00
Eric Anderson 295d927d8b core: Add migrating deframer
This provides a substantial ~3x performance increase to Netty async
streaming with small messages. It also increases OkHttp performance for
the same benchmark 40% and decreases unary latency by 3µs for Netty and
10µs for OkHttp.

We avoid calling listener after closure because the Executor used for
RPC callbacks may no longer be available. This issue was already
present in the ApplicationThreadDeframer, but full-stream compression is
not really deployed so was unnoticed.

DirectExecutor saw a 5-6µs latency increase via MigratingDeframer.
DirectExecutor usages should see no benefit from MigratingDeframer, so
disable it in that case.
2020-06-18 15:48:29 -05:00
Chengyuan Zhang a3a7a5e399 Update README etc to reference 1.30.0 2020-06-08 22:40:57 +00:00
ZHANG Dapeng 0044f8ce56
all: migrate gradle build to java-library plugin
- Use gradle configuration `api` for dependencies that are part of grpc public api signatures.
- Replace deprecated gradle configurations `compile`, `testCompile`, `runtime` and `testRuntime`.
- With minimal change in dependencies: If we need dep X and Y to compile our code, and if X transitively depends on Y, then our build would still pass even if we only include X as `compile`/`implementation` dependency for our project. Ideally we should include both X and Y explicitly as `implementation` dependency for our project, but in this PR we don't add the missing Y if it is previously missing.
2020-05-04 16:44:30 -07:00
ZHANG Dapeng 4947774475
Update README etc to reference 1.29.0 2020-04-22 09:45:09 -07:00
Chengyuan Zhang a1815417de Update README etc to reference 1.28.1 2020-04-03 16:11:41 -07:00
Jihun Cho 111e348def
Update README etc to reference 1.28.0 (#6815) 2020-03-10 16:10:04 -07:00
Jihun Cho df1b678698
Update readme to v1.27.2 (#6758) 2020-02-25 18:32:32 -08:00
Chengyuan Zhang 19de229b7f
Update readme to specify 1.27.1 (#6730) 2020-02-19 14:36:47 -08:00
Eric Anderson 45bb403f8a Update README etc to reference 1.27.0 2020-02-11 10:06:58 -08:00
Eric Anderson 8cf0196548
Add Cronet to main build
Building now requires an Android SDK unless you specify
-PskipAndroid=true
2020-01-09 15:20:41 -08:00
Tomo Suzuki 75f6fd8f10 Upgrade error_prone_annotations to 2.3.4 2020-01-03 14:50:34 -08:00
Graeme Morgan d3c77f2d87 all: Add suppressions for GuardedBy violations
This supports releasing a new version of GuardedBy which finds more mistakes than it used to.

Filed #6578 to try to clean up the suppressions.
2019-12-30 10:17:05 -08:00
Eric Gribkoff 91853036e6
Update README etc to reference 1.26.0 (#6548) 2019-12-18 13:40:28 -08:00
Eric Gribkoff bfa085a1cf
Start 1.27.0 development cycle (#6480) 2019-12-03 17:27:55 -08:00
Chengyuan Zhang d4e8962277
cronet: disable code shrinking for library build (#6448) 2019-11-20 12:12:53 -08:00
ZHANG Dapeng 2d454d478c
Revert "Revert "all: remove deprecated usePlaintext(boolean)""
This reverts commit 316a739e67.
2019-11-18 16:53:52 -08:00
Kun Zhang 7218bbadb3
Update README etc to reference 1.25.0 2019-11-06 13:47:08 -08:00
Elliotte Rusty Harold 1ac1dd04b9 Update readme to specify 1.24.1 (#6344) 2019-11-05 13:58:55 -08:00
Tomo Suzuki 3134df176a all: upgrade to Mockito 2.28.2 (#6355) 2019-10-30 11:07:50 -07:00
Kun Zhang 47d798bbec
Start 1.26.0 development cycle (#6329) 2019-10-23 15:27:22 -07:00
ZHANG Dapeng 316a739e67
Revert "all: remove deprecated usePlaintext(boolean)"
This reverts commit 296857b4e7.
2019-10-10 15:56:47 -07:00
ZHANG Dapeng 296857b4e7
all: remove deprecated usePlaintext(boolean) 2019-10-08 09:27:39 -07:00
Chengyuan Zhang 68eba768c9
cronet: do not include internal accessors in Javadoc (#6205) 2019-09-26 15:27:47 -07:00
Carl Mastrangelo ab2aff48dc netty,okhttp,cronet: add option to use get/put when methods are safe/idempotent
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.
2019-09-25 14:57:17 -07:00
Chengyuan Zhang e281c75b2a
cronet: update README for using published grpc-cronet with play service Cronet implementation (#6178)
* cronet: update README for using published grpc-cronet with play service Cronet implementation.

* doc: Added cronet/README.md version update to RELEASING.md.
2019-09-24 13:24:59 -07:00
Chengyuan Zhang fa8f89a1a6
Start 1.25.0 development cycle (#6141) 2019-09-10 17:41:37 -07:00
Chengyuan Zhang 2671a3de5e
cronet: add grpc-cronet artifact publishing configurations (#6130)
* Added publish configurations in build file.

* Changed cronet dependency to cronet-api for implementation, only use full cronet implementation provider for testing.

* Set minSdkVersion to 16 as cronet dependency requires that.

* Added errorprone plugin.
2019-09-09 09:46:36 -07:00
Chengyuan Zhang a234ada5a9
cronet: use reflection to load and invoke experimental APIs in ExperimentalBidirectionalStream.Builder (#6111)
* Use reflection to load and invoke setTrafficStats* and addRequestAnnotation methods for ExperimentalBidirectionalStream.Builder.

* Load reflection method lazily and cache for later usages.
2019-09-06 10:51:09 -07:00
Chengyuan Zhang 4f516d545b
Delete CronetCallOptions API with replacement of internal accessors for restricted usages only. (#6102) 2019-08-28 13:05:48 -07:00
Chengyuan Zhang be226aa99c
cronet: add getter for retrieving grpc cronet annotations in calloptions. (#6086) 2019-08-21 09:55:48 -07:00
Chengyuan Zhang e68e4004e4
cronet: move call options APIs into an internal accessor class (#6073)
* cronet: move call options APIs into an internal accessor class

* Removed deprecated call option key.
2019-08-16 01:05:32 -07:00
Chengyuan Zhang d2307139c8
cronet: do not expose setTrafficStats* as public APIs (#6055) 2019-08-12 14:42:18 -07:00
ZHANG Dapeng e14f8de4ab
Start 1.24.0 development cycle 2019-07-31 11:03:13 -07:00
Chengyuan Zhang b477cc2a47
cronet: add accessor class for CronetChannelBuilder to avoid exposing setTrafficStats* API directly. (#5983) 2019-07-15 16:46:41 -07:00
Jihun Cho e57d4c5a8e
Start 1.23.0 development cycle (#5899) 2019-06-18 15:54:16 -07:00
Eric Anderson 26bd76fa76
Upgrade to Gradle 5 2019-06-07 08:40:53 -07:00
Tim van der Lippe ad0893737e Migrate org.mockito.Matchers#any* to org.mockito.ArgumentMatchers
The former is deprecated and replaced by the latter in Mockito 2.
However, there is a functional difference: ArgumentMatchers will reject
`null` and check the type if the matcher specified a type (e.g.
`any(Class)` or `anyInt()`). `any()` will remain to accept anything.
2019-05-29 16:53:01 -07:00
Eric Anderson 3aa3218fb2 Start 1.22.0 development cycle 2019-05-09 13:53:12 -07:00
Akim239 a67fa8a87b Improved formatting for advantages list.
Some markdown parsers require an empty line before lists to parse them as such.
2019-04-04 15:11:41 -07:00
Kun Zhang 026e4c53bd
Start 1.21.0 development cycle (#5515) 2019-03-28 13:27:45 -07:00
Tim van der Lippe d35fbd7eee all: Update to Mockito 2
This is the public port of cl/238445847

Fixes #5319
2019-03-19 14:17:52 -07:00
Carl Mastrangelo 801cc5c189
core,netty,okhttp: propagate the subchannel logger to the transport 2019-03-04 15:16:53 -08:00
Kun Zhang 59a336c3ae
core: add internal transport attribute ATTR_CLIENT_EAG_ATTRS (#5420)
This is needed for GRPCLB pick_first support, which needs to attach
tokens to headers, and the tokens are per server. In pick_first, all
addresses are in a single Subchannel, thus the LoadBalancer needs to
know which backend is used for a new stream.
2019-03-04 12:38:26 -08:00
Kun Zhang 83b92cfc9f
core: pass transport attributes to ClientStreamTracer.Factory.newClientStreamTracer() (#5380)
This will be a new override.  The old override is now deprecated.

In order to pass new information without adding new overrides, I shoved most information
into an object called StreamInfo.  The Metadata is left out to draw attention because
it's mutable.

Motivation: this is needed for correctly supporting pick_first in GRPCLB.  GRPCLB needs to
add a token to the headers, and the token varies among servers.  With round_robin, GRPCLB
create a Subchannel for each server, thus can attach the token when the Subchannel is picked.
To implement pick_first, all server addresses will be put in a single Subchannel, we will
need to add the header in newClientStreamTracer(), by looking up the server address from
the transport attributes and deciding which token to add.
2019-02-21 11:13:51 -08:00
Carl Mastrangelo 041cf2abd4
Start 1.20.0 development cycle 2019-02-12 14:46:28 -08:00
Kun Zhang e875a8c6a3
core: introduce NameResolver.Helper and deprecate the params on newNameResolver() (#5345)
Context: [#4159 (comment)](https://github.com/grpc/grpc-java/issues/4159#issuecomment-415827641)

`Attributes` is appropriate for plumbing optional objects, especially useful for a long plumbing path where components in the middle may not care or see all objects in the container. It's not the case for the `params` on `newNewResolver()`. Both the default port and the proxy detector are guaranteed to be there and the plumbing path is very short. In this case, a first-class object is more appropriate and easier to use.

The `Helper` will also have `getSynchronizationContext()` (#2649) and a method to parse and validate service config. We we also considering merging `Listener` into the `Helper`, to make `NameResolver` match the `LoadBalancer` API.
2019-02-12 10:14:59 -08:00