Package org.sonatype.nexus.configuration.validator

Examples of org.sonatype.nexus.configuration.validator.ApplicationValidationContext


    assertThat(response.getValidationWarnings(), hasSize(0));
  }

  @Test
  public void repoEmptyId() {
    ApplicationValidationContext ctx = new ApplicationValidationContext();

    CRepository repo = new CRepository();
    repo.setLocalStatus(LocalStatus.IN_SERVICE.toString());
    repo.setName("name");
    ValidationResponse response = underTest.validateRepository(ctx, repo);
View Full Code Here


    return hasProperty("key", equalTo("id"));
  }

  @Test
  public void repoIllegalId() {
    ApplicationValidationContext ctx = new ApplicationValidationContext();
    CRepository repo = new CRepository();
    repo.setId(" ");
    repo.setLocalStatus(LocalStatus.IN_SERVICE.toString());
    repo.setName("name");
View Full Code Here

    assertThat(response.getValidationErrors().get(0), hasKey("id"));
  }

  @Test
  public void repoClashRepoId() {
    ApplicationValidationContext ctx = new ApplicationValidationContext();
    ctx.addExistingRepositoryIds();
    ctx.getExistingRepositoryIds().add("id");
    CRepository repo = new CRepository();
    repo.setId("id");
    repo.setLocalStatus(LocalStatus.IN_SERVICE.toString());
    repo.setName("name");
View Full Code Here

    assertThat(response.getValidationErrors().get(0), hasKey("id"));
  }

  @Test
  public void repoClashGroupId() {
    ApplicationValidationContext ctx = new ApplicationValidationContext();
    ctx.addExistingRepositoryGroupIds();
    ctx.getExistingRepositoryGroupIds().add("id");
    CRepository repo = new CRepository();
    repo.setId("id");
    repo.setLocalStatus(LocalStatus.IN_SERVICE.toString());
    repo.setName("name");
View Full Code Here

    assertThat(response.getValidationErrors().get(0), hasKey("id"));
  }

  @Test
  public void repoClashShadowId() {
    ApplicationValidationContext ctx = new ApplicationValidationContext();
    ctx.addExistingRepositoryShadowIds();
    ctx.getExistingRepositoryShadowIds().add("id");
    CRepository repo = new CRepository();
    repo.setId("id");
    repo.setLocalStatus(LocalStatus.IN_SERVICE.toString());
    repo.setName("name");
View Full Code Here

    assertThat(response.getValidationErrors().get(0), hasKey("id"));
  }

  @Test
  public void repoEmptyName() {
    ApplicationValidationContext ctx = new ApplicationValidationContext();
    CRepository repo = new CRepository();
    repo.setId("id");
    repo.setLocalStatus(LocalStatus.IN_SERVICE.toString());

    ValidationResponse response = underTest.validateRepository(ctx, repo);
View Full Code Here

  // Globals are mandatory: RU

  // CRepository and CreposioryShadow helper

  private ApplicationValidationContext getRepositoryValidationContext() {
    ApplicationValidationContext result = new ApplicationValidationContext();

    fillValidationContextRepositoryIds(result);

    return result;
  }
View Full Code Here

  // CRepository: CRUD

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

    if (!create && !Strings.isNullOrEmpty(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()) {
View Full Code Here

  public ValidationResponse doValidateChanges(CRepositoryGrouping changedConfiguration) {
    CRepositoryGrouping settings = (CRepositoryGrouping) changedConfiguration;

    ValidationResponse response = new ApplicationValidationResponse();

    ApplicationValidationContext context = (ApplicationValidationContext) response.getContext();

    context.addExistingPathMappingIds();

    if (settings.getPathMappings() != null) {
      for (CPathMappingItem item : (List<CPathMappingItem>) settings.getPathMappings()) {
        response.append(validateGroupsSettingPathMappingItem(context, item));
      }
View Full Code Here

    if (ctx != null) {
      response.setContext(ctx);
    }

    ApplicationValidationContext context = (ApplicationValidationContext) response.getContext();

    if (StringUtils.isEmpty(item.getId())
        || "0".equals(item.getId())
        || (context.getExistingPathMappingIds() != null && context.getExistingPathMappingIds().contains(
        item.getId()))) {
      String newId = generateId();

      item.setId(newId);

      response.addValidationWarning("Fixed wrong route ID from '" + item.getId() + "' to '" + newId + "'");

      response.setModified(true);
    }

    if (StringUtils.isEmpty(item.getGroupId())) {
      item.setGroupId(CPathMappingItem.ALL_GROUPS);

      response.addValidationWarning("Fixed route without groupId set, set to ALL_GROUPS to keep backward comp, ID='"
          + item.getId() + "'.");

      response.setModified(true);
    }

    if (item.getRoutePatterns() == null || item.getRoutePatterns().isEmpty()) {
      response.addValidationError("The Route with ID='" + item.getId()
          + "' must contain at least one Route Pattern.");
    }

    for (String regexp : (List<String>) item.getRoutePatterns()) {
      if (!isValidRegexp(regexp)) {
        response.addValidationError("The regexp in Route with ID='" + item.getId() + "' is not valid: "
            + regexp);
      }
    }

    if (context.getExistingPathMappingIds() != null) {
      context.getExistingPathMappingIds().add(item.getId());
    }

    if (!CPathMappingItem.INCLUSION_RULE_TYPE.equals(item.getRouteType())
        && !CPathMappingItem.EXCLUSION_RULE_TYPE.equals(item.getRouteType())
        && !CPathMappingItem.BLOCKING_RULE_TYPE.equals(item.getRouteType())) {
      response.addValidationError("The groupMapping pattern with ID=" + item.getId()
          + " have invalid routeType='" + item.getRouteType() + "'. Valid route types are '"
          + CPathMappingItem.INCLUSION_RULE_TYPE + "', '" + CPathMappingItem.EXCLUSION_RULE_TYPE + "' and '"
          + CPathMappingItem.BLOCKING_RULE_TYPE + "'.");
    }

    if (!CPathMappingItem.BLOCKING_RULE_TYPE.equals(item.getRouteType())) {
      // NOT TRUE ANYMORE:
      // if you delete a repo(ses) that were belonging to a route, we insist on
      // leaving the route "empty" (to save a users hardly concieved regexp) but with empty
      // repo list

      // here we must have a repo list
      // if ( item.getRepositories() == null || item.getRepositories().size() == 0 )
      // {
      // response.addValidationError( "The repository list in Route with ID='" + item.getId()
      // + "' is not valid: it cannot be empty!" );
      // }
    }

    if (context.getExistingRepositoryIds() != null && context.getExistingRepositoryShadowIds() != null) {
      List<String> existingReposes = context.getExistingRepositoryIds();

      List<String> existingShadows = context.getExistingRepositoryShadowIds();

      for (String repoId : (List<String>) item.getRepositories()) {
        if (!existingReposes.contains(repoId) && !existingShadows.contains(repoId)) {
          response.addValidationError("The groupMapping pattern with ID=" + item.getId()
              + " refers to a nonexistent repository with repoID = " + repoId);
View Full Code Here

TOP

Related Classes of org.sonatype.nexus.configuration.validator.ApplicationValidationContext

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.