IDEA-92876 Gradle plugin causes -javaagent to appear when running my application

Don't setup groovy hot swapper for gradle files
This commit is contained in:
Denis.Zhdanov
2012-12-17 14:09:34 +04:00
parent 7a1518c8a4
commit 5a69b29a69
3 changed files with 24 additions and 1 deletions
@@ -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);
}
}
@@ -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<String> extensions = new ArrayList<String>();
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()) {
@@ -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()) {