IDEA-110868 org.jetbrains.plugins.gradle.util.GradleInstallationManager.getGradleHomeFromPath() slows down editing

This commit is contained in:
Denis.Zhdanov
2013-07-23 11:58:50 +04:00
parent 5b519f4ad4
commit 39f39cc844
2 changed files with 9 additions and 4 deletions
@@ -6,6 +6,7 @@ import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.roots.OrderEnumerator;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.JarFileSystem;
import com.intellij.openapi.vfs.LocalFileSystem;
@@ -53,6 +54,7 @@ public class GradleInstallationManager {
}
@NotNull private final PlatformFacade myPlatformFacade;
@Nullable private Ref<File> myCachedGradleHomeFromPath;
public GradleInstallationManager(@NotNull PlatformFacade facade) {
myPlatformFacade = facade;
@@ -246,6 +248,10 @@ public class GradleInstallationManager {
*/
@Nullable
public File getGradleHomeFromPath() {
Ref<File> ref = myCachedGradleHomeFromPath;
if (ref != null) {
return ref.get();
}
String path = System.getenv("PATH");
if (path == null) {
return null;
@@ -260,6 +266,7 @@ public class GradleInstallationManager {
if (startFile.isFile()) {
File candidate = dir.getParentFile();
if (isGradleSdkHome(candidate)) {
myCachedGradleHomeFromPath = new Ref<File>(candidate);
return candidate;
}
}
@@ -4,6 +4,8 @@ import com.intellij.openapi.externalSystem.model.ProjectSystemId;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import java.util.concurrent.TimeUnit;
/**
* Holds object representation of icons used at the <code>Gradle</code> plugin.
*
@@ -21,10 +23,6 @@ public class GradleConstants {
public static final String SYSTEM_DIRECTORY_PATH_KEY = "GRADLE_USER_HOME";
@NonNls public static final String TOOL_WINDOW_TOOLBAR_PLACE = "GRADLE_SYNC_CHANGES_TOOLBAR";
@NonNls public static final String TASKS_LIST_PLACE = "TASKS_LIST_PLACE";
@NonNls public static final String TASKS_CONTEXT_MENU_PLACE = "GRADLE_TASKS_CONTEXT_MENU_PLACE";
@NonNls public static final String ACTION_GROUP_TASKS = "Gradle.TasksGroup";
@NonNls public static final String HELP_TOPIC_TOOL_WINDOW = "reference.toolwindows.gradle";