diff --git a/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurationType.java b/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurationType.java index 79a42c0118f8..db9abb218ae5 100644 --- a/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurationType.java +++ b/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurationType.java @@ -17,14 +17,9 @@ package com.intellij.execution.applet; import com.intellij.execution.ExecutionBundle; import com.intellij.execution.configuration.ConfigurationFactoryEx; -import com.intellij.execution.configurations.ConfigurationFactory; -import com.intellij.execution.configurations.ConfigurationType; -import com.intellij.execution.configurations.ModuleBasedConfiguration; -import com.intellij.execution.configurations.RunConfiguration; +import com.intellij.execution.configurations.*; import com.intellij.icons.AllIcons; -import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; -import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import javax.swing.*; @@ -72,6 +67,6 @@ public class AppletConfigurationType implements ConfigurationType { } public static AppletConfigurationType getInstance() { - return ContainerUtil.findInstance(Extensions.getExtensions(CONFIGURATION_TYPE_EP), AppletConfigurationType.class); + return ConfigurationTypeUtil.findConfigurationType(AppletConfigurationType.class); } } diff --git a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurationType.java b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurationType.java index 99502f597070..fba68e43f396 100644 --- a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurationType.java +++ b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurationType.java @@ -17,18 +17,13 @@ package com.intellij.execution.application; import com.intellij.execution.ExecutionBundle; import com.intellij.execution.configuration.ConfigurationFactoryEx; -import com.intellij.execution.configurations.ConfigurationFactory; -import com.intellij.execution.configurations.ConfigurationType; -import com.intellij.execution.configurations.ModuleBasedConfiguration; -import com.intellij.execution.configurations.RunConfiguration; +import com.intellij.execution.configurations.*; import com.intellij.icons.AllIcons; -import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiJavaFile; import com.intellij.psi.util.PsiMethodUtil; -import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -98,9 +93,9 @@ public class ApplicationConfigurationType implements ConfigurationType { return "Application"; } - @Nullable + @NotNull public static ApplicationConfigurationType getInstance() { - return ContainerUtil.findInstance(Extensions.getExtensions(CONFIGURATION_TYPE_EP), ApplicationConfigurationType.class); + return ConfigurationTypeUtil.findConfigurationType(ApplicationConfigurationType.class); } } diff --git a/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurationType.java b/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurationType.java index 87c18dc9d5f3..9028a51f8df0 100644 --- a/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurationType.java +++ b/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurationType.java @@ -23,13 +23,11 @@ package com.intellij.execution.remote; import com.intellij.execution.ExecutionBundle; import com.intellij.execution.configurations.ConfigurationFactory; import com.intellij.execution.configurations.ConfigurationType; +import com.intellij.execution.configurations.ConfigurationTypeUtil; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.icons.AllIcons; -import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; -import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -72,9 +70,9 @@ public class RemoteConfigurationType implements ConfigurationType { return "Remote"; } - @Nullable + @NotNull public static RemoteConfigurationType getInstance() { - return ContainerUtil.findInstance(Extensions.getExtensions(CONFIGURATION_TYPE_EP), RemoteConfigurationType.class); + return ConfigurationTypeUtil.findConfigurationType(RemoteConfigurationType.class); } } diff --git a/platform/lang-api/src/com/intellij/execution/configurations/ConfigurationTypeUtil.java b/platform/lang-api/src/com/intellij/execution/configurations/ConfigurationTypeUtil.java index 3508f97b2942..21a4f19fd6d9 100644 --- a/platform/lang-api/src/com/intellij/execution/configurations/ConfigurationTypeUtil.java +++ b/platform/lang-api/src/com/intellij/execution/configurations/ConfigurationTypeUtil.java @@ -28,7 +28,8 @@ public class ConfigurationTypeUtil { private ConfigurationTypeUtil() { } - public static T findConfigurationType(final Class configurationTypeClass) { + @NotNull + public static T findConfigurationType(@NotNull Class configurationTypeClass) { ConfigurationType[] types = Extensions.getExtensions(ConfigurationType.CONFIGURATION_TYPE_EP); for (ConfigurationType type : types) { if (configurationTypeClass.isInstance(type)) { @@ -36,9 +37,8 @@ public class ConfigurationTypeUtil { return (T)type; } } - assert false : Arrays.toString(types) + " loader: " + configurationTypeClass.getClassLoader() + - ", " + configurationTypeClass; - return null; + throw new AssertionError(Arrays.toString(types) + " loader: " + configurationTypeClass.getClassLoader() + + ", " + configurationTypeClass); } public static boolean equals(@NotNull ConfigurationType type1, @NotNull ConfigurationType type2) { diff --git a/plugins/junit/src/com/intellij/execution/junit/JUnitConfigurationType.java b/plugins/junit/src/com/intellij/execution/junit/JUnitConfigurationType.java index d82f1fb61faf..d9b5fc0f8787 100644 --- a/plugins/junit/src/com/intellij/execution/junit/JUnitConfigurationType.java +++ b/plugins/junit/src/com/intellij/execution/junit/JUnitConfigurationType.java @@ -18,16 +18,10 @@ package com.intellij.execution.junit; import com.intellij.execution.ExecutionBundle; import com.intellij.execution.configuration.ConfigurationFactoryEx; -import com.intellij.execution.configurations.ConfigurationFactory; -import com.intellij.execution.configurations.ConfigurationType; -import com.intellij.execution.configurations.ModuleBasedConfiguration; -import com.intellij.execution.configurations.RunConfiguration; +import com.intellij.execution.configurations.*; import com.intellij.icons.AllIcons; -import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; -import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -69,8 +63,8 @@ public class JUnitConfigurationType implements ConfigurationType { return "JUnit"; } - @Nullable + @NotNull public static JUnitConfigurationType getInstance() { - return ContainerUtil.findInstance(Extensions.getExtensions(CONFIGURATION_TYPE_EP), JUnitConfigurationType.class); + return ConfigurationTypeUtil.findConfigurationType(JUnitConfigurationType.class); } } diff --git a/python/src/com/jetbrains/python/run/PythonConfigurationType.java b/python/src/com/jetbrains/python/run/PythonConfigurationType.java index 6d2e26a9274c..0821452b3103 100644 --- a/python/src/com/jetbrains/python/run/PythonConfigurationType.java +++ b/python/src/com/jetbrains/python/run/PythonConfigurationType.java @@ -17,8 +17,8 @@ package com.jetbrains.python.run; import com.intellij.execution.configurations.ConfigurationFactory; import com.intellij.execution.configurations.ConfigurationType; +import com.intellij.execution.configurations.ConfigurationTypeUtil; import com.intellij.execution.configurations.RunConfiguration; -import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; import icons.PythonIcons; import org.jetbrains.annotations.NonNls; @@ -34,13 +34,7 @@ public class PythonConfigurationType implements ConfigurationType { private final PythonConfigurationFactory myFactory = new PythonConfigurationFactory(this); public static PythonConfigurationType getInstance() { - for(ConfigurationType configType: Extensions.getExtensions(CONFIGURATION_TYPE_EP)) { - if (configType instanceof PythonConfigurationType) { - return (PythonConfigurationType) configType; - } - } - assert false; - return null; + return ConfigurationTypeUtil.findConfigurationType(PythonConfigurationType.class); } private static class PythonConfigurationFactory extends PythonConfigurationFactoryBase {