@Override
  public void loadState(@NotNull ExternalDependenciesState state) {
    List<ProjectExternalDependency> oldDependencies = new ArrayList<>(myDependencies);
    myDependencies.clear();
    for (DependencyOnPluginState dependency : state.myDependencies) {
      myDependencies.add(new DependencyOnPlugin(dependency.myId, dependency.myMinVersion, dependency.myMaxVersion));
    }

    if (!oldDependencies.equals(myDependencies) && !myDependencies.isEmpty() && !ApplicationManager.getApplication().isUnitTestMode()) {
      // may be executed immediately if start-up activities are already passed, but must be not performed in loadState
      NonUrgentExecutor.getInstance().execute(() -> {
        try {
          StartupManager.getInstance(myProject).runAfterOpened(() -> CheckRequiredPluginsActivity.runCheck(myProject, this));
        }
        catch (AlreadyDisposedException ignored) {
        }
      });
    }
  }
@Override
  public void loadState(@NotNull ExternalDependenciesState state)