diff options
14 files changed, 176 insertions, 257 deletions
diff --git a/org.eclipse.m2e.core.ui/plugin.properties b/org.eclipse.m2e.core.ui/plugin.properties index aaa02534..8836c143 100644 --- a/org.eclipse.m2e.core.ui/plugin.properties +++ b/org.eclipse.m2e.core.ui/plugin.properties @@ -26,8 +26,7 @@ m2.popup.project.update-sources.label=Update Source Folders m2.popup.ModuleProjectWizardAction=New &Maven Module Project m2.popup.AddPluginAction=Add &Plugin m2.popup.AddDependencyAction=Add &Dependency -m2.popup.UpdateConfigurationAction=Update Project &Configuration... -m2.popup.RefreshMavenModelsAction=&Update Dependencies... +m2.popup.UpdateMavenProjectAction=&Update Project... m2.popup.OpenUrlAction.openCiPage=Open Continuous Integration m2.popup.OpenUrlAction.openScmPage=Open Source Control m2.popup.OpenUrlAction.openIssuesPage=Open Issue Tracker diff --git a/org.eclipse.m2e.core.ui/plugin.xml b/org.eclipse.m2e.core.ui/plugin.xml index 82708f87..22f1b929 100644 --- a/org.eclipse.m2e.core.ui/plugin.xml +++ b/org.eclipse.m2e.core.ui/plugin.xml @@ -110,9 +110,9 @@ <objectContribution id="org.eclipse.m2e.updateConfigurationAction" objectClass="org.eclipse.core.resources.IProject" adaptable="true"> - <action id="org.eclipse.m2e.updateConfigurationAction" - class="org.eclipse.m2e.core.ui.internal.actions.UpdateConfigurationAction" - label="%m2.popup.UpdateConfigurationAction" + <action id="org.eclipse.m2e.updateProjectAction" + class="org.eclipse.m2e.core.ui.internal.actions.UpdateMavenProjectAction" + label="%m2.popup.UpdateMavenProjectAction" style="push" icon="icons/update_dependencies.gif" menubarPath="org.eclipse.m2e.core.mavenMenu/update" @@ -125,23 +125,6 @@ </visibility> </objectContribution> - <objectContribution id="org.eclipse.m2e.refreshMavenModelsAction" - objectClass="org.eclipse.core.resources.IProject" - adaptable="true"> - <action id="org.eclipse.m2e.refreshMavenModelsAction" - class="org.eclipse.m2e.core.ui.internal.actions.UpdateDependenciesAction" - label="%m2.popup.RefreshMavenModelsAction" - style="push" - menubarPath="org.eclipse.m2e.core.mavenMenu/update" - enablesFor="+"/> - <visibility> - <and> - <objectState name="open" value="true"/> - <objectState name="nature" value="org.eclipse.m2e.core.maven2Nature"/> - </and> - </visibility> - </objectContribution> - <objectContribution id="org.eclipse.m2e.disableAction" objectClass="org.eclipse.core.resources.IProject" adaptable="true"> @@ -263,19 +246,8 @@ adaptable="true" objectClass="org.eclipse.ui.IWorkingSet"> <action id="org.eclipse.m2e.updateConfigurationAction" - class="org.eclipse.m2e.core.ui.internal.actions.UpdateConfigurationAction" - label="%m2.popup.UpdateConfigurationAction" - style="push" - menubarPath="org.eclipse.m2e.core.workingSetMenu/update" - enablesFor="+"/> - </objectContribution> - - <objectContribution id="org.eclipse.m2e.workingSet.refreshMavenModelsAction" - adaptable="true" - objectClass="org.eclipse.ui.IWorkingSet"> - <action id="org.eclipse.m2e.refreshMavenModelsAction" - class="org.eclipse.m2e.core.ui.internal.actions.UpdateDependenciesAction" - label="%m2.popup.RefreshMavenModelsAction" + class="org.eclipse.m2e.core.ui.internal.actions.UpdateMavenProjectAction" + label="%m2.popup.UpdateMavenProjectAction" style="push" menubarPath="org.eclipse.m2e.core.workingSetMenu/update" enablesFor="+"/> diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/Messages.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/Messages.java index 98d72897..bb63cebf 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/Messages.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/Messages.java @@ -514,28 +514,6 @@ public class Messages extends NLS { public static String MavenRepositoryView_update_one; - public static String MavenSearchPage_btnBrowse; - - public static String MavenSearchPage_btnSelect; - - public static String MavenSearchPage_btnUnselect; - - public static String MavenSearchPage_lblArtifactid; - - public static String MavenSearchPage_lblClass; - - public static String MavenSearchPage_lblGroupid; - - public static String MavenSearchPage_lblPackaging; - - public static String MavenSearchPage_lblRepos; - - public static String MavenSearchPage_lblSha; - - public static String MavenSearchPage_lblVersion; - - public static String MavenSearchPage_separator; - public static String MavenSettingsPreferencePage_btnBrowse; public static String MavenSettingsPreferencePage_btnUpdate; @@ -616,8 +594,6 @@ public class Messages extends NLS { public static String UpdateDepenciesDialog_deselectTree; - public static String UpdateDepenciesDialog_dialogMessage; - public static String UpdateDepenciesDialog_expandAll; public static String UpdateDepenciesDialog_forceUpdate; @@ -628,11 +604,9 @@ public class Messages extends NLS { public static String UpdateDepenciesDialog_selectTree; - public static String UpdateDepenciesDialog_title; - - public static String UpdateConfigurationDialog_title; - - public static String UpdateConfigurationDialog_dialogMessage; + public static String UpdateMavenProjectDialog_title; + + public static String UpdateMavenProjectDialog_dialogMessage; public static String UpdateSourcesAction_error_cannot_update; @@ -836,6 +810,12 @@ public class Messages extends NLS { public static String ProjectRepositoriesNode_name; + public static String UpdateMavenProjectDialog_btnCheckButton_text; + + public static String UpdateMavenProjectDialog_btnUpdateProjectConfiguration_text; + + public static String UpdateMavenProjectDialog_btnCleanFullBuild_text; + static { // initialize resource bundle NLS.initializeMessages(BUNDLE_NAME, Messages.class); 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/UpdateMavenProjectJob.java index a517aa21..b40e869e 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/UpdateMavenProjectJob.java @@ -18,6 +18,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IncrementalProjectBuilder; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.resources.WorkspaceJob; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; @@ -31,38 +33,49 @@ import org.eclipse.swt.widgets.Display; import org.eclipse.ui.progress.IProgressConstants; import org.eclipse.m2e.core.MavenPlugin; -import org.eclipse.m2e.core.internal.IMavenConstants; -import org.eclipse.m2e.core.project.IMavenProjectFacade; +import org.eclipse.m2e.core.project.IMavenProjectRegistry; 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; -public class UpdateConfigurationJob extends WorkspaceJob { - private static final Logger log = LoggerFactory.getLogger(UpdateConfigurationJob.class); +public class UpdateMavenProjectJob extends WorkspaceJob { + private static final Logger log = LoggerFactory.getLogger(UpdateMavenProjectJob.class); private final IProject[] projects; private final boolean offline; - private final boolean forceUpdate; + private final boolean forceUpdateDependencies; - public UpdateConfigurationJob(IProject[] projects) { - this(projects, MavenPlugin.getMavenConfiguration().isOffline(), false /*forceUpdate*/); + private final boolean updateConfiguration; + + private final boolean rebuild; + + public UpdateMavenProjectJob(IProject[] projects) { + this(projects, MavenPlugin.getMavenConfiguration().isOffline(), false /*forceUpdateDependencies*/, + true /*updateConfiguration*/, true /*rebuild*/); } - public UpdateConfigurationJob(IProject[] projects, boolean offline, boolean forceUpdate) { + public UpdateMavenProjectJob(IProject[] projects, boolean offline, boolean forceUpdateDependencies, + boolean updateConfiguration, boolean rebuild) { + super(Messages.UpdateSourcesAction_job_update_conf); + this.projects = projects; this.offline = offline; - this.forceUpdate = forceUpdate; + this.forceUpdateDependencies = forceUpdateDependencies; + this.updateConfiguration = updateConfiguration; + this.rebuild = rebuild; setRule(MavenPlugin.getProjectConfigurationManager().getRule()); } public IStatus runInWorkspace(IProgressMonitor monitor) { IProjectConfigurationManager configurationManager = MavenPlugin.getProjectConfigurationManager(); + IMavenProjectRegistry projectRegistry = MavenPlugin.getMavenProjectRegistry(); + boolean autoBuilding = ResourcesPlugin.getWorkspace().isAutoBuilding(); setProperty(IProgressConstants.ACTION_PROPERTY, new OpenMavenConsoleAction()); monitor.beginTask(getName(), projects.length); @@ -80,25 +93,37 @@ public class UpdateConfigurationJob extends WorkspaceJob { } monitor.subTask(project.getName()); - IMavenProjectFacade projectFacade = MavenPlugin.getMavenProjectRegistry().create(project, monitor); - if(projectFacade != 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); + SubProgressMonitor submonitor = new SubProgressMonitor(monitor, 1, SubProgressMonitor.SUPPRESS_SUBTASK_LABEL); + + try { + MavenUpdateRequest request = new MavenUpdateRequest(project, offline, forceUpdateDependencies); + if(updateConfiguration) { + configurationManager.updateProjectConfiguration(request, submonitor); + } else { + projectRegistry.refresh(request, submonitor); + } + // only rebuild projects that were successfully updated + if(rebuild) { + project.build(IncrementalProjectBuilder.CLEAN_BUILD, submonitor); + if(autoBuilding) { + // TODO this is not enough, in most cases we need to re-run the build several times + project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, submonitor); } - status.add(ex.getStatus()); - updateErrors.put(project.getName(), ex); - } catch(IllegalArgumentException e) { - status = new MultiStatus(IMavenConstants.PLUGIN_ID, IStatus.ERROR, // + } + } catch(CoreException ex) { + if(status == null) { + status = new MultiStatus(M2EUIPluginActivator.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(M2EUIPluginActivator.PLUGIN_ID, IStatus.ERROR, // + Messages.UpdateSourcesAction_error_cannot_update, null); + updateErrors.put(project.getName(), e); } } + if(updateErrors.size() > 0) { handleErrors(updateErrors); } @@ -113,10 +138,10 @@ public class UpdateConfigurationJob extends WorkspaceJob { if(display != null) { display.asyncExec(new Runnable() { public void run() { - M2EUIUtils.showErrorsForProjectsDialog(display.getActiveShell(), - Messages.UpdateSourcesAction_error_title, Messages.UpdateSourcesAction_error_message, updateErrors); + M2EUIUtils.showErrorsForProjectsDialog(display.getActiveShell(), Messages.UpdateSourcesAction_error_title, + Messages.UpdateSourcesAction_error_message, updateErrors); } }); } } -}
\ No newline at end of file +} diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/MavenProjectActionSupport.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/MavenProjectActionSupport.java index 6dc049a2..514c0273 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/MavenProjectActionSupport.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/MavenProjectActionSupport.java @@ -30,7 +30,7 @@ import org.eclipse.m2e.core.internal.IMavenConstants; public abstract class MavenProjectActionSupport extends MavenActionSupport implements IWorkbenchWindowActionDelegate { - private static final Logger log = LoggerFactory.getLogger(UpdateDependenciesAction.class); + private static final Logger log = LoggerFactory.getLogger(MavenProjectActionSupport.class); protected IProject[] getProjects() { ArrayList<IProject> projectList = new ArrayList<IProject>(); diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/UpdateDependenciesAction.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/UpdateDependenciesAction.java deleted file mode 100644 index 9199c789..00000000 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/UpdateDependenciesAction.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2010 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ - -package org.eclipse.m2e.core.ui.internal.actions; - -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.Window; - -import org.eclipse.m2e.core.MavenPlugin; -import org.eclipse.m2e.core.project.IMavenProjectRegistry; -import org.eclipse.m2e.core.project.MavenUpdateRequest; -import org.eclipse.m2e.core.ui.internal.dialogs.UpdateDependenciesDialog; - - -public class UpdateDependenciesAction extends MavenProjectActionSupport { - - public static final String ID = "org.eclipse.m2e.refreshMavenModelsAction"; //$NON-NLS-1$ - - public UpdateDependenciesAction() { - } - - public void run(IAction action) { - UpdateDependenciesDialog dialog = new UpdateDependenciesDialog(getShell(), getProjects()); - if(dialog.open() == Window.OK) { - IMavenProjectRegistry projectManager = MavenPlugin.getMavenProjectRegistry(); - projectManager.refresh(new MavenUpdateRequest(dialog.getSelectedProjects(), // - dialog.isOffline(), dialog.isForceUpdate())); - } - } - -} diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/UpdateConfigurationAction.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/UpdateMavenProjectAction.java index 21cbe72b..12c317f1 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/UpdateConfigurationAction.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/UpdateMavenProjectAction.java @@ -14,21 +14,22 @@ package org.eclipse.m2e.core.ui.internal.actions; import org.eclipse.jface.action.IAction; import org.eclipse.jface.window.Window; -import org.eclipse.m2e.core.ui.internal.UpdateConfigurationJob; -import org.eclipse.m2e.core.ui.internal.dialogs.UpdateConfigurationDialog; +import org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob; +import org.eclipse.m2e.core.ui.internal.dialogs.UpdateMavenProjectsDialog; -public class UpdateConfigurationAction extends MavenProjectActionSupport { +public class UpdateMavenProjectAction extends MavenProjectActionSupport { public static final String ID = "org.eclipse.m2e.updateConfigurationAction"; //$NON-NLS-1$ - public UpdateConfigurationAction() { + public UpdateMavenProjectAction() { } public void run(IAction action) { - UpdateConfigurationDialog dialog = new UpdateConfigurationDialog(getShell(), getProjects()); + UpdateMavenProjectsDialog dialog = new UpdateMavenProjectsDialog(getShell(), getProjects()); if(dialog.open() == Window.OK) { - new UpdateConfigurationJob(dialog.getSelectedProjects(), dialog.isOffline(), dialog.isForceUpdate()).schedule(); + new UpdateMavenProjectJob(dialog.getSelectedProjects(), dialog.isOffline(), dialog.isForceUpdateDependencies(), + dialog.isUpdateConfiguration(), dialog.isRebuild()).schedule(); } } diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/dialogs/UpdateConfigurationDialog.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/dialogs/UpdateConfigurationDialog.java deleted file mode 100644 index a6cc2579..00000000 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/dialogs/UpdateConfigurationDialog.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.m2e.core.ui.internal.dialogs; - -import org.eclipse.core.resources.IProject; -import org.eclipse.swt.widgets.Shell; - -import org.eclipse.m2e.core.ui.internal.Messages; - -/** - * Update Maven Project Configuration Dialog - * - * @author Fred Bricon - */ -public class UpdateConfigurationDialog extends SelectMavenProjectsDialog { - - /** - * @param parentShell - * @param initialSelection - */ - public UpdateConfigurationDialog(Shell parentShell, IProject[] initialSelection) { - super(parentShell, initialSelection, Messages.UpdateConfigurationDialog_title, Messages.UpdateConfigurationDialog_dialogMessage); - } - -} diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/dialogs/UpdateDependenciesDialog.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/dialogs/UpdateDependenciesDialog.java deleted file mode 100644 index 489035c2..00000000 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/dialogs/UpdateDependenciesDialog.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.m2e.core.ui.internal.dialogs; - -import org.eclipse.core.resources.IProject; -import org.eclipse.swt.widgets.Shell; - -import org.eclipse.m2e.core.ui.internal.Messages; - -/** - * Update Maven Project Dependencies Dialog - * - * @author Fred Bricon - */ -public class UpdateDependenciesDialog extends SelectMavenProjectsDialog { - - /** - * @param parentShell - * @param initialSelection - */ - public UpdateDependenciesDialog(Shell parentShell, IProject[] initialSelection) { - super(parentShell, initialSelection, Messages.UpdateDepenciesDialog_title, Messages.UpdateDepenciesDialog_dialogMessage); - } - -} diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/dialogs/SelectMavenProjectsDialog.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/dialogs/UpdateMavenProjectsDialog.java index f8a6c846..a5ba0b6d 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/dialogs/SelectMavenProjectsDialog.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/dialogs/UpdateMavenProjectsDialog.java @@ -8,6 +8,7 @@ * Contributors: * Sonatype, Inc. - initial API and implementation *******************************************************************************/ + package org.eclipse.m2e.core.ui.internal.dialogs; import java.io.File; @@ -60,9 +61,10 @@ import org.eclipse.m2e.core.internal.IMavenConstants; import org.eclipse.m2e.core.ui.internal.MavenImages; import org.eclipse.m2e.core.ui.internal.Messages; -public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuListener { - private static final Logger log = LoggerFactory.getLogger(SelectMavenProjectsDialog.class); +public class UpdateMavenProjectsDialog extends TitleAreaDialog implements IMenuListener { + + private static final Logger log = LoggerFactory.getLogger(UpdateMavenProjectsDialog.class); private static final String SEPARATOR = System.getProperty("file.separator"); //$NON-NLS-1$ @@ -82,19 +84,31 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL private boolean offlineMode; - private boolean forceUpdate; - + /** + * Force update of snapshots and releases from remote repositories + */ + private boolean forceUpdateDependencies; + + /** + * Update project configuration + */ + private boolean updateConfiguration; + + /** + * Perform full/clean build after project update + */ + private boolean rebuild; + protected String dialogTitle; - + protected String dialogMessage; - - public SelectMavenProjectsDialog(Shell parentShell, IProject[] initialSelection, String title, String dialogMessage) { + + public UpdateMavenProjectsDialog(Shell parentShell, IProject[] initialSelection) { super(parentShell); this.initialSelection = initialSelection; - this.dialogTitle = title; - this.dialogMessage = dialogMessage; + this.dialogTitle = Messages.UpdateMavenProjectDialog_title; + this.dialogMessage = Messages.UpdateMavenProjectDialog_dialogMessage; offlineMode = MavenPlugin.getMavenConfiguration().isOffline(); - forceUpdate = false; } @Override @@ -105,6 +119,7 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL /** * Create contents of the dialog. + * * @param parent */ @Override @@ -112,7 +127,7 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL protected Control createDialogArea(Composite parent) { Composite area = (Composite) super.createDialogArea(parent); Composite container = new Composite(area, SWT.NONE); - + GridLayout layout = new GridLayout(2, false); layout.marginLeft = 12; container.setLayout(layout); @@ -207,12 +222,16 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL } Tree tree = codebaseViewer.getTree(); - GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 4); + GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); gd.heightHint = 300; gd.widthHint = 300; tree.setLayoutData(gd); - Button selectAllBtn = new Button(container, SWT.NONE); + Composite selectionActionComposite = new Composite(container, SWT.NONE); + selectionActionComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); + selectionActionComposite.setLayout(new GridLayout(1, false)); + + Button selectAllBtn = new Button(selectionActionComposite, SWT.NONE); selectAllBtn.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); selectAllBtn.setText(Messages.UpdateDepenciesDialog_selectAll); selectAllBtn.addSelectionListener(new SelectionListener() { @@ -227,7 +246,7 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL } }); - Button deselectAllBtn = new Button(container, SWT.NONE); + Button deselectAllBtn = new Button(selectionActionComposite, SWT.NONE); deselectAllBtn.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1)); deselectAllBtn.setText(Messages.UpdateDepenciesDialog_deselectAll); deselectAllBtn.addSelectionListener(new SelectionListener() { @@ -242,8 +261,8 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL } }); - Button expandAllBtn = new Button(container, SWT.NONE); - expandAllBtn.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, false, true, 1, 1)); + Button expandAllBtn = new Button(selectionActionComposite, SWT.NONE); + expandAllBtn.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, false, false, 1, 1)); expandAllBtn.setText(Messages.UpdateDepenciesDialog_expandAll); expandAllBtn.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { @@ -254,7 +273,7 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL } }); - Button collapseAllBtn = new Button(container, SWT.NONE); + Button collapseAllBtn = new Button(selectionActionComposite, SWT.NONE); collapseAllBtn.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, false, false, 1, 1)); collapseAllBtn.setText(Messages.UpdateDepenciesDialog_collapseAll); collapseAllBtn.addSelectionListener(new SelectionListener() { @@ -266,15 +285,38 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL } }); - offlineModeBtn = new Button(container, SWT.CHECK); + Composite optionsComposite = new Composite(container, SWT.NONE); + optionsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 2, 1)); + optionsComposite.setLayout(new GridLayout(2, false)); + + offlineModeBtn = new Button(optionsComposite, SWT.CHECK); + offlineModeBtn.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); offlineModeBtn.setText(Messages.UpdateDepenciesDialog_offline); - offlineModeBtn.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1)); offlineModeBtn.setSelection(offlineMode); - forceUpdateBtn = new Button(container, SWT.CHECK); + Button btnCheckButton = new Button(optionsComposite, SWT.CHECK); + btnCheckButton.setEnabled(false); + btnCheckButton.setSelection(true); + btnCheckButton.setText(Messages.UpdateMavenProjectDialog_btnCheckButton_text); + new Label(optionsComposite, SWT.NONE); + + forceUpdateBtn = new Button(optionsComposite, SWT.CHECK); + GridData gd_forceUpdateBtn = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); + gd_forceUpdateBtn.horizontalIndent = 15; + forceUpdateBtn.setLayoutData(gd_forceUpdateBtn); forceUpdateBtn.setText(Messages.UpdateDepenciesDialog_forceUpdate); - forceUpdateBtn.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1)); - forceUpdateBtn.setSelection(forceUpdate); + forceUpdateBtn.setSelection(true); + new Label(optionsComposite, SWT.NONE); + + btnUpdateProjectConfiguration = new Button(optionsComposite, SWT.CHECK); + btnUpdateProjectConfiguration.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); + btnUpdateProjectConfiguration.setSelection(true); + btnUpdateProjectConfiguration.setText(Messages.UpdateMavenProjectDialog_btnUpdateProjectConfiguration_text); + + btnCleanFullBuild = new Button(optionsComposite, SWT.CHECK); + btnCleanFullBuild.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); + btnCleanFullBuild.setSelection(true); + btnCleanFullBuild.setText(Messages.UpdateMavenProjectDialog_btnCleanFullBuild_text); setTitle(getDialogTitle()); setMessage(getDialogMessage()); @@ -284,6 +326,7 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL /** * Create contents of the button bar. + * * @param parent */ @Override @@ -301,7 +344,9 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL selectedProjects = projects; offlineMode = offlineModeBtn.getSelection(); - forceUpdate = forceUpdateBtn.getSelection(); + forceUpdateDependencies = forceUpdateBtn.getSelection(); + updateConfiguration = btnUpdateProjectConfiguration.getSelection(); + rebuild = btnCleanFullBuild.getSelection(); super.okPressed(); } @@ -355,8 +400,16 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL return offlineMode; } - public boolean isForceUpdate() { - return forceUpdate; + public boolean isForceUpdateDependencies() { + return forceUpdateDependencies; + } + + public boolean isUpdateConfiguration() { + return updateConfiguration; + } + + public boolean isRebuild() { + return rebuild; } private IProject getProject(String path) { @@ -412,11 +465,15 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL } }; + private Button btnUpdateProjectConfiguration; + + private Button btnCleanFullBuild; + /** * @return Returns the dialogTitle or an empty String if the value is null. */ public String getDialogTitle() { - if (dialogTitle == null) { + if(dialogTitle == null) { dialogTitle = ""; //$NON-NLS-1$ } return dialogTitle; @@ -426,7 +483,7 @@ public class SelectMavenProjectsDialog extends TitleAreaDialog implements IMenuL * @return Returns the dialogMessage or an empty String if the value is null. */ public String getDialogMessage() { - if (dialogMessage == null) { + if(dialogMessage == null) { dialogMessage = ""; //$NON-NLS-1$ } return dialogMessage; diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/markers/MarkerResolutionGenerator.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/markers/MarkerResolutionGenerator.java index 18f66844..c1dddff3 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/markers/MarkerResolutionGenerator.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/markers/MarkerResolutionGenerator.java @@ -33,7 +33,7 @@ import org.eclipse.ui.views.markers.WorkbenchMarkerResolution; import org.eclipse.m2e.core.internal.IMavenConstants; import org.eclipse.m2e.core.ui.internal.Messages; -import org.eclipse.m2e.core.ui.internal.UpdateConfigurationJob; +import org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob; public class MarkerResolutionGenerator implements IMarkerResolutionGenerator, IMarkerResolutionGenerator2 { @@ -101,7 +101,7 @@ public class MarkerResolutionGenerator implements IMarkerResolutionGenerator, IM */ public void run(IMarker marker) { final Set<IProject> projects = getProjects(marker); - new UpdateConfigurationJob(projects.toArray(new IProject[projects.size()])).schedule(); + new UpdateMavenProjectJob(projects.toArray(new IProject[projects.size()])).schedule(); } /* (non-Javadoc) @@ -109,7 +109,7 @@ public class MarkerResolutionGenerator implements IMarkerResolutionGenerator, IM */ public void run(IMarker[] markers, IProgressMonitor monitor) { final Set<IProject> projects = getProjects(markers); - new UpdateConfigurationJob(projects.toArray(new IProject[projects.size()])).schedule(); + new UpdateMavenProjectJob(projects.toArray(new IProject[projects.size()])).schedule(); } diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/messages.properties b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/messages.properties index 3f292142..41df2189 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/messages.properties +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/messages.properties @@ -1,5 +1,5 @@ #Eclipse modern messages class -#Thu Apr 14 10:24:40 EDT 2011 +#Sun Dec 25 21:00:23 EST 2011 AddDependencyAction_error_msg=Can't add dependency to {0} AddDependencyAction_error_title=Add Dependency AddDependencyAction_searchDialog_title=Add Dependency @@ -35,8 +35,8 @@ IndexedArtifactNode_no_pack=[No Packaging] LifecycleMappingPage_actionColumnTitle=Action LifecycleMappingPage_autoSelectButton=&Auto Select LifecycleMappingPage_description=Discover and map Eclipse plugins to Maven plugin goal executions. -LifecycleMappingPage_deselectAllButton=&Resolve All Later LifecycleMappingPage_descriptionLabel=Description +LifecycleMappingPage_deselectAllButton=&Resolve All Later LifecycleMappingPage_doNotExecuteParent=Do Not Execute (add to parent) LifecycleMappingPage_doNotExecuteParentDescription=Places metadata which tells m2e to ignore the execution in the pom(s) that adds the Maven plugin to the build. LifecycleMappingPage_doNotExecutePom=Do Not Execute (add to pom) @@ -246,17 +246,6 @@ MavenRepositoryView_reload_msg=This will reload the settings.xml and rebuild the MavenRepositoryView_reload_title=Reload settings.xml MavenRepositoryView_update_more=Update Indexes MavenRepositoryView_update_one=Update Index -MavenSearchPage_btnBrowse=Browse... -MavenSearchPage_btnSelect=Select All -MavenSearchPage_btnUnselect=Deselect All -MavenSearchPage_lblArtifactid=Artifact Id\: -MavenSearchPage_lblClass=Class Name\: -MavenSearchPage_lblGroupid=Group Id\: -MavenSearchPage_lblPackaging=Packaging\: -MavenSearchPage_lblRepos=Repositories\: -MavenSearchPage_lblSha=SHA1\: -MavenSearchPage_lblVersion=Version\: -MavenSearchPage_separator=Label MavenSettingsPreferencePage_btnBrowse=&Browse... MavenSettingsPreferencePage_btnUpdate=Update Settings MavenSettingsPreferencePage_error_missing=User settings file doesn't exist @@ -292,24 +281,25 @@ RemoteArchetypeCatalogDialog_message=Specify catalog url and description RemoteArchetypeCatalogDialog_message_found=Found {0} archetype(s) RemoteArchetypeCatalogDialog_title=Remote Archetype Catalog RepositoryNode_updating=\ [updating] +UpdateMavenProjectDialog_btnCheckButton_text=Update dependencies +UpdateMavenProjectDialog_btnCleanFullBuild_text=Clean build +UpdateMavenProjectDialog_btnUpdateProjectConfiguration_text=Update project configuration from pom.xml SelectionUtil_error_cannot_read=Can't read Maven project +UpdateMavenProjectDialog_dialogMessage=Select Maven projects and update options +UpdateMavenProjectDialog_title=Update Maven Project UpdateDepenciesDialog_availableCodebasesLabel=Available Maven Codebases UpdateDepenciesDialog_collapseAll=&Collapse All UpdateDepenciesDialog_deselectAll=&Deselect All UpdateDepenciesDialog_deselectTree=Deselect Tree -UpdateDepenciesDialog_dialogMessage=Select Maven codebases to update dependencies UpdateDepenciesDialog_expandAll=&Expand All UpdateDepenciesDialog_forceUpdate=Force Update of Snapshots/Releases UpdateDepenciesDialog_offline=&Offline UpdateDepenciesDialog_selectAll=&Select All UpdateDepenciesDialog_selectTree=Select Tree -UpdateDepenciesDialog_title=Update Maven Dependencies -UpdateConfigurationDialog_dialogMessage=Select Maven codebases to update project configuration -UpdateConfigurationDialog_title=Update Maven Project Configuration UpdateSourcesAction_error_cannot_update=Unable to update Maven configuration UpdateSourcesAction_error_message=Unable to update maven configuration for the following projects\: UpdateSourcesAction_error_title=Error Updating Maven Configuration -UpdateSourcesAction_job_update_conf=Updating Maven Configuration +UpdateSourcesAction_job_update_conf=Updating Maven Project WorkingSetGroup_btnAddSet=&Add project(s) to working set WorkingSetGroup_btnMore=Mor&e... WorkingSetGroup_lblSet=Wo&rking set\: @@ -331,11 +321,12 @@ locationComponentDirectory=&Location\: locationComponentInWorkspace=Create project in &workspace locationComponentLocation=Location locationComponentSelectLocation=Select Location +pomEditorDefaultPage=Open XML page in the POM editor by default preferencesDebugOutput=Debu&g Output preferencesDownloadJavadoc=Download Artifact &JavaDoc preferencesDownloadSources=Do&wnload Artifact Sources -preferencesOffline=&Offline preferencesGlobalUpdateNever=Do not automatically update dependencies from remote repositories +preferencesOffline=&Offline preferencesReindexButton=Re&index projectSelectionDialogTitle=Select a Maven project resolverConfigurationAdvanced=Ad&vanced @@ -406,4 +397,3 @@ wizardProjectPageProjectTitle=New Maven project wizardProjectPageProjectValidatorInvalidLocation=Invalid project location path wizardProjectPageProjectValidatorProjectLocation=Enter a location for the project. wizardProjectTitle=New Maven Project -pomEditorDefaultPage=Open XML page in the POM editor by default
\ No newline at end of file diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizard.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizard.java index 6a30aade..6d3864a3 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizard.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizard.java @@ -67,7 +67,7 @@ import org.eclipse.m2e.core.project.ProjectImportConfiguration; import org.eclipse.m2e.core.project.configurator.MojoExecutionKey; import org.eclipse.m2e.core.ui.internal.M2EUIPluginActivator; import org.eclipse.m2e.core.ui.internal.Messages; -import org.eclipse.m2e.core.ui.internal.UpdateConfigurationJob; +import org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob; import org.eclipse.m2e.core.ui.internal.actions.SelectionUtil; import org.eclipse.m2e.core.ui.internal.editing.LifecycleMappingOperation; import org.eclipse.m2e.core.ui.internal.editing.PomEdits; @@ -204,7 +204,7 @@ public class MavenImportWizard extends AbstractMavenProjectWizard implements IIm } } - new UpdateConfigurationJob(changed.toArray(new IProject[changed.size()])).schedule(); + new UpdateMavenProjectJob(changed.toArray(new IProject[changed.size()])).schedule(); } private Collection<IProject> getProject(Collection<MavenProject> projects) { diff --git a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/startup/UpdateConfigurationStartup.java b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/startup/UpdateConfigurationStartup.java index ac44e18a..c7b2bcc6 100644 --- a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/startup/UpdateConfigurationStartup.java +++ b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/startup/UpdateConfigurationStartup.java @@ -25,7 +25,7 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.MultiStatus; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.m2e.core.internal.IMavenConstants; -import org.eclipse.m2e.core.ui.internal.UpdateConfigurationJob; +import org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob; import org.eclipse.m2e.internal.discovery.DiscoveryActivator; import org.eclipse.m2e.internal.discovery.Messages; import org.eclipse.ui.IStartup; @@ -85,11 +85,11 @@ public class UpdateConfigurationStartup implements IStartup { */ public static void updateConfiguration() { Collection<IProject> projects = getMarkedProjects(); - new UpdateConfigurationJob(projects.toArray(new IProject[projects.size()])).schedule(); + new UpdateMavenProjectJob(projects.toArray(new IProject[projects.size()])).schedule(); } private static void updateConfiguration(IProject[] projects) { - new UpdateConfigurationJob(projects).schedule(); + new UpdateMavenProjectJob(projects).schedule(); } private static void addEarlyStartup() { |