From 5a69b29a69f05d04e6cb69f5fc1847e929205797 Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Mon, 17 Dec 2012 14:08:32 +0400 Subject: [PATCH] IDEA-92876 Gradle plugin causes -javaagent to appear when running my application Don't setup groovy hot swapper for gradle files --- .../gradle/config/GradleScriptTypeDetector.java | 5 +++++ .../groovy/debugger/GroovyHotSwapper.java | 16 +++++++++++++++- .../extensions/GroovyScriptTypeDetector.java | 4 ++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleScriptTypeDetector.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleScriptTypeDetector.java index a7347db5c694..6ee07aac12c3 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleScriptTypeDetector.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleScriptTypeDetector.java @@ -34,4 +34,9 @@ public class GradleScriptTypeDetector extends GroovyScriptTypeDetector { public boolean isSpecificScriptFile(@NotNull GroovyFile script) { return GradleConstants.EXTENSION.equals(script.getViewProvider().getVirtualFile().getExtension()); } + + @Override + public boolean isHowSwapAware(@NotNull String extension) { + return !GradleConstants.EXTENSION.equals(extension); + } } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java index c4e8fad5da1f..e17f6317b303 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java @@ -21,13 +21,16 @@ import com.intellij.pom.java.LanguageLevel; import com.intellij.psi.search.FilenameIndex; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.util.PathUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.GroovyFileTypeLoader; import org.jetbrains.plugins.groovy.debugger.filters.GroovyDebuggerSettings; +import org.jetbrains.plugins.groovy.extensions.GroovyScriptTypeDetector; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.jar.Attributes; import java.util.regex.Pattern; @@ -54,7 +57,9 @@ public class GroovyHotSwapper extends JavaProgramPatcher { private static boolean containsGroovyClasses(Project project) { final List extensions = new ArrayList(); for (String extension : GroovyFileTypeLoader.getAllGroovyExtensions()) { - extensions.add("." + extension); + if (isHotSwapAware(extension)) { + extensions.add("." + extension); + } } final GlobalSearchScope scope = GlobalSearchScope.projectScope(project); for (String fileName : FilenameIndex.getAllFilenames(project)) { @@ -67,6 +72,15 @@ public class GroovyHotSwapper extends JavaProgramPatcher { return false; } + private static boolean isHotSwapAware(@NotNull String extension) { + for (GroovyScriptTypeDetector ep : GroovyScriptTypeDetector.EP_NAME.getExtensions()) { + if (!ep.isHowSwapAware(extension)) { + return false; + } + } + return true; + } + private static boolean hasSpringLoadedReloader(JavaParameters javaParameters) { for (String param : javaParameters.getVMParametersList().getParameters()) { if (SPRING_LOADED_PATTERN.matcher(param).matches()) { diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/extensions/GroovyScriptTypeDetector.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/extensions/GroovyScriptTypeDetector.java index 40b44c2fd854..07e25ef276b9 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/extensions/GroovyScriptTypeDetector.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/extensions/GroovyScriptTypeDetector.java @@ -53,6 +53,10 @@ public abstract class GroovyScriptTypeDetector { public abstract boolean isSpecificScriptFile(@NotNull GroovyFile script); + public boolean isHowSwapAware(@NotNull String extension) { + return true; + } + @NotNull public static GroovyScriptType getScriptType(@NotNull GroovyFile script) { for (GroovyScriptTypeDetector detector : EP_NAME.getExtensions()) {