* Revert "Revert "[BinderTransport] Allow finding Java class using custom class finder (#28348)" (#28496)"
This reverts commit ecf6a7fa95.
* Add missing include directives
In some some situation it is not feasible to invoke
`InitializeBinderChannelJavaClass` in non-native threads.
And the intended way to find Java class is through class loader cached
at program initialization.
This commit adds a new API that accepts a class finder from user and
uses the function to find and cache binder transport Java util class.
Due to limitation of JVM, when user want to create binder channel in
threads created in unmanaged native code, they will need to call this
new API first to make sure Java helper classes can correctly be found.
Unused code in jni_utils.cc are also cleaned up in this commit
* Expose experimental binder transport API
New headers are added
`grpcpp/create_channel_binder.h `: interfaces for creating client
channel
`grpcpp/security/binder_credentials.h`: interfaces for binder server
credentials
`grpcpp/security/binder_security_policy.h`: interfaces for binder
security policy, which is used by both server and client. Individual
security policies are merged into this single header.
Users can now depend on the `grpc++_binder` target to use the headers
listed above.
* Regenerate projects
* Fix OOM issues in qps tests
* Add more verbose logging.
* Fix clang error
* Fix race between IsCancelled and Read
* Fix build errors from using bool in C code
Internal bug b/170934515
In some cases, calling CQ::Next will return true without passing up a
new tag value, which is very much illegal. My expectation is that this
is due to messing up between SHUTDOWN and TIMEOUT in lower layer code
that doesn't particularly matter much to most callers, but was being
erroneously checked here.
It is not possible for such a function to be implemented in a way that
is understood by annotalysis. Mark it deprecated and replace instances
of its use with direct mutex/condvar usage.
Add a bunch of missing thread safety annotations while I'm here.
* support user provided audience in gdc and jwt
* fix 1st round of comments
* fix ruby and php to use new GDC API
* fix python clang issue
* address 2nd round of comments
* fix string_view issue
* remove length param in string_view constructor
* De-experimentalize callback API
* Make FromServerContext based on ServerContextBase
* Fix lambda
* Fix headers
* De-experimentalize tests
* clang-format
* Fix consistency checks
* wip
* Fix const-ness of callback client read RPC requests
* Fix golden file
* Give full route_guide callback client example with Hold etc
* Complete example route-guide server
* De-experimentalize test services
* Omit unneeded using
* Remove some uses of non-experimental macro from test
* clang-format examples
* De-experimentalize async stub calls
* Remove experimental namespace use in qps, ubms
* De-experimentalize alarms, generic stubs, and context allocator
* De-experimentalize SetContextAllocator
* clang-format
* Fix conflicts
* Leave obsolete API in place until users can be migrated