Gradle: prevent old settings migration for newly created projects IJP-55

This commit is contained in:
Vladislav.Soroka
2019-01-20 08:40:50 +03:00
parent 7980076b39
commit ef1cc1f082
2 changed files with 23 additions and 1 deletions
@@ -49,13 +49,16 @@ import com.intellij.psi.PsiManager;
import com.intellij.util.ThreeState;
import com.intellij.util.containers.ContainerUtil;
import org.gradle.util.GradleVersion;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.gradle.frameworkSupport.BuildScriptDataBuilder;
import org.jetbrains.plugins.gradle.frameworkSupport.KotlinBuildScriptDataBuilder;
import org.jetbrains.plugins.gradle.service.settings.GradleProjectSettingsControl;
import org.jetbrains.plugins.gradle.settings.DefaultGradleProjectSettings;
import org.jetbrains.plugins.gradle.settings.DistributionType;
import org.jetbrains.plugins.gradle.settings.GradleProjectSettings;
import org.jetbrains.plugins.gradle.settings.TestRunner;
import org.jetbrains.plugins.gradle.util.GradleConstants;
import java.io.File;
@@ -226,6 +229,8 @@ public class GradleModuleBuilder extends AbstractExternalModuleBuilder<GradlePro
final Project project = module.getProject();
if (myWizardContext.isCreatingNewProject()) {
preventOldSettingsMigration(project);
getExternalProjectSettings().setExternalProjectPath(rootProjectPath);
AbstractExternalSystemSettings settings = ExternalSystemApiUtil.getSettings(project, GradleConstants.SYSTEM_ID);
project.putUserData(ExternalSystemDataKeys.NEWLY_CREATED_PROJECT, Boolean.TRUE);
@@ -265,6 +270,15 @@ public class GradleModuleBuilder extends AbstractExternalModuleBuilder<GradlePro
}
}
@ApiStatus.ScheduledForRemoval(inVersion = "2019.2")
private static void preventOldSettingsMigration(Project project) {
DefaultGradleProjectSettings.MyState state = new DefaultGradleProjectSettings.MyState();
state.isMigrated = true;
state.delegatedBuild = true;
state.testRunner = TestRunner.GRADLE;
DefaultGradleProjectSettings.getInstance(project).loadState(state);
}
@Override
public ModuleWizardStep[] createWizardSteps(@NotNull WizardContext wizardContext, @NotNull ModulesProvider modulesProvider) {
myWizardContext = wizardContext;
@@ -91,9 +91,17 @@ public class DefaultGradleProjectSettings implements PersistentStateComponent<De
return ServiceManager.getService(project, DefaultGradleProjectSettings.class);
}
static class MyState {
/**
* Do not use the class directly. Consider to use {@link GradleSettingsService} or {@link GradleProjectSettings}
*/
@ApiStatus.Experimental
public static class MyState {
public TestRunner testRunner = TestRunner.PLATFORM;
public boolean delegatedBuild;
/**
* @deprecated Do not use. Only for settings migration purposes.
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "2019.2")
public boolean isMigrated;
}