public void doDispose() {
    ExtensionPoint<ConfigurationType> configurationExtensionPoint =
        Extensions.getArea(null).getExtensionPoint(ConfigurationType.CONFIGURATION_TYPE_EP);
    for (ConfigurationType configurationKind :
        ListSequence.fromList(
                RunConfigurationsInitializer_CustomApplicationPlugin.this.myRegisteredKinds)
            .reversedList()) {
      configurationExtensionPoint.unregisterExtension(configurationKind);
    }
    ListSequence.fromList(
            RunConfigurationsInitializer_CustomApplicationPlugin.this.myRegisteredKinds)
        .clear();

    ExtensionPoint<RuntimeConfigurationProducer> producerExtensionPoint =
        Extensions.getArea(null)
            .getExtensionPoint(RuntimeConfigurationProducer.RUNTIME_CONFIGURATION_PRODUCER);
    for (RuntimeConfigurationProducer producer :
        ListSequence.fromList(
            RunConfigurationsInitializer_CustomApplicationPlugin.this.myRegisteredProducers)) {
      producerExtensionPoint.unregisterExtension(producer);
    }
    ListSequence.fromList(
            RunConfigurationsInitializer_CustomApplicationPlugin.this.myRegisteredProducers)
        .clear();
  }
 public void doDispose() {
   ExtensionPoint<RuntimeConfigurationProducer> creatorsExtensionPoint =
       Extensions.getArea(null)
           .getExtensionPoint(RuntimeConfigurationProducer.RUNTIME_CONFIGURATION_PRODUCER);
   for (RuntimeConfigurationProducer configurationCreator :
       ListSequence.fromList(
               LegacyRunConfigurationsProvider_CustomApplicationPlugin.this
                   .myConfigurationCreators)
           .reversedList()) {
     creatorsExtensionPoint.unregisterExtension(configurationCreator);
   }
   ListSequence.fromList(
           LegacyRunConfigurationsProvider_CustomApplicationPlugin.this.myConfigurationCreators)
       .clear();
   ExtensionPoint<ConfigurationType> kindsExtensionPoint =
       Extensions.getArea(null).getExtensionPoint(ConfigurationType.CONFIGURATION_TYPE_EP);
   for (ConfigurationType configurationKind :
       ListSequence.fromList(
               LegacyRunConfigurationsProvider_CustomApplicationPlugin.this.myConfigurationKinds)
           .reversedList()) {
     kindsExtensionPoint.unregisterExtension(configurationKind);
   }
   ListSequence.fromList(
           LegacyRunConfigurationsProvider_CustomApplicationPlugin.this.myConfigurationKinds)
       .clear();
 }
 @Override
 protected void tearDown() throws Exception {
   ExtensionPoint<EntryPoint> point =
       Extensions.getRootArea().getExtensionPoint(ExtensionPoints.DEAD_CODE_TOOL);
   point.unregisterExtension(myUnusedCodeExtension);
   myUnusedCodeExtension = null;
   ext_src = null;
   super.tearDown();
 }
 public void testUnsortedSuppressed() throws Exception {
   final ExtensionPoint<AlphaUnsortedPropertiesFileInspectionSuppressor> ep =
       Extensions.getRootArea()
           .getExtensionPoint(AlphaUnsortedPropertiesFileInspectionSuppressor.EP_NAME);
   final AlphaUnsortedPropertiesFileInspectionSuppressor suppressor =
       new AlphaUnsortedPropertiesFileInspectionSuppressor() {
         @Override
         public boolean suppressInspectionFor(PropertiesFile propertiesFile) {
           return propertiesFile.getName().toLowerCase().contains("suppress");
         }
       };
   try {
     ep.registerExtension(suppressor);
     doTest();
   } finally {
     ep.unregisterExtension(suppressor);
   }
 }
  private static void patchRootAreaExtensions() {
    ExtensionsArea rootArea = Extensions.getArea(null);

    for (ToolWindowEP ep : Extensions.getExtensions(ToolWindowEP.EP_NAME)) {
      if (ToolWindowId.FAVORITES_VIEW.equals(ep.id)
          || ToolWindowId.TODO_VIEW.equals(ep.id)
          || EventLog.LOG_TOOL_WINDOW_ID.equals(ep.id)
          || ToolWindowId.STRUCTURE_VIEW.equals(ep.id)) {
        rootArea.getExtensionPoint(ToolWindowEP.EP_NAME).unregisterExtension(ep);
      }
    }

    for (DirectoryProjectConfigurator ep :
        Extensions.getExtensions(DirectoryProjectConfigurator.EP_NAME)) {
      if (ep instanceof PlatformProjectViewOpener) {
        rootArea.getExtensionPoint(DirectoryProjectConfigurator.EP_NAME).unregisterExtension(ep);
      }
    }

    // unregister unrelated tips
    for (TipAndTrickBean tip : Extensions.getExtensions(TipAndTrickBean.EP_NAME)) {
      if (UNRELATED_TIPS.contains(tip.fileName)) {
        rootArea.getExtensionPoint(TipAndTrickBean.EP_NAME).unregisterExtension(tip);
      }
    }

    for (IntentionActionBean ep : Extensions.getExtensions(IntentionManager.EP_INTENTION_ACTIONS)) {
      if ("org.intellij.lang.regexp.intention.CheckRegExpIntentionAction".equals(ep.className)) {
        rootArea.getExtensionPoint(IntentionManager.EP_INTENTION_ACTIONS).unregisterExtension(ep);
      }
    }

    final ExtensionPoint<ProjectAttachProcessor> point =
        Extensions.getRootArea().getExtensionPoint(ProjectAttachProcessor.EP_NAME);
    for (ProjectAttachProcessor attachProcessor :
        Extensions.getExtensions(ProjectAttachProcessor.EP_NAME)) {
      point.unregisterExtension(attachProcessor);
    }
  }