Merge branch 'stable-3.2' into stable-3.3 * stable-3.2: (27 commits) Use shallow clone while expanding definitions Move match() and matchOrNull() to MatchCache fixup! Cache Task definition lists for ChangeNodes Cache Task definition lists for ChangeNodes Split SubNodeFactory out of SubNodeAdder Moving caching logic out of loadSubNodes() Use a TaskTree.Node.Invalid instead of nulls Use overloading for special cases instead of nulls Add a TaskTree ApplicableNodeFilter Add an isCacheableByBranch() to the PredicateCache Track whether Task.applicable needs to be refreshed Allow Expander to expand a single Task's field Minor cleanup of task Properties.expandText() Remove cached Change subNodes on Node completion Explicitly signal end of Task Properties expansion Use a SubNodeAdder to add TaskTree SubNodes Avoid hard coding the refs/meta/config ref Inject All-Projects in TaskConfigFactory Change TaskExpressions to iterate over TaskKeys Avoid passing isTrusted in TaskConfigFactory.getTaskConfig() ... Change-Id: I8551b1ba75c9f0ad35b211325f5dec7788d3005d