protected void validateRepository(CRepository settings, boolean create)
      throws ConfigurationException {
    ApplicationValidationContext ctx = getRepositoryValidationContext();

    if (!create && !StringUtils.isEmpty(settings.getId())) {
      // remove "itself" from the list to avoid hitting "duplicate repo" problem
      ctx.getExistingRepositoryIds().remove(settings.getId());
    }

    ValidationResponse vr = configurationValidator.validateRepository(ctx, settings);

    if (!vr.isValid()) {
      throw new InvalidConfigurationException(vr);
    }
  }