diff options
author | Igor Fedorenko | 2011-02-03 17:42:41 +0000 |
---|---|---|
committer | Igor Fedorenko | 2011-02-03 17:42:48 +0000 |
commit | c44863b0f3d29cda29d34c4d4a1363c11534901c (patch) | |
tree | 068e9e1afa713a2b94952c1c0a86a1cbe7d465df /org.eclipse.m2e.core | |
parent | 7f8ba0b767a2d3a198213f0c0420a808d68924eb (diff) | |
download | m2e-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')
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(); |