public void init() {
    ProgressManager.checkCanceled();

    if (isInitializationStarted.getAndSet(true)) {
      return;
    }

    // load external projects data
    ExternalProjectsDataStorage.getInstance(myProject).load();
    myRunManagerListener.attach();

    // init shortcuts manager
    myShortcutsManager.init();
    for (ExternalSystemManager<?, ?, ?, ?, ?> systemManager : ExternalSystemManager.EP_NAME.getIterable()) {
      Collection<ExternalProjectInfo> externalProjects = ExternalProjectsDataStorage.getInstance(myProject).list(systemManager.getSystemId());
      for (ExternalProjectInfo externalProject : externalProjects) {
        if (externalProject.getExternalProjectStructure() == null) {
          continue;
        }
        Collection<DataNode<TaskData>> taskData = ExternalSystemApiUtil.findAllRecursively(externalProject.getExternalProjectStructure(), TASK);
        myShortcutsManager.scheduleKeymapUpdate(taskData);
      }

      if (!externalProjects.isEmpty()) {
        myShortcutsManager.scheduleRunConfigurationKeymapUpdate(systemManager.getSystemId());
      }
    }
    // init task activation info
    myTaskActivator.init();

    synchronized (isInitializationFinished) {
      isInitializationFinished.set(true);
      invokeLater(() -> {
        myPostInitializationActivities.run();
        myPostInitializationActivities.clear();
      });

      //noinspection deprecation
      ProjectUtilKt.executeOnPooledThread(myProject, coroutineScope, () -> {
        myPostInitializationBGActivities.run();
        myPostInitializationBGActivities.clear();
      });
    }
  }
public void init()