GitHub user ahgittin opened a pull request: https://github.com/apache/brooklyn-server/pull/816
[WIP] Tasks code improvements Tidies up many things about tasks * different types of execution follow the same code path * scheduled tasks are tracked better * remove deprecation * optimize task execution, including removing soft references in submitters * indicate (with `TODO`) where downstream improvements should be made WIP here: * clean up "schedule task" API * wait for 0.12.0 RC branch (this should be done early in the next release cycle) This is prep work for the main event (which will be done in separate PRs): * improve the tasks tree so ops users can explore it more naturally, esp for init, publishing, and scheduled tasks * tag tasks running by adjuncts so they can be retrieved You can merge this pull request into a Git repository by running: $ git pull https://github.com/ahgittin/brooklyn-server tasks-better Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/816.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #816 ---- commit bc7d8f4ff2889f3fb8bd8c045a53e4d1d0ca0df0 Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-11T10:03:52Z more performance monitoring util routines commit bae58c93051d779704efbc7b52e2f30a508dfaa7 Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-11T14:43:18Z optimization: skip conversion to then from TypeToken if we have a raw class as a type this was a noticeable expense when doing profiling commit faf4501dc2a54d00b77a74058814191857dd1820 Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-11T14:47:44Z optimization: skip tags copy on common simple lookups commit ec8159aa745fb86992ea37caa6e0e1ea3cf801ea Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-08T15:00:29Z don't repeat task tracking code between scheduled and non-scheduled code paths commit 13579d621ae2781de6cdc9291a120c1818961565 Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-11T07:40:31Z more bookkeeping for immediate/same-thread tasks commit 7b3695b7f812386c27e747495d7ae25c12483e05 Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-11T17:00:11Z use new public class MaybeSupplier for Maybe instances backed by supplier so callers can access the supplier in cases where it might also provide other info such as Identifiable commit 25a8dc8bcc2f5661cb5f4d3a3760b9d07e733203 Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-11T22:14:59Z optimization: cache common type tokens commit 5fe5188eafa14231cda88e88757cdcaf3cf8b36c Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-11T10:04:08Z mark task names needing tidy as TODO and tidy some commit 05c30c6608a26b0c25550754598d1f8ab3504b95 Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-11T17:03:37Z remove soft refs in tasks in favour of lookup soft refs are expensive in the GC phase -- improves speed by 20% in some cases commit 51f09b08ec13a9edad57e1c68764f2922114ac7f Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-11T22:15:50Z add support for same-thread execution submitting and blocking is unnecessary overhead in many places commit db7ffdbc6a740aa2f6e8d2c2eb6b13de35756e13 Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-12T11:12:00Z diff task submisson paths share code about how to end, and tidy listeners fix bug where some where executed and GC'd before the child had actually run, by ensuring listeners don't run until the task recognizes the cancellation. also tidy how end code is shared, and remove deprecation commit 7d9eedd5ac40fca686c977b654fb240f647100d1 Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-12T10:49:51Z WIP task visibility: validation of config commit 2d8840101436d202f1733311489f69882537340c Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Date: 2017-09-12T14:01:09Z WIP task visibility: entity mgmt startup wrapped in its own task ---- ---