public boolean installDynamically(@Nullable JComponent ownerComponent) throws IOException {
    assert myDescriptor instanceof IdeaPluginDescriptorImpl;
    IdeaPluginDescriptorImpl descriptor = (IdeaPluginDescriptorImpl)myDescriptor;

    // yes, if no installed plugin by id, it means that something goes wrong, so do not try to install and load
    boolean appliedWithoutRestart = DynamicPlugins.allowLoadUnloadWithoutRestart(descriptor) &&
                                    (myOldFile == null || unloadDescriptorById(myDescriptor.getPluginId())) &&
                                    PluginInstaller.installAndLoadDynamicPlugin(getFilePath(), ownerComponent, descriptor);

    if (!appliedWithoutRestart) {
      install();
    }

    return appliedWithoutRestart;
  }
public boolean installDynamically(@Nullable JComponent ownerComponent)