Account for "shadow" services as part of ServiceRegistry impls

Description

"Shadowing" is a term we use as an approach to internal refactoring involving moving package structures where we keep a deprecated form of class to be moved in its old package and create a new one extending the old in the new location.

In the case of services though this causes problems the with ServiceRegistry and code that attempts to locate the service under the old role. Account for that use-case by adding an additional crawling (iterating) and possibly lazy xref building.

Environment

None

Status

Assignee

Steve Ebersole

Reporter

Steve Ebersole

Fix versions

Labels

None

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Components

Priority

Major
Configure