@Override
  protected void checkSettings(@NotNull GradleProjectSettings old, @NotNull GradleProjectSettings current) {
    if (!Objects.equals(old.getGradleHome(), current.getGradleHome())) {
      getPublisher().onGradleHomeChange(old.getGradleHome(), current.getGradleHome(), current.getExternalProjectPath());
    }
    if (!Objects.equals(old.getGradleJvm(), current.getGradleJvm())) {
      getPublisher().onGradleJvmChange(old.getGradleJvm(), current.getGradleJvm(), current.getExternalProjectPath());
    }
    if (old.getDistributionType() != current.getDistributionType()) {
      getPublisher().onGradleDistributionTypeChange(current.getDistributionType(), current.getExternalProjectPath());
    }
    if (old.isResolveModulePerSourceSet() != current.isResolveModulePerSourceSet()) {
      ExternalProjectsManager.getInstance(getProject()).getExternalProjectsWatcher().markDirty(current.getExternalProjectPath());
    }
    if (!Comparing.equal(old.getDelegatedBuild(), current.getDelegatedBuild())) {
      boolean delegatedBuild = GradleProjectSettings.isDelegatedBuildEnabled(getProject(), current.getExternalProjectPath());
      getPublisher().onBuildDelegationChange(delegatedBuild, current.getExternalProjectPath());
    }
    if (!Comparing.equal(old.getTestRunner(), current.getTestRunner())) {
      TestRunner testRunner = GradleProjectSettings.getTestRunner(getProject(), current.getExternalProjectPath());
      getPublisher().onTestRunnerChange(testRunner, current.getExternalProjectPath());
    }
  }
@Override
  protected void checkSettings(@NotNull GradleProjectSettings old, @NotNull GradleProjectSettings current)