001    package org.apache.maven.plugin;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
005     * agreements. See the NOTICE file distributed with this work for additional information regarding
006     * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
007     * "License"); you may not use this file except in compliance with the License. You may obtain a
008     * copy of the License at
009     * 
010     * http://www.apache.org/licenses/LICENSE-2.0
011     * 
012     * Unless required by applicable law or agreed to in writing, software distributed under the License
013     * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
014     * or implied. See the License for the specific language governing permissions and limitations under
015     * the License.
016     */
017    
018    import java.util.List;
019    
020    import org.apache.maven.execution.MavenSession;
021    import org.apache.maven.model.Plugin;
022    import org.apache.maven.plugin.descriptor.MojoDescriptor;
023    import org.apache.maven.plugin.descriptor.PluginDescriptor;
024    import org.codehaus.plexus.classworlds.realm.ClassRealm;
025    import org.sonatype.aether.RepositorySystemSession;
026    import org.sonatype.aether.repository.RemoteRepository;
027    
028    /**
029     * @author Jason van Zyl
030     */
031    public interface BuildPluginManager
032    {
033        // igorf: Way too many declared exceptions!
034        PluginDescriptor loadPlugin( Plugin plugin, List<RemoteRepository> repositories, RepositorySystemSession session )
035            throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
036            InvalidPluginDescriptorException;
037    
038        // igorf: Way too many declared exceptions!
039        MojoDescriptor getMojoDescriptor( Plugin plugin, String goal, List<RemoteRepository> repositories,
040                                          RepositorySystemSession session )
041            throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
042            MojoNotFoundException, InvalidPluginDescriptorException;
043    
044        ClassRealm getPluginRealm( MavenSession session, PluginDescriptor pluginDescriptor )
045            throws PluginResolutionException, PluginManagerException;
046    
047        void executeMojo( MavenSession session, MojoExecution execution )
048            throws MojoFailureException, MojoExecutionException, PluginConfigurationException, PluginManagerException;
049    
050    }