Allow build operation listeners to log (#4693)
This change moves build operation listening out of the standard listener infrastructure, to remove serialisation guarantees. As logging output now causes build operation notifications, whenever a build operation listener logged something it would fail due to the listener manager blocking overlapping signals.
By moving build operation listening out, overlapping and concurrent signals are now allowed.
This places more responsibility on listener implementations (e.g. thread safety), but there are few and they are all internal.
Additionally, listeners will now never receive progress notifications before start notifications and after finish notifications for that operation.
13 Mar 18 98ae0467899211ab8c32812a4e3bac18e245c438
Emit build operation progress events for logging output (#4537)
* Tweak BuildOperationListener#progress api
* Use build operation id to reference progress
* Add workaround for tracing log output via build operation progress for composite builds
* Replace some Object typing of operation identifiers with OperationIdentifier.
* Associate all progress logging with the current build operation.
* Update logic to accommodate for all progress events now having build operation IDs.
* Don't allow ProgressStartEvent.buildOperationCategory to be null.
** Default it to uncategorized.
07 Mar 18 c7409e698ecbd52b390895c6115d931f2361bccd