@SuppressWarnings({"unchecked"})
 private void notifyEPRemoved(final ExtensionPoint extensionPoint) {
   Collection<ExtensionPointAvailabilityListener> listeners =
       myAvailabilityListeners.get(extensionPoint.getName());
   for (final ExtensionPointAvailabilityListener listener : listeners) {
     notifyUnavailableListener(extensionPoint, listener);
   }
 }
  private static void registerExtensionPointsAndExtensions(
      ExtensionsArea area, List<IdeaPluginDescriptorImpl> loadedPlugins) {
    for (IdeaPluginDescriptorImpl descriptor : loadedPlugins) {
      descriptor.registerExtensionPoints(area);
    }

    Set<String> epNames = ContainerUtil.newHashSet();
    for (ExtensionPoint point : area.getExtensionPoints()) {
      epNames.add(point.getName());
    }

    for (IdeaPluginDescriptorImpl descriptor : loadedPlugins) {
      for (String epName : epNames) {
        descriptor.registerExtensions(area, epName);
      }
    }
  }