Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Fedorenko2011-02-03 17:42:41 +0000
committerIgor Fedorenko2011-02-03 17:42:48 +0000
commitc44863b0f3d29cda29d34c4d4a1363c11534901c (patch)
tree068e9e1afa713a2b94952c1c0a86a1cbe7d465df /org.eclipse.m2e.core
parent7f8ba0b767a2d3a198213f0c0420a808d68924eb (diff)
downloadm2e-core-c44863b0f3d29cda29d34c4d4a1363c11534901c.tar.gz
m2e-core-c44863b0f3d29cda29d34c4d4a1363c11534901c.tar.xz
m2e-core-c44863b0f3d29cda29d34c4d4a1363c11534901c.zip
MNGECLIPSE-2724 API to access configured mojo executions
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
Diffstat (limited to 'org.eclipse.m2e.core')
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/MavenProjectFacade.java5
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java40
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/IMavenProjectFacade.java7
3 files changed, 45 insertions, 7 deletions
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/MavenProjectFacade.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/MavenProjectFacade.java
index 1db9b7ed..57a05c64 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/MavenProjectFacade.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/MavenProjectFacade.java
@@ -376,6 +376,11 @@ public class MavenProjectFacade implements IMavenProjectFacade, Serializable {
return manager.getMojoExecution(this, mojoExecutionKey, monitor);
}
+ public List<MojoExecution> getMojoExecutions(String groupId, String artifactId, String goal, IProgressMonitor monitor)
+ throws CoreException {
+ return manager.getMojoExecution(this, groupId, artifactId, goal, monitor);
+ }
+
public void setLifecycleMappingId(String lifecycleMappingId) {
this.lifecycleMappingId = lifecycleMappingId;
}
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java
index 41f2e5ce..30131725 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java
@@ -798,6 +798,27 @@ public class ProjectRegistryManager {
public MojoExecution getMojoExecution(MavenProjectFacade projectFacade, MojoExecutionKey mojoExecutionKey,
IProgressMonitor monitor) throws CoreException {
+ List<MojoExecution> mojoExecutions = getMojoExecutions(projectFacade, monitor);
+
+ for(MojoExecution mojoExecution : mojoExecutions) {
+ if(mojoExecutionKey.match(mojoExecution)) {
+ return setupMojoExecution(projectFacade, mojoExecution, monitor);
+ }
+ }
+
+ return null;
+ }
+
+ protected MojoExecution setupMojoExecution(MavenProjectFacade projectFacade, MojoExecution mojoExecution,
+ IProgressMonitor monitor) throws CoreException {
+ MavenExecutionRequest request = createExecutionRequest(projectFacade.getPom(),
+ projectFacade.getResolverConfiguration(), monitor);
+ MavenSession session = maven.createSession(request, projectFacade.getMavenProject());
+ return maven.setupMojoExecution(session, projectFacade.getMavenProject(), mojoExecution);
+ }
+
+ protected List<MojoExecution> getMojoExecutions(MavenProjectFacade projectFacade, IProgressMonitor monitor)
+ throws CoreException {
IMavenConfiguration mavenConfiguration = MavenPlugin.getDefault().getMavenConfiguration();
boolean offline = mavenConfiguration.isOffline();
MavenUpdateRequest updateRequest = new MavenUpdateRequest(offline, false);
@@ -805,16 +826,21 @@ public class ProjectRegistryManager {
projectFacade.getResolverConfiguration(), monitor);
DependencyResolutionContext context = new DependencyResolutionContext(updateRequest, executionRequest);
List<MojoExecution> mojoExecutions = getMojoExecutions(context, projectRegistry, projectFacade, monitor);
+ return mojoExecutions;
+ }
- for(MojoExecution mojoExecution : mojoExecutions) {
- if(mojoExecutionKey.match(mojoExecution)) {
- MavenExecutionRequest request = createExecutionRequest(projectFacade.getPom(),
- projectFacade.getResolverConfiguration(), monitor);
- MavenSession session = maven.createSession(request, projectFacade.getMavenProject());
- return maven.setupMojoExecution(session, projectFacade.getMavenProject(), mojoExecution);
+ public List<MojoExecution> getMojoExecution(MavenProjectFacade projectFacade, String groupId, String artifactId,
+ String goal, IProgressMonitor monitor) throws CoreException {
+
+ List<MojoExecution> result = new ArrayList<MojoExecution>();
+
+ for(MojoExecution mojoExecution : getMojoExecutions(projectFacade, monitor)) {
+ if(groupId.equals(mojoExecution.getGroupId()) && artifactId.equals(mojoExecution.getArtifactId())
+ && goal.equals(mojoExecution.getGoal())) {
+ result.add(setupMojoExecution(projectFacade, mojoExecution, monitor));
}
}
- return null;
+ return result;
}
}
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/IMavenProjectFacade.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/IMavenProjectFacade.java
index 8390c268..40fa19d3 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/IMavenProjectFacade.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/IMavenProjectFacade.java
@@ -153,6 +153,13 @@ public interface IMavenProjectFacade {
public MojoExecution getMojoExecution(MojoExecutionKey mojoExecutionKey, IProgressMonitor monitor)
throws CoreException;
+ /**
+ * Returns list of fully setup MojoExecution instances bound to project build lifecycle that matche provided
+ * groupId/artifactId/goal. Returns empty list if no such mojo executions.
+ */
+ public List<MojoExecution> getMojoExecutions(String groupId, String artifactId, String goal, IProgressMonitor monitor)
+ throws CoreException;
+
// lifecycle mapping
public String getLifecycleMappingId();

Back to the top