protected boolean verifyDependencyManagers() {
    // indicates whether all dependencies are satisfied
    boolean satisfied = true;

    for (DependencyManager<S, ?> dm : getDependencyManagers()) {

      if (!dm.hasGetPermission()) {
        // bundle has no service get permission
        if (dm.isOptional()) {
          log(
              LogService.LOG_DEBUG,
              "No permission to get optional dependency: {0}; assuming satisfied",
              new Object[] {dm.getName()},
              null);
        } else {
          log(
              LogService.LOG_DEBUG,
              "No permission to get mandatory dependency: {0}; assuming unsatisfied",
              new Object[] {dm.getName()},
              null);
          satisfied = false;
        }
      } else if (!dm.isSatisfied()) {
        // bundle would have permission but there are not enough services
        log(
            LogService.LOG_DEBUG,
            "Dependency not satisfied: {0}",
            new Object[] {dm.getName()},
            null);
        satisfied = false;
      }
    }

    return satisfied;
  }