diff options
author | Fred Bricon | 2013-09-30 07:43:34 +0000 |
---|---|---|
committer | Fred Bricon | 2013-09-30 13:42:00 +0000 |
commit | 798db4c8b2405f58319a5bb899b7bada7f8152b4 (patch) | |
tree | 8509da6019abe4b394f35a5ae7ae2d70a6be99a7 /org.eclipse.m2e.scm | |
parent | 601f18cf2f007d80e6347217c302989218e96f47 (diff) | |
download | m2e-core-798db4c8b2405f58319a5bb899b7bada7f8152b4.tar.gz m2e-core-798db4c8b2405f58319a5bb899b7bada7f8152b4.tar.xz m2e-core-798db4c8b2405f58319a5bb899b7bada7f8152b4.zip |
409732 : Split lifecycle mapping analysis from project import
The Lifecycle Mapping analysis is now only run after projects are
imported, making selection of projects to import much much faster (< 1
sec vs 1-2 min for the wildfly codebase and its 130 projects)
After import, lifecycle mapping error markers are collected on imported
projects and the discovery service is invoked to find proposals fixing
these errors.
Caveats :
- no proposals are shown anymore in case projects import without
errors, making discovery of new/other applicable connectors less obvious.
As part of the refactoring the following notable architectural changes
were performed :
- LM Analysis and Discovery proposals UI are moved to a dedicated Wizard.
- LifecycleMappingConfiguration was deprecated in favor of
LifecycleMappingDiscoveryRequest
-Lifecycle Mapping discovery is now based on a collection of
ILifecycleMappingRequirement
Signed-off-by: Fred Bricon <fbricon@gmail.com>
Diffstat (limited to 'org.eclipse.m2e.scm')
-rw-r--r-- | org.eclipse.m2e.scm/src/org/eclipse/m2e/scm/internal/wizards/MavenProjectCheckoutJob.java | 41 |
1 files changed, 4 insertions, 37 deletions
diff --git a/org.eclipse.m2e.scm/src/org/eclipse/m2e/scm/internal/wizards/MavenProjectCheckoutJob.java b/org.eclipse.m2e.scm/src/org/eclipse/m2e/scm/internal/wizards/MavenProjectCheckoutJob.java index 51310086..fcee8472 100644 --- a/org.eclipse.m2e.scm/src/org/eclipse/m2e/scm/internal/wizards/MavenProjectCheckoutJob.java +++ b/org.eclipse.m2e.scm/src/org/eclipse/m2e/scm/internal/wizards/MavenProjectCheckoutJob.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2010 Sonatype, Inc. + * Copyright (c) 2008-2013 Sonatype, Inc. and others. * 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 @@ -7,6 +7,7 @@ * * Contributors: * Sonatype, Inc. - initial API and implementation + * Red Hat, Inc. - Refactored project import *******************************************************************************/ package org.eclipse.m2e.scm.internal.wizards; @@ -16,7 +17,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -28,7 +28,6 @@ import org.eclipse.core.resources.WorkspaceJob; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.IJobChangeEvent; import org.eclipse.core.runtime.jobs.ISchedulingRule; @@ -53,14 +52,11 @@ import org.apache.maven.model.Model; import org.eclipse.m2e.core.MavenPlugin; import org.eclipse.m2e.core.embedder.MavenModelManager; -import org.eclipse.m2e.core.internal.lifecyclemapping.discovery.LifecycleMappingConfiguration; -import org.eclipse.m2e.core.project.IMavenProjectImportResult; import org.eclipse.m2e.core.project.LocalProjectScanner; import org.eclipse.m2e.core.project.MavenProjectInfo; import org.eclipse.m2e.core.project.ProjectImportConfiguration; -import org.eclipse.m2e.core.ui.internal.M2EUIPluginActivator; import org.eclipse.m2e.core.ui.internal.actions.OpenMavenConsoleAction; -import org.eclipse.m2e.core.ui.internal.wizards.AbstactCreateMavenProjectJob; +import org.eclipse.m2e.core.ui.internal.wizards.ImportMavenProjectsJob; import org.eclipse.m2e.core.ui.internal.wizards.MavenImportWizard; import org.eclipse.m2e.scm.MavenCheckoutOperation; import org.eclipse.m2e.scm.MavenProjectScmInfo; @@ -216,37 +212,8 @@ public abstract class MavenProjectCheckoutJob extends WorkspaceJob { } if(checkoutAllProjects) { - if(M2EUIPluginActivator.getDefault().getMavenDiscovery() != null) { - final LifecycleMappingConfiguration mappingConfiguration = LifecycleMappingConfiguration.calculate(projects, - configuration, new NullProgressMonitor()); - if(!mappingConfiguration.isMappingComplete(true)) { + WorkspaceJob job = new ImportMavenProjectsJob(projects, workingSets, configuration); - PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { - public void run() { - MavenImportWizard wizard = new MavenImportWizard(configuration, collectedLocations, - mappingConfiguration); - wizard.setBasedirRemameRequired(true); - WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(), wizard); - int res = dialog.open(); - if(res == Window.CANCEL) { - cleanup(collectedLocations); - } - } - }); - return; - } - } - WorkspaceJob job = new AbstactCreateMavenProjectJob(Messages.MavenProjectCheckoutJob_job, workingSets) { - @Override - protected List<IProject> doCreateMavenProjects(IProgressMonitor monitor) throws CoreException { - Set<MavenProjectInfo> projectSet = MavenPlugin.getProjectConfigurationManager().collectProjects(projects); - - List<IMavenProjectImportResult> results = MavenPlugin.getProjectConfigurationManager().importProjects( - projectSet, configuration, monitor); - - return toProjects(results); - } - }; ISchedulingRule rule = ResourcesPlugin.getWorkspace().getRuleFactory() .modifyRule(ResourcesPlugin.getWorkspace().getRoot()); job.setRule(rule); |