blob: 6b405fb13aa90e214deffb1ba46322644fbdafe8 [file] [log] [blame]
package org.jetbrains.plugins.gradle.config;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.gradle.settings.GradleSettings;
import org.jetbrains.plugins.gradle.service.GradleInstallationManager;
import java.io.File;
/**
* Encapsulates functionality of patching problems from the previous gradle integration releases.
* <p/>
* Thread-safe.
*
* @author Denis Zhdanov
* @since 3/19/12 3:48 PM
*/
public class GradlePatcher {
@SuppressWarnings("MethodMayBeStatic")
public void patch(@NotNull Project project) {
patchGradleHomeIfNecessary(project);
}
private static void patchGradleHomeIfNecessary(@NotNull Project project) {
// Old gradle integration didn't save gradle home at project-local settings (only default project has that information).
final Project defaultProject = ProjectManager.getInstance().getDefaultProject();
if (defaultProject.equals(project)) {
return;
}
// Propagate gradle settings from the current project to the default project if necessary.
// TODO den implement
// final GradleSettings defaultProjectSettings = GradleSettings.getInstance(defaultProject);
// final GradleSettings currentProjectSettings = GradleSettings.getInstance(project);
// String projectGradleHome = currentProjectSettings.getGradleHome();
// String defaultGradleHome = defaultProjectSettings.getGradleHome();
// if (StringUtil.isEmpty(projectGradleHome) || !StringUtil.isEmpty(defaultGradleHome)) {
// return;
// }
// GradleInstallationManager libraryManager = ServiceManager.getService(GradleInstallationManager.class);
// File autodetectedGradleHome = libraryManager.getAutodetectedGradleHome();
// // We don't want to store auto-detected value at the settings.
// if (autodetectedGradleHome == null || !FileUtil.filesEqual(autodetectedGradleHome, new File(projectGradleHome))) {
// GradleSettings.applyGradleHome(projectGradleHome, defaultProject);
// }
}
}