Skip to content

Commit

Permalink
Reopening a gradle project resets its gradle version
Browse files Browse the repository at this point in the history
Signed-off-by: Snjezana Peco <[email protected]>
  • Loading branch information
snjeza committed May 16, 2019
1 parent a4a5766 commit 9005774
Showing 1 changed file with 56 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,18 @@
import org.eclipse.buildship.core.SynchronizationResult;
import org.eclipse.buildship.core.WrapperGradleDistribution;
import org.eclipse.buildship.core.internal.CorePlugin;
import org.eclipse.buildship.core.internal.configuration.ConfigurationManager;
import org.eclipse.buildship.core.internal.configuration.WorkspaceConfiguration;
import org.eclipse.buildship.core.internal.preferences.PersistentModel;
import org.eclipse.buildship.core.internal.util.gradle.GradleVersion;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jdt.ls.core.internal.AbstractProjectImporter;
import org.eclipse.jdt.ls.core.internal.JavaLanguageServerPlugin;
import org.eclipse.jdt.ls.core.internal.ProjectUtils;
Expand Down Expand Up @@ -169,11 +175,61 @@ protected void startSynchronization(Path rootFolder, IProgressMonitor monitor) {
.javaHome(javaHome)
.gradleUserHome(gradleUserHome)
.build();
if (overrideWorkspaceConfiguration) {
WorkspaceConfiguration workspaceConfig = new WorkspaceConfiguration(distribution,
gradleUserHome,
javaHome,
build.isOfflineMode(),
build.isBuildScansEnabled(),
build.isAutoSync(),
build.getArguments(),
build.getJvmArguments(),
build.isShowConsoleView(),
build.isShowExecutionsView());
CorePlugin.configurationManager().saveWorkspaceConfiguration(workspaceConfig);
}
// @formatter:on
SynchronizationResult result = GradleCore.getWorkspace().createBuild(build).synchronize(monitor);
if (!result.getStatus().isOK()) {
JavaLanguageServerPlugin.log(result.getStatus());
}
if (projects.size() == 0 && overrideWorkspaceConfiguration) {
Job job = new Job("Check Gradle projects...") {

@Override
protected IStatus run(IProgressMonitor monitor) {
try {
getJobManager().join(CorePlugin.GRADLE_JOB_FAMILY, monitor);
} catch (OperationCanceledException | InterruptedException e) {
JavaLanguageServerPlugin.logException(e.getMessage(), e);
}
List<IProject> gradleProjects = ProjectUtils.getGradleProjects();
ConfigurationManager manager = CorePlugin.configurationManager();
for (IProject project : gradleProjects) {
org.eclipse.buildship.core.internal.configuration.BuildConfiguration currentConfig = manager.loadProjectConfiguration(project).getBuildConfiguration();
if (currentConfig.isOverrideWorkspaceSettings() != overrideWorkspaceConfiguration) {
// @formatter:off
org.eclipse.buildship.core.internal.configuration.BuildConfiguration updatedConfig = manager.createBuildConfiguration(currentConfig.getRootProjectDirectory(),
overrideWorkspaceConfiguration,
distribution,
gradleUserHome,
javaHome,
build.isBuildScansEnabled(),
build.isOfflineMode(),
build.isAutoSync(),
build.getArguments(),
build.getJvmArguments(),
build.isShowConsoleView(),
build.isShowExecutionsView());
// @formatter:on
manager.saveBuildConfiguration(updatedConfig);
}
}
return Status.OK_STATUS;
}
};
job.schedule();
}
}
}

Expand Down

0 comments on commit 9005774

Please sign in to comment.