invokeRemoved(ds, ref, service);
}
} else {
// Some dependencies are still available: first inject the remaining highest ranked dependency
// in component class field, if the dependency is configured in autoconfig mode.
ds.autoConfig(this);
// Next, invoke "removed" callback. If the dependency is aspect aware, we only invoke removed cb
// if the removed service is the highest ranked service. Note that if the cb is not called, we don't
// propagate the remaining dependency properties.
if (invokeRemoved(ds, ref, service)) {
// Finally, since we have lost one dependency, we have to possibly propagate the highest ranked