mirror of https://github.com/grpc/grpc-java.git
This change is needed after trying to use the new style protocol negotiators internally. The problem is that some handlers fire the event in handlerAdded, which is too early. The followup PNE is fired after handlerAdded, which breaks the composibility of the negotiators. To fix this, this change modifies the negotiation flow. Specifically: * Negotiators should NEVER fire a negotiation from handlerAdded, instead they should wait until userEventTriggered * Negotiators now do state checking on the PNE. If it is set twice, it fails. If it has not been received when doing the next stage of negotiation, it fails. * WBAEH now fires the initial, default event. This is the only handler that can fire it from handlerAdded The tests updated are ones not using WBAEH (which they probably should). This change ensures attributes aren't lost when doing negotiation. |
||
|---|---|---|
| .. | ||
| shaded | ||
| src | ||
| BUILD.bazel | ||
| build.gradle | ||