@Override
  public void validateRawModel(Model model, ModelBuildingRequest request, ModelProblemCollector problems) {
    ProxyModelProblemCollector problemsProxy = new ProxyModelProblemCollector(problems);
    super.validateRawModel(model, request, problemsProxy);

    Parent parent = model.getParent();
    if (parent != null && !problemsProxy.hasFatalErrors()) {
      if (parent.getGroupId().contains("${") || parent.getArtifactId().contains("${") || parent.getVersion().contains("${")) {
        myModelInterpolator.interpolateObject(parent, model, model.getProjectDirectory(), request, problems);

        if (equals(parent.getGroupId(), model.getGroupId()) && equals(parent.getArtifactId(), model.getArtifactId())) {
          try {
            // will encounter validation problem right on the start
            super.validateRawModel(model, request, new AbortOnFirstErrorProblemsCollector(problems));
          }
          catch (AbortOnErrorException ignored) {
          }
        }
      }
    }
  }
@Override
  public void validateRawModel(Model model, ModelBuildingRequest request, ModelProblemCollector problems)