Coverage Report - org.apache.maven.project.MavenProjectBuilder
 
Classes in this File Line Coverage Branch Coverage Complexity
MavenProjectBuilder
N/A
N/A
1
 
 1  
 package org.apache.maven.project;
 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.Artifact;
 23  
 import org.apache.maven.artifact.repository.ArtifactRepository;
 24  
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 25  
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 26  
 import org.apache.maven.profiles.ProfileManager;
 27  
 import org.apache.maven.project.interpolation.ModelInterpolationException;
 28  
 import org.apache.maven.wagon.events.TransferListener;
 29  
 
 30  
 import java.io.File;
 31  
 import java.util.List;
 32  
 
 33  
 public interface MavenProjectBuilder
 34  
 {
 35  
     String ROLE = MavenProjectBuilder.class.getName();
 36  
 
 37  
     String STANDALONE_SUPERPOM_GROUPID = "org.apache.maven";
 38  
 
 39  
     String STANDALONE_SUPERPOM_ARTIFACTID = "super-pom";
 40  
 
 41  
     String STANDALONE_SUPERPOM_VERSION = "2.0";
 42  
 
 43  
     MavenProject build( File project, ArtifactRepository localRepository, ProfileManager globalProfileManager )
 44  
         throws ProjectBuildingException;
 45  
 
 46  
     MavenProject build( File project, ArtifactRepository localRepository, ProfileManager globalProfileManager,
 47  
                         boolean checkDistributionManagementStatus )
 48  
         throws ProjectBuildingException;
 49  
 
 50  
     // ----------------------------------------------------------------------
 51  
     // These methods are used by the MavenEmbedder
 52  
     // ----------------------------------------------------------------------
 53  
 
 54  
     MavenProject buildWithDependencies( File project, ArtifactRepository localRepository,
 55  
                                         ProfileManager globalProfileManager, TransferListener transferListener )
 56  
         throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException;
 57  
 
 58  
     MavenProject buildWithDependencies( File project, ArtifactRepository localRepository,
 59  
                                         ProfileManager globalProfileManager )
 60  
         throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException;
 61  
 
 62  
     // ----------------------------------------------------------------------
 63  
     //
 64  
     // ----------------------------------------------------------------------
 65  
 
 66  
     /**
 67  
      * Build the artifact from the local repository, resolving it if necessary.
 68  
      *
 69  
      * @param artifact the artifact description
 70  
      * @param localRepository the local repository
 71  
      * @param remoteArtifactRepositories the remote repository list
 72  
      * @return the built project
 73  
      * @throws ProjectBuildingException
 74  
      */
 75  
     MavenProject buildFromRepository( Artifact artifact, List remoteArtifactRepositories,
 76  
                                       ArtifactRepository localRepository )
 77  
         throws ProjectBuildingException;
 78  
 
 79  
     /**
 80  
      * Build the artifact from the local repository, resolving it if necessary.
 81  
      *
 82  
      * @param artifact the artifact description
 83  
      * @param localRepository the local repository
 84  
      * @param remoteArtifactRepositories the remote repository list
 85  
      * @param allowStubModel return a stub if the POM is not found
 86  
      * @return the built project
 87  
      * @throws ProjectBuildingException
 88  
      */
 89  
     MavenProject buildFromRepository( Artifact artifact, List remoteArtifactRepositories,
 90  
                                       ArtifactRepository localRepository, boolean allowStubModel )
 91  
         throws ProjectBuildingException;
 92  
 
 93  
     /**
 94  
      * @deprecated Use {@link MavenProjectBuilder#buildStandaloneSuperProject(ProjectBuilderConfiguration)} instead.
 95  
      */
 96  
     MavenProject buildStandaloneSuperProject( ArtifactRepository localRepository )
 97  
         throws ProjectBuildingException;
 98  
 
 99  
     /**
 100  
      * need to pass a profilemanager with correct context (eg. with execution properties)
 101  
      * @deprecated Use {@link MavenProjectBuilder#buildStandaloneSuperProject(ProjectBuilderConfiguration)} instead.
 102  
      */
 103  
     MavenProject buildStandaloneSuperProject( ArtifactRepository localRepository, ProfileManager profileManager )
 104  
         throws ProjectBuildingException;
 105  
 
 106  
     MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration config )
 107  
         throws ProjectBuildingException;
 108  
 
 109  
     MavenProject build( File pom,
 110  
                         ProjectBuilderConfiguration config )
 111  
         throws ProjectBuildingException;
 112  
 
 113  
     MavenProject build( File pom,
 114  
                         ProjectBuilderConfiguration config,
 115  
                         boolean checkDistributionManagementStatus )
 116  
         throws ProjectBuildingException;
 117  
 
 118  
  // ----------------------------------------------------------------------------
 119  
  // API BELOW IS USED TO PRESERVE DYNAMISM IN THE BUILD SECTION OF THE POM.
 120  
  // ----------------------------------------------------------------------------
 121  
 
 122  
     /**
 123  
      * Variant of {@link MavenProjectBuilder#calculateConcreteState(MavenProject, ProjectBuilderConfiguration, boolean)}
 124  
      * which assumes that project references should be processed. This is provided for performance reasons, for cases
 125  
      * where you know all projects in the reactor will be processed, making traversal of project references unnecessary.
 126  
      */
 127  
     void calculateConcreteState( MavenProject project, ProjectBuilderConfiguration config )
 128  
         throws ModelInterpolationException;
 129  
 
 130  
     /**
 131  
      * Up to this point, the build section of the POM remains uninterpolated except for the artifact coordinates
 132  
      * it contains. This method will interpolate the build section and associated project-instance data
 133  
      * structures. Along with the {@link MavenProjectBuilder#restoreDynamicState(MavenProject, ProjectBuilderConfiguration, boolean)}
 134  
      * method, this method allows expressions in these areas of the POM and project instance to
 135  
      * be reevaluated in the event that a mojo changes one the build-path values, or a project property.
 136  
      * <br/><br/>
 137  
      * This method will process the following:
 138  
      * <ol>
 139  
      *   <li>the specified project's parent project (if not null)</li>
 140  
      *   <li>specified project</li>
 141  
      *   <li>its execution project (if not null)</li>
 142  
      *   <li>any project references (iff processReferences == true)</li>
 143  
      * </ol>
 144  
      */
 145  
     void calculateConcreteState( MavenProject project, ProjectBuilderConfiguration config, boolean processReferences )
 146  
         throws ModelInterpolationException;
 147  
 
 148  
 //    /**
 149  
 //     * Variant of {@link MavenProjectBuilder#restoreDynamicState(MavenProject, ProjectBuilderConfiguration, boolean)}
 150  
 //     * which assumes that project references should be processed. This is provided for performance reasons, for cases
 151  
 //     * where you know all projects in the reactor will be processed, making traversal of project references unnecessary.
 152  
 //     */
 153  
 //    void restoreDynamicState( MavenProject project, ProjectBuilderConfiguration config )
 154  
 //        throws ModelInterpolationException;
 155  
 //    
 156  
 //    /**
 157  
 //     * In the event that a mojo execution has changed one or more build paths, or changed the project properties,
 158  
 //     * this method can restore the build section of the POM to its uninterpolated form, to allow reevaluation of
 159  
 //     * any expressions that may depend on this changed information. This method will short-circuit if the project
 160  
 //     * is not in a concrete state (see {@link MavenProjectBuilder#calculateConcreteState(MavenProject, ProjectBuilderConfiguration, boolean)}
 161  
 //     * or if the properties and build paths of the project remain unchanged.
 162  
 //     * <br/><br/>
 163  
 //     * This method will process the following:
 164  
 //     * <ol>
 165  
 //     *   <li>the specified project's parent project (if not null)</li>
 166  
 //     *   <li>specified project</li>
 167  
 //     *   <li>its execution project (if not null)</li>
 168  
 //     *   <li>any project references (iff processReferences == true)</li>
 169  
 //     * </ol>
 170  
 //     */
 171  
 //    void restoreDynamicState( MavenProject project, ProjectBuilderConfiguration config, boolean processReferences )
 172  
 //        throws ModelInterpolationException;
 173  
 }