private static Set<ComponentSpecification> filterByName(Set<ComponentSpecification> components, Set<String> names) {
        Set<ComponentSpecification> result = new LinkedHashSet<>();
        for (ComponentSpecification component : components) {
            if (!names.contains(component.getName()))
                result.add(component);
        }
        return result;
    }
@param allChainSpecifications resolves ChainSpecifications from ComponentSpecifications
                              as given in the inheritance fields.
@param path tracks which chains are used in each recursive invocation of flatten, used for detecting cycles.
@return ChainSpecification directly containing all the component references and phases of the inherited chains.
container-core/src/main/java/com/yahoo/component/chain/model/ChainSpecification.java