Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/lifecyclemapping/discovery/IMavenDiscovery.java')
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/lifecyclemapping/discovery/IMavenDiscovery.java25
1 files changed, 24 insertions, 1 deletions
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/lifecyclemapping/discovery/IMavenDiscovery.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/lifecyclemapping/discovery/IMavenDiscovery.java
index 6696a2c2..71c0954a 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/lifecyclemapping/discovery/IMavenDiscovery.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/lifecyclemapping/discovery/IMavenDiscovery.java
@@ -1,13 +1,18 @@
/*******************************************************************************
- * Copyright (c) 2008 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
* http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Sonatype, Inc. - initial API and implementation
+ * Red Hat, Inc. - discover proposals for ILifecycleMappingRequirements
*******************************************************************************/
package org.eclipse.m2e.core.internal.lifecyclemapping.discovery;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -36,4 +41,22 @@ public interface IMavenDiscovery {
List<MojoExecution> mojoExecutions, List<IMavenDiscoveryProposal> preselected, IProgressMonitor monitor)
throws CoreException;
+ /**
+ * <p>
+ * Calculates discovery proposals for a given collection of {@link ILifecycleMappingRequirement}s. Multiple proposals
+ * per requirement element can be found.
+ * </p>
+ * <p>
+ * To support incremental collection of user choices in the GUI, optional <code>preselected</code>
+ * requirements/proposals map is used to eliminate new proposals that conflict with already selected choices. Result
+ * is expected to include preselected proposals as-is. Implementation is expected to eliminate proposals that conflict
+ * with already installed Eclipse bundles and preselected proposals.
+ * </p>
+ *
+ * @since 1.5.0
+ */
+ public Map<ILifecycleMappingRequirement, List<IMavenDiscoveryProposal>> discover(
+ Collection<ILifecycleMappingRequirement> requirements, List<IMavenDiscoveryProposal> preselected,
+ IProgressMonitor monitor) throws CoreException;
+
}

Back to the top