Commit Graph

45 Commits

Author SHA1 Message Date
ZHANG Dapeng 4337da6d7d
Start 1.19.0 development cycle 2019-01-02 15:31:01 -08:00
Carl Mastrangelo 1bf8476cd7
core: standardize logid format and add details for channelz 2018-12-17 17:22:11 -08:00
Jihun Cho 1506135333 Start 1.18.0 development cycle 2018-11-19 14:49:35 -08:00
Kun Zhang c528df8ae8
core: add internal Subchannel.asChannel() (#4950)
Returns a Channel that allows a LoadBalancer to make auxiliary RPCs on already-established application connections. We need this to implement client-side health-checking (#4932)

See comments on the API for its semantics.

Notable changes:

- Transports are modified to use InUseStateAggregator so that they can exclude RPCs made on Subchannel.asChannel() when reporting in-use state for idle mode.
- OobChannel shares the same Executor as Subchannel.asChannel(). Because the latter is not a ManagedChannel and doesn't have life-cycle, thus can't determine when to return the Executor to a pool, the Executor is now returned only when ManagedChannelImpl is terminated.
2018-10-15 15:39:21 -07:00
Jihun Cho 6332b076af cronet: remove unused import 2018-10-12 16:17:47 -07:00
Eric Anderson 967cc64770 Start 1.17.0 development cycle 2018-10-11 09:29:23 -07:00
Kun Zhang 861f9147ed
core: add CallCredentials2 and deprecate CallCredentials' old interface (#4902)
This is the first step of smoothly changing the CallCredentials API.

Security level and authority are parameters required to be passed to
applyRequestMetadata(). This change wraps them, along with
MethodDescriptor and the transport attributes to RequestInfo, which is
more clear to the implementers.

ATTR_SECURITY_LEVEL is moved to the internal GrpcAttributes and
annotated as TransportAttr, because transports are required to set it,
but no user is actually reading them from
{Client,Server}Call.getAttributes().

ATTR_AUTHORITY is removed, because no transport is overriding it.

All involved interfaces are changed to abstract classes, as this will
make further API changes smoother.

The CallCredentials name is stabilized, thus we first introduce
CallCredentials2, ask CallCredentials implementations to migrate to
it, while GRPC accepting both at the same time, then replace
CallCredentials with CallCredentials2.
2018-10-10 21:45:56 -07:00
Carl Mastrangelo b0f423295b
all: use Java7 brackets 2018-09-14 13:52:29 -07:00
zpencer 2fca42feb9
all: prepend internal classes with Internal (#4826)
This is a safer way to hide the classes, because they will not appear
in public targets for some build configurations.
2018-09-05 18:48:42 -07:00
zpencer 4d366ce978
all: move Channelz to io.grpc as InternalChannelz (#4797)
This is an API used to coordinate across packages and must live in
`io.grpc`.

Prepending `Internal` makes it easier to detect and hide this class
from public visibility when using certain build tools.

fixes #4796
2018-09-04 16:52:01 -07:00
Eric Gribkoff fd73209e0c
cronet: report statsTraceCtx.clientOutboundHeaders() (#4768) 2018-08-28 20:19:45 -07:00
Kun Zhang 28d44ae46d
Start 1.16.0 development cycle (#4803) 2018-08-27 17:21:46 -07:00
Grant Oakley 6fa2822923 cronet: cleanup remaining usages of deprecated CallOptions#of(). (#4720) 2018-08-01 15:09:50 -07:00
zpencer 4335445d98
Start 1.15.0 development cycle (#4650) 2018-07-18 10:48:04 -07:00
Eric Anderson 9d6241eedc Propagate EquivalentAddressGroup attributes to transports
Most of the changes are changing the signature of newClientTransport.
Since this is annoying, I choose to introduce a ClientTransportOptions
object to avoid the churn in the future.

With ClientTransportOptions in place, there's only a few lines necessary
of plumbing for the Attributes: add the field to ClientTransportOptions
and populate it in InternalSubchannel. There are no consumers of the
field in this commit.
2018-07-09 13:00:17 -07:00
ZHANG Dapeng 5ce10f0146
all: add gradle format checker
This PR adds an automatic gradle format checker and reformats all the *.gradle files. After this, new changes to *.gradle files will fail to build if not in good format, just like checkStyle failure.
2018-06-11 18:35:18 -07:00
Kun Zhang 11e2d6d7f1
cronet: fill in transport attributes as required by CallCredentials (#4532) 2018-06-07 15:28:23 -07:00
Eric Gribkoff bc9d3ab7ca
cronet: include google() repository (#4548) 2018-06-07 11:25:42 -07:00
Eric Gribkoff 8fd762fb8e
cronet: use Cronet from Google's Maven repository (#4531) 2018-06-04 20:16:02 -07:00
ZHANG Dapeng 8a3e623be7
Start 1.14.0 development cycle 2018-06-04 16:08:31 -07:00
Carl Mastrangelo 60a0b0c471
all: normalize copyright header 2018-05-03 14:55:21 -07:00
zpencer 62e6e2de78
Start 1.13.0 development cycle (#4383) 2018-04-23 15:24:24 -07:00
ZHANG Dapeng ca55b6f7e7
cronet: allow application to provide all threads 2018-03-21 15:04:31 -07:00
Eric Gribkoff 5e8b8c2bee
cronet: delay cast to ExperimentalCronetEngine (#4230) 2018-03-15 19:09:19 -07:00
Eric Anderson 11c8bcde1b Start 1.12.0 development cycle 2018-03-13 09:04:25 -07:00
ZHANG Dapeng a83f67a706
core,netty,okhttp: Transparent retry
Changes:

- `ClientStreamListener.onClose(Status status, RpcProgress rpcProgress, Metadata trailers)` added.

- `AbstractClientStream.transportReportStatus(Status status, RpcProgress rpcProgress, boolean stopDelivery, Metadata trailers)` added

- `ClientCallImpl.ClientStreamListenerImpl` will ignore the arg `rpcProgress` (non retry)

- `RetriableStream.SubListener` will handle `rpcProgress` and decide if transparent retry.

- `NettyClientHandler` and `OkHttpClientTransport` will pass `RpcProgress.REFUSED` to client stream listener for later stream ids when received GOAWAY, or for stream received a RST_STREAM frame with REFUSED code.

- All other files are just a result of refactoring.
2018-03-12 14:12:46 -07:00
Paul Jensen 2fc2270011 cronet: add API to apply TrafficStats tag and UID to Cronet GRPC channels (#4208) 2018-03-12 10:05:25 -07:00
zpencer f0eb6d2102
core,netty,okhttp,testing: nest TransportStats inside SocketStats for channelz (#4190)
Transport ststistics should really be a child member of SocketStats.
While we're at it, let's add the local and remote SocketAddress to
SocketStats, with a test.
2018-03-08 14:56:04 -08:00
Eric Gribkoff 512e55444e
cronet,examples: remove unused imports 2018-02-05 15:45:52 -08:00
Eric Gribkoff 2f05c23063
Start 1.11.0 development cycle 2018-01-30 15:13:55 -08:00
zpencer 199a5203c5
core: move ChannelStats and TransportStats to io.grpc.internal.Channelz (#4008) 2018-01-25 23:24:49 -08:00
zpencer b109595ad3
core: move Instrumented, LogId, WithLogId to io.grpc.internal as public (#3995) 2018-01-25 17:19:00 -08:00
Eric Gribkoff c7a5bd7a5c cronet: add build.gradle and script for Cronet deps 2018-01-16 09:16:04 -08:00
Eric Anderson 09a7a22210 cronet: Fix compilation errors 2017-12-14 16:00:41 -08:00
Kun Zhang aeaced1c5d
cronet: pass TransportTracer instead of null. (#3869)
AbstractStream now requires TransportTracer to be non-null.
2017-12-14 15:43:39 -08:00
zpencer 173ca5d332
cronet, grpc-lb, interop-testing: fix lints #3848 2017-12-07 16:09:43 -08:00
zpencer 1e0a9d0bb5
cronet: update CronetClientTransport interface (#3846) 2017-12-07 10:54:15 -08:00
Carl Mastrangelo c9b02db276
all: add Status messages to all statuses 2017-12-04 19:00:16 -08:00
ZHANG Dapeng 76da37b75f
cronet: use TestMethodDescriptors.voidMethod instead of noopMethod 2017-11-27 08:33:32 -08:00
Eric Gribkoff dd0d028810
cronet: update to work with TransportTracer API 2017-11-17 16:36:56 -08:00
Eric Gribkoff 1a42a4c921
cronet: allow multiple annotation objects attached to stream 2017-11-09 15:15:48 -08:00
Eric Gribkoff e7fe224489
cronet: add tests 2017-11-08 15:06:06 -08:00
zpencer 976bda8f6e cronet: add ProxyParam arg to CronetTransportFactory (#3589) 2017-10-19 08:55:56 -07:00
Eric Gribkoff d63711e8bc cronet: make CronetChannelBuilder final 2017-10-11 15:52:01 -07:00
Eric Gribkoff 4d67c3d63f cronet: open-source experimental Cronet transport code 2017-10-06 11:18:03 -07:00