Skip to content

Commit c2fecd3

Browse files
committed
Don't show the DiscoveryWizard if nothing new was discovered
Currently we show a DiscoveryWizard after project import, even if no new items are discovered. This is not really helpful for the user, as the only thing one can do is to completely ignore an execution (what is always possible from the pom afterwards) or cancel the dialog. This changes the project import to not show the dialog if nothing was found, but shows the full dialog if the user manually triggers the discovery.
1 parent 3096c3f commit c2fecd3

File tree

6 files changed

+29
-6
lines changed

6 files changed

+29
-6
lines changed

org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/project/MavenProjectConfigurator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public synchronized static CumulativeMappingDiscoveryJob getInstance() {
6565
}
6666

6767
private CumulativeMappingDiscoveryJob() {
68-
super(Collections.<IProject>emptyList());
68+
super(Collections.<IProject> emptyList(), true);
6969
this.toProcess = Collections.synchronizedSet(new HashSet<IProject>());
7070
}
7171

org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/ImportMavenProjectsJob.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ protected List<IProject> doCreateMavenProjects(IProgressMonitor progressMonitor)
7979
try {
8080
importOperation.run(monitor);
8181
List<IProject> createdProjects = importOperation.getCreatedProjects();
82-
MappingDiscoveryJob discoveryJob = new MappingDiscoveryJob(createdProjects);
82+
MappingDiscoveryJob discoveryJob = new MappingDiscoveryJob(createdProjects, true);
8383
discoveryJob.schedule();
8484
} catch(InvocationTargetException e) {
8585
return AbstractCreateMavenProjectsOperation.toStatus(e);

org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MappingDiscoveryJob.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
package org.eclipse.m2e.core.ui.internal.wizards;
1616

1717
import java.util.Collection;
18+
import java.util.List;
19+
import java.util.Map;
1820

1921
import org.eclipse.core.resources.IProject;
2022
import org.eclipse.core.runtime.CoreException;
@@ -27,6 +29,8 @@
2729
import org.eclipse.ui.PlatformUI;
2830

2931
import org.eclipse.m2e.core.internal.jobs.MavenWorkspaceJob;
32+
import org.eclipse.m2e.core.internal.lifecyclemapping.discovery.ILifecycleMappingRequirement;
33+
import org.eclipse.m2e.core.internal.lifecyclemapping.discovery.IMavenDiscoveryProposal;
3034

3135

3236
/**
@@ -39,9 +43,24 @@ public class MappingDiscoveryJob extends MavenWorkspaceJob {
3943

4044
private final Collection<IProject> projects;
4145

46+
private boolean skipOnEmpty;
47+
48+
@Deprecated
4249
public MappingDiscoveryJob(Collection<IProject> projects) {
50+
this(projects, false);
51+
}
52+
53+
/**
54+
* Creates a new discovery job for the given set of projects
55+
*
56+
* @param projects the projects to discover
57+
* @param skipOnEmpty if <code>true</code> nothing will be done if no new proposals can be discovered, otherwise the
58+
* dialog is even shown if nothing new was discovered just showing possible unmatched items
59+
*/
60+
public MappingDiscoveryJob(Collection<IProject> projects, boolean skipOnEmpty) {
4361
super("Discover lifecycle mappings");
4462
this.projects = projects;
63+
this.skipOnEmpty = skipOnEmpty;
4564

4665
}
4766

@@ -55,7 +74,11 @@ public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
5574
}
5675
//Some errors were detected
5776
discoverProposals(discoveryRequest, monitor);
58-
77+
Map<ILifecycleMappingRequirement, List<IMavenDiscoveryProposal>> proposals = discoveryRequest.getAllProposals();
78+
if(proposals.isEmpty() && skipOnEmpty) {
79+
//if we can not propose anything, why open the dialog?
80+
return Status.CANCEL_STATUS;
81+
}
5982
openProposalWizard(projects, discoveryRequest);
6083

6184
return Status.OK_STATUS;

org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenProjectWizard.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ public void done(IJobChangeEvent event) {
264264
NLS.bind(Messages.wizardProjectJobFailed, projectName), result.getMessage()));
265265
}
266266

267-
MappingDiscoveryJob discoveryJob = new MappingDiscoveryJob(job.getCreatedProjects());
267+
MappingDiscoveryJob discoveryJob = new MappingDiscoveryJob(job.getCreatedProjects(), true);
268268
discoveryJob.schedule();
269269

270270
}

org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/markers/DiscoveryWizardResolution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public boolean canFix(IMarker marker) {
6868
public void fix(IMarker[] markers, IDocument document, IProgressMonitor monitor) {
6969
Set<IProject> projects = Stream.of(markers).map(m -> m.getResource().getProject()).collect(Collectors.toSet());
7070

71-
MappingDiscoveryJob discoveryJob = new MappingDiscoveryJob(projects);
71+
MappingDiscoveryJob discoveryJob = new MappingDiscoveryJob(projects, false);
7272
discoveryJob.schedule();
7373
}
7474
}

org.eclipse.m2e.profiles.core/META-INF/MANIFEST.MF

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: M2E Maven Profiles Management
44
Bundle-SymbolicName: org.eclipse.m2e.profiles.core;singleton:=true
5-
Bundle-Version: 2.1.0.qualifier
5+
Bundle-Version: 2.1.1.qualifier
66
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
77
org.eclipse.core.resources;bundle-version="3.6.0",
88
org.eclipse.m2e.core;bundle-version="[2.0.0,3.0.0)",

0 commit comments

Comments
 (0)