diff --git a/plugins/gradle/src/META-INF/gradle-scala-integration.xml b/plugins/gradle/src/META-INF/gradle-scala-integration.xml deleted file mode 100644 index 707d61670f1a..000000000000 --- a/plugins/gradle/src/META-INF/gradle-scala-integration.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/plugins/gradle/src/META-INF/plugin.xml b/plugins/gradle/src/META-INF/plugin.xml index d944e82ed36f..72fa9e765c7d 100644 --- a/plugins/gradle/src/META-INF/plugin.xml +++ b/plugins/gradle/src/META-INF/plugin.xml @@ -41,7 +41,6 @@ org.intellij.groovy com.intellij.javaee org.jetbrains.idea.maven - org.intellij.scala @@ -63,6 +62,7 @@ + diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/integrations/scala/ScalaGradleProjectResolverExtension.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/integrations/scala/ScalaGradleProjectResolverExtension.java index 657d064e2886..1b5df1420a2d 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/integrations/scala/ScalaGradleProjectResolverExtension.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/integrations/scala/ScalaGradleProjectResolverExtension.java @@ -31,6 +31,7 @@ import org.jetbrains.plugins.gradle.model.data.ScalaCompileOptionsData; import org.jetbrains.plugins.gradle.model.data.ScalaModelData; import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension; import org.jetbrains.plugins.gradle.util.GradleConstants; +import org.jetbrains.plugins.gradle.util.GradleUtil; import java.util.Collections; import java.util.Set; @@ -43,8 +44,12 @@ import java.util.Set; public class ScalaGradleProjectResolverExtension extends AbstractProjectResolverExtension { private static final Logger LOG = Logger.getInstance(ScalaGradleProjectResolverExtension.class); + private static final boolean scalaPluginPresent = GradleUtil.isPluginPresent("org.intellij.scala"); + @Override public void populateModuleExtraModels(@NotNull IdeaModule gradleModule, @NotNull DataNode ideModule) { + if (!scalaPluginPresent) return; + ScalaModel scalaModel = resolverCtx.getExtraProject(gradleModule, ScalaModel.class); if (scalaModel != null) { ScalaModelData scalaModelData = create(scalaModel); @@ -57,7 +62,7 @@ public class ScalaGradleProjectResolverExtension extends AbstractProjectResolver @NotNull @Override public Set getExtraProjectModelClasses() { - return Collections.singleton(ScalaModel.class); + return scalaPluginPresent ? Collections.singleton(ScalaModel.class) : Collections.emptySet(); } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java index fb0ba0ac37e3..d5750d5987c8 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java @@ -1,7 +1,11 @@ package org.jetbrains.plugins.gradle.util; import com.intellij.ide.actions.OpenProjectFileChooserDescriptor; +import com.intellij.ide.plugins.IdeaPluginDescriptor; +import com.intellij.ide.plugins.PluginManager; +import com.intellij.ide.plugins.PluginManagerCore; import com.intellij.ide.util.PropertiesComponent; +import com.intellij.openapi.extensions.PluginId; import com.intellij.openapi.externalSystem.model.ExternalSystemException; import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil; import com.intellij.openapi.externalSystem.util.ExternalSystemConstants; @@ -243,4 +247,12 @@ public class GradleUtil { public static String createJvmArg(@NotNull String name, @NotNull String value) { return String.format(JVM_ARG_FORMAT, name, value); } + + public static boolean isPluginPresent(@NotNull String id) { + PluginId pluginId = PluginId.getRegisteredIds().get(id); + if (pluginId == null) return false; + IdeaPluginDescriptor pluginDescriptor = PluginManager.getPlugin(pluginId); + if (pluginDescriptor == null) return false; + return !PluginManagerCore.shouldSkipPlugin(pluginDescriptor); + } }