grpc-java/api/src/main/java/io/grpc
ZHANG Dapeng 9f56b8cea2
api: change ConfigSelector.Result to use callback instead of interceptor
We found that the interceptor approach for `ConfigSelector` would be adding a layer of indirection for no gain: The API Result selectConfig(LoadBalancer.PickSubchannelArgs args) consumes headers among other inputs, because route matching might need to match the headers; and the API produces ClientInterceptor among other outputs. But the headers is not available until clientCall.start(listner, headers), whereas the interceptor need be applied to the call before clientCall.start(). So the input is not available until the output is applied. That means we will need to delay calling the downstream newCall() (which will either be RealChannel or the interceptor) until start() is called.

So we want to change to the other approach similar to what c-core is taking: Have `Result(Object config, CallOptions, Runnable committedCallback)`, where CallOption is the selector modified CallOption, and committedCallback is used to monitor the call lifecycle.
2020-07-17 13:33:44 -07:00
..
Attributes.java api,protobuf-lite: solve code style issues 2019-05-31 12:49:30 -07:00
BinaryLog.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
BindableService.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
CallCredentials.java api,stub : fix 2 typos (CallCredentials2 to CallCredentials and javadoc comment in AbstractStub) (#6343) 2019-10-28 10:03:49 -07:00
CallCredentials2.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
CallOptions.java api,stub: Improve waitForReady documentation 2020-04-30 16:03:52 -07:00
Channel.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ChannelLogger.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ClientCall.java core/doc: clarify when ClientCall.cancel() can be called. 2020-05-07 18:41:22 -07:00
ClientInterceptor.java api: Discourage using ClientInterceptor for credentials 2019-05-06 17:03:44 -07:00
ClientInterceptors.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ClientStreamTracer.java api: fix Javadoc warnings. (#6763) 2020-02-26 11:51:01 -08:00
Codec.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
Compressor.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
CompressorRegistry.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ConnectivityState.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ConnectivityStateInfo.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
Contexts.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
Decompressor.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
DecompressorRegistry.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
Drainable.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
EquivalentAddressGroup.java core: Add Attributes.Key for authority in EquivalentAddressGroup (#6126) 2019-09-11 20:35:18 -07:00
ExperimentalApi.java doc: Add hint to users who want an experimental API to be stabilized 2019-07-26 09:22:53 -07:00
ForwardingChannelBuilder.java api: Deprecate ManagedChannelBuilder.nameResolverFactory 2020-06-30 14:34:35 -05:00
ForwardingClientCall.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ForwardingClientCallListener.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ForwardingServerCall.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ForwardingServerCallListener.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
Grpc.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
HandlerRegistry.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
HttpConnectProxiedSocketAddress.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
Internal.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
InternalCallOptions.java api: expose if waitForReady has been set on CallOptions 2019-04-25 10:56:40 -07:00
InternalChannelz.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
InternalClientInterceptors.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
InternalConfigSelector.java api: change ConfigSelector.Result to use callback instead of interceptor 2020-07-17 13:33:44 -07:00
InternalDecompressorRegistry.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
InternalInstrumented.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
InternalKnownTransport.java api,netty: fix MethodDescriptor and InternalKnownTransport for netty-shaded 2020-02-27 12:53:11 -08:00
InternalLogId.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
InternalManagedChannelProvider.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
InternalMetadata.java Support for lazily serialized values in Metadata. 2019-12-12 15:34:30 -08:00
InternalMethodDescriptor.java api,protobuf-lite: solve code style issues 2019-05-31 12:49:30 -07:00
InternalServer.java api, core, services: make ProtoReflectionService interceptor compatible (#6967) 2020-05-01 10:39:38 -07:00
InternalServerInterceptors.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
InternalServiceProviders.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
InternalStatus.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
InternalWithLogId.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
KnownLength.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
LoadBalancer.java api,core: add LoadBalancer.Helper#createResolvingOobChannelBuilder api (#7136) 2020-06-17 12:36:14 -07:00
LoadBalancerProvider.java api: Add documentation for Provider SPI discovery 2020-06-30 14:34:35 -05:00
LoadBalancerRegistry.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ManagedChannel.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ManagedChannelBuilder.java api: Deprecate ManagedChannelBuilder.nameResolverFactory 2020-06-30 14:34:35 -05:00
ManagedChannelProvider.java api: Add documentation for Provider SPI discovery 2020-06-30 14:34:35 -05:00
Metadata.java api: Add ExperimentalApi to Metadata.BinaryStreamMarshaller 2019-12-27 13:33:46 -08:00
MethodDescriptor.java api: Fix MethodType documentation overspecification 2020-03-09 12:16:01 -07:00
NameResolver.java core: make service config error handling optional implementation (#6564) 2019-12-26 15:07:20 -08:00
NameResolverProvider.java api: Add documentation for Provider SPI discovery 2020-06-30 14:34:35 -05:00
NameResolverRegistry.java api,protobuf-lite: solve code style issues 2019-05-31 12:49:30 -07:00
PartialForwardingClientCall.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
PartialForwardingClientCallListener.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
PartialForwardingServerCall.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
PartialForwardingServerCallListener.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ProxiedSocketAddress.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ProxyDetector.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
SecurityLevel.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
Server.java api, core, services: make ProtoReflectionService interceptor compatible (#6967) 2020-05-01 10:39:38 -07:00
ServerBuilder.java api: Remove ref to deleted InternalNotifyOnServerBuild 2020-06-02 07:28:44 -07:00
ServerCall.java api,stub: Clarify isReady()/onReady() interaction semantics 2019-05-29 17:28:45 -07:00
ServerCallHandler.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ServerInterceptor.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ServerInterceptors.java core: copy the SchemaDescriptor when rebuilding descriptor (#6851) 2020-03-30 14:07:24 -07:00
ServerMethodDefinition.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ServerProvider.java api: Add documentation for Provider SPI discovery 2020-06-30 14:34:35 -05:00
ServerServiceDefinition.java core: add getService to MethodDescriptor 2019-04-24 17:45:41 -07:00
ServerStreamTracer.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ServerTransportFilter.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
ServiceDescriptor.java core: add getService to MethodDescriptor 2019-04-24 17:45:41 -07:00
ServiceProviders.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
Status.java docs: add note about retrying UNAVAILABLE 2019-04-19 14:29:13 -07:00
StatusException.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
StatusRuntimeException.java Add `@Nullable` to getter for trailers on `StatusRuntimeException` since the constructors allows it to be null 2019-07-09 15:56:42 -07:00
StreamTracer.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00
SynchronizationContext.java api: Mention similarity of synccontext to a dedicated thread 2019-05-30 10:52:22 -07:00
package-info.java core: Move io.grpc to grpc-api 2019-04-16 21:45:40 -07:00