diff options
Diffstat (limited to 'org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/UpdateConfigurationJob.java')
-rw-r--r-- | org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/UpdateConfigurationJob.java | 53 |
1 files changed, 26 insertions, 27 deletions
diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/UpdateConfigurationJob.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/UpdateConfigurationJob.java index a630b598..b62ab048 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/UpdateConfigurationJob.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/UpdateConfigurationJob.java @@ -28,12 +28,13 @@ import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.progress.IProgressConstants; import org.eclipse.m2e.core.MavenPlugin; import org.eclipse.m2e.core.core.IMavenConstants; import org.eclipse.m2e.core.project.IMavenProjectFacade; +import org.eclipse.m2e.core.project.IProjectConfigurationManager; +import org.eclipse.m2e.core.project.MavenUpdateRequest; import org.eclipse.m2e.core.ui.internal.actions.OpenMavenConsoleAction; import org.eclipse.m2e.core.ui.internal.util.M2EUIUtils; @@ -41,29 +42,28 @@ import org.eclipse.m2e.core.ui.internal.util.M2EUIUtils; public class UpdateConfigurationJob extends WorkspaceJob { private static final Logger log = LoggerFactory.getLogger(UpdateConfigurationJob.class); - private IProject[] projects; + private final IProject[] projects; - private Shell shell; + private final boolean offline; + + private final boolean forceUpdate; public UpdateConfigurationJob(IProject[] projects) { - this(projects, null); + this(projects, MavenPlugin.getMavenConfiguration().isOffline(), false /*forceUpdate*/); } - public UpdateConfigurationJob(IProject[] projects, Shell shell) { - this(shell); + public UpdateConfigurationJob(IProject[] projects, boolean offline, boolean forceUpdate) { + super(Messages.UpdateSourcesAction_job_update_conf); this.projects = projects; - } + this.offline = offline; + this.forceUpdate = forceUpdate; - private UpdateConfigurationJob(Shell shell) { - super(Messages.UpdateSourcesAction_job_update_conf); - this.shell = shell; setRule(MavenPlugin.getProjectConfigurationManager().getRule()); } - /* (non-Javadoc) - * @see org.eclipse.core.resources.WorkspaceJob#runInWorkspace(org.eclipse.core.runtime.IProgressMonitor) - */ public IStatus runInWorkspace(IProgressMonitor monitor) { + IProjectConfigurationManager configurationManager = MavenPlugin.getProjectConfigurationManager(); + setProperty(IProgressConstants.ACTION_PROPERTY, new OpenMavenConsoleAction()); monitor.beginTask(getName(), projects.length); @@ -82,23 +82,23 @@ public class UpdateConfigurationJob extends WorkspaceJob { monitor.subTask(project.getName()); IMavenProjectFacade projectFacade = MavenPlugin.getMavenProjectRegistry().create(project, monitor); if(projectFacade != null) { - try { - MavenPlugin.getProjectConfigurationManager().updateProjectConfiguration(project, // - new SubProgressMonitor(monitor, 1)); - } catch(CoreException ex) { - if(status == null) { + try { + MavenUpdateRequest request = new MavenUpdateRequest(project, offline, forceUpdate); + configurationManager.updateProjectConfiguration(request, new SubProgressMonitor(monitor, 1)); + } catch(CoreException ex) { + if(status == null) { + status = new MultiStatus(IMavenConstants.PLUGIN_ID, IStatus.ERROR, // + Messages.UpdateSourcesAction_error_cannot_update, null); + } + status.add(ex.getStatus()); + updateErrors.put(project.getName(), ex); + } catch(IllegalArgumentException e) { status = new MultiStatus(IMavenConstants.PLUGIN_ID, IStatus.ERROR, // Messages.UpdateSourcesAction_error_cannot_update, null); + updateErrors.put(project.getName(), e); } - status.add(ex.getStatus()); - updateErrors.put(project.getName(), ex); - } catch(IllegalArgumentException e) { - status = new MultiStatus(IMavenConstants.PLUGIN_ID, IStatus.ERROR, // - Messages.UpdateSourcesAction_error_cannot_update, null); - updateErrors.put(project.getName(), e); } } - } if(updateErrors.size() > 0) { handleErrors(updateErrors); } @@ -112,9 +112,8 @@ public class UpdateConfigurationJob extends WorkspaceJob { final Display display = Display.getDefault(); if(display != null) { display.asyncExec(new Runnable() { - public void run() { - M2EUIUtils.showErrorsForProjectsDialog(shell != null ? shell : display.getActiveShell(), + M2EUIUtils.showErrorsForProjectsDialog(display.getActiveShell(), Messages.UpdateSourcesAction_error_title, Messages.UpdateSourcesAction_error_message, updateErrors); } }); |