Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFred Bricon2013-09-30 07:43:34 +0000
committerFred Bricon2013-09-30 13:42:00 +0000
commit798db4c8b2405f58319a5bb899b7bada7f8152b4 (patch)
tree8509da6019abe4b394f35a5ae7ae2d70a6be99a7 /org.eclipse.m2e.scm
parent601f18cf2f007d80e6347217c302989218e96f47 (diff)
downloadm2e-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.java41
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);

Back to the top