1 package org.apache.maven.plugin;
2
3 /*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 import org.apache.maven.artifact.repository.ArtifactRepository;
23 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
24 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
25 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
26 import org.apache.maven.execution.MavenSession;
27 import org.apache.maven.model.Plugin;
28 import org.apache.maven.model.ReportPlugin;
29 import org.apache.maven.plugin.descriptor.PluginDescriptor;
30 import org.apache.maven.plugin.version.PluginVersionNotFoundException;
31 import org.apache.maven.plugin.version.PluginVersionResolutionException;
32 import org.apache.maven.project.MavenProject;
33 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
34 import org.apache.maven.reporting.MavenReport;
35 import org.apache.maven.settings.Settings;
36 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
37
38 import java.util.Map;
39
40 /**
41 * @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
42 * @version $Id: PluginManager.java 495147 2007-01-11 07:47:53Z jvanzyl $
43 */
44 public interface PluginManager
45 {
46 String ROLE = PluginManager.class.getName();
47
48 void executeMojo( MavenProject project, MojoExecution execution, MavenSession session )
49 throws MojoExecutionException, ArtifactResolutionException, MojoFailureException, ArtifactNotFoundException,
50 InvalidDependencyVersionException, PluginManagerException, PluginConfigurationException;
51
52 MavenReport getReport( MavenProject project, MojoExecution mojoExecution, MavenSession session )
53 throws ArtifactNotFoundException, PluginConfigurationException, PluginManagerException,
54 ArtifactResolutionException;
55
56 PluginDescriptor getPluginDescriptorForPrefix( String prefix );
57
58 Plugin getPluginDefinitionForPrefix( String prefix, MavenSession session, MavenProject project );
59
60 PluginDescriptor verifyPlugin( Plugin plugin, MavenProject project, Settings settings,
61 ArtifactRepository localRepository )
62 throws ArtifactResolutionException, PluginVersionResolutionException, ArtifactNotFoundException,
63 InvalidVersionSpecificationException, InvalidPluginException, PluginManagerException, PluginNotFoundException,
64 PluginVersionNotFoundException;
65
66 PluginDescriptor verifyReportPlugin( ReportPlugin reportPlugin, MavenProject project, MavenSession session )
67 throws PluginVersionResolutionException, ArtifactResolutionException, ArtifactNotFoundException,
68 InvalidVersionSpecificationException, InvalidPluginException, PluginManagerException, PluginNotFoundException,
69 PluginVersionNotFoundException;
70
71 Object getPluginComponent( Plugin plugin, String role, String roleHint )
72 throws PluginManagerException, ComponentLookupException;
73
74 Map getPluginComponents( Plugin plugin, String role )
75 throws ComponentLookupException, PluginManagerException;
76
77 }