You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2018/04/13 11:10:29 UTC

[maven-project-info-reports-plugin] branch MPIR-366 created (now 0a470ab)

This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a change to branch MPIR-366
in repository https://gitbox.apache.org/repos/asf/maven-project-info-reports-plugin.git.


      at 0a470ab  [MPIR-366] Drop Maven 2 support

This branch includes the following new commits:

     new 0a470ab  [MPIR-366] Drop Maven 2 support

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


-- 
To stop receiving notification emails like this one, please contact
rfscholte@apache.org.

[maven-project-info-reports-plugin] 01/01: [MPIR-366] Drop Maven 2 support

Posted by rf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch MPIR-366
in repository https://gitbox.apache.org/repos/asf/maven-project-info-reports-plugin.git

commit 0a470ab300083af1c84fb7a765073bceb46cfb6b
Author: rfscholte <rf...@apache.org>
AuthorDate: Fri Apr 13 13:10:20 2018 +0200

    [MPIR-366] Drop Maven 2 support
---
 pom.xml                                            |  54 ++++++++---
 .../site/custom/project-info-reports.properties    |  18 ++++
 src/it/full-pom/verify.bsh                         |  10 ++
 src/it/mpir-229/verify.groovy                      |   2 +-
 .../projectinfo/AbstractProjectInfoReport.java     |  24 +++--
 .../report/projectinfo/CiManagementReport.java     |   1 -
 .../report/projectinfo/DependenciesReport.java     |  29 +++---
 .../projectinfo/DependencyConvergenceReport.java   |  47 +++------
 .../projectinfo/DependencyInformationReport.java   |   1 -
 .../projectinfo/DependencyManagementReport.java    |  30 +++---
 .../projectinfo/DistributionManagementReport.java  |   1 -
 .../maven/report/projectinfo/IndexReport.java      |   9 +-
 .../report/projectinfo/IssueManagementReport.java  |   1 -
 .../maven/report/projectinfo/LicensesReport.java   |   1 -
 .../report/projectinfo/MailingListsReport.java     |  34 +------
 .../maven/report/projectinfo/ModulesReport.java    |  18 ++--
 .../report/projectinfo/PluginManagementReport.java |  60 +++++-------
 .../maven/report/projectinfo/PluginsReport.java    |  60 ++++++------
 .../report/projectinfo/ProjectInfoReportUtils.java |  59 ++----------
 .../apache/maven/report/projectinfo/ScmReport.java |   1 -
 .../maven/report/projectinfo/SummaryReport.java    |   1 -
 .../maven/report/projectinfo/TeamReport.java       |   4 -
 .../projectinfo/dependencies/Dependencies.java     |   1 -
 .../DependenciesReportConfiguration.java           |   1 -
 .../dependencies/DependencyVersionMap.java         |   1 -
 .../dependencies/ManagementDependencies.java       |   1 -
 .../projectinfo/dependencies/RepositoryUtils.java  | 107 +++++----------------
 .../renderer/DependenciesRenderer.java             |  61 ++++--------
 .../renderer/DependencyManagementRenderer.java     |  40 ++++----
 .../projectinfo/AbstractProjectInfoTestCase.java   |  64 ++++++------
 .../report/projectinfo/ModulesReportTest.java      |   3 +-
 .../projectinfo/stubs/ProjectInfoProjectStub.java  |   5 +-
 32 files changed, 320 insertions(+), 429 deletions(-)

diff --git a/pom.xml b/pom.xml
index ecdd8ce..a0a4b39 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@ under the License.
   <properties>
     <doxiaVersion>1.6</doxiaVersion>
     <doxia-sitetoolsVersion>1.6</doxia-sitetoolsVersion>
-    <mavenVersion>2.2.1</mavenVersion>
+    <mavenVersion>3.0</mavenVersion>
     <scmVersion>1.9.5</scmVersion>
     <sitePluginVersion>3.5.1</sitePluginVersion>
   </properties>
@@ -133,33 +133,35 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.reporting</groupId>
       <artifactId>maven-reporting-impl</artifactId>
-      <version>2.4</version>
+      <version>3.0.0</version>
     </dependency>
 
     <!-- Maven -->
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-artifact</artifactId>
+      <artifactId>maven-compat</artifactId>
       <version>${mavenVersion}</version>
+      <scope>test</scope>
     </dependency>
+    
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-artifact-manager</artifactId>
+      <artifactId>maven-artifact</artifactId>
       <version>${mavenVersion}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-model</artifactId>
+      <artifactId>maven-core</artifactId>
       <version>${mavenVersion}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
+      <artifactId>maven-model</artifactId>
       <version>${mavenVersion}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-project</artifactId>
+      <artifactId>maven-plugin-api</artifactId>
       <version>${mavenVersion}</version>
     </dependency>
     <dependency>
@@ -196,7 +198,12 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-common-artifact-filters</artifactId>
-      <version>1.4</version>
+      <version>3.0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-artifact-transfer</artifactId>
+      <version>0.9.1</version>
     </dependency>
 
     <!-- SCM -->
@@ -322,11 +329,6 @@ under the License.
       <artifactId>plexus-interpolation</artifactId>
       <version>1.24</version>
     </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-container-default</artifactId>
-      <version>1.0-alpha-9-stable-1</version>
-    </dependency>
 
     <!-- Test -->
     <dependency>
@@ -338,13 +340,19 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.plugin-testing</groupId>
       <artifactId>maven-plugin-testing-harness</artifactId>
-      <version>1.3</version>
+      <version>2.1</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>3.8.2</version>
+      <version>4.12</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <version>2.12.0</version>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -359,6 +367,18 @@ under the License.
       <version>6.1.26</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.sonatype.aether</groupId>
+      <artifactId>aether-connector-wagon</artifactId>
+      <version>1.7</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.wagon</groupId>
+      <artifactId>wagon-http-lightweight</artifactId>
+      <version>2.10</version>
+      <scope>runtime</scope>
+    </dependency>
 
     <!-- Anything else -->
     <dependency>
@@ -530,12 +550,16 @@ under the License.
     </profile>
     <profile>
       <id>run-its</id>
+      <properties>
+        <maven.invoker.failure.ignore>false</maven.invoker.failure.ignore>
+      </properties>
       <build>
         <plugins>
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-invoker-plugin</artifactId>
             <configuration>
+              <ignoreFailures>${maven.invoker.failure.ignore}</ignoreFailures>
               <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
               <pomIncludes>
                 <pomInclude>*/pom.xml</pomInclude>
diff --git a/src/it/full-pom/src/site/custom/project-info-reports.properties b/src/it/full-pom/src/site/custom/project-info-reports.properties
new file mode 100644
index 0000000..644d0b9
--- /dev/null
+++ b/src/it/full-pom/src/site/custom/project-info-reports.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+report.mailing-lists.intro = mail list intro text foo
\ No newline at end of file
diff --git a/src/it/full-pom/verify.bsh b/src/it/full-pom/verify.bsh
index 369aae3..d49f305 100644
--- a/src/it/full-pom/verify.bsh
+++ b/src/it/full-pom/verify.bsh
@@ -107,6 +107,16 @@ try
         System.err.println( "MPIR-216: dependency-management doesn't contain doxia-sink-api url http://maven.apache.org/doxia/doxia/doxia-sink-api/" );
         return false;
     }
+    
+    File dependencyConvergence = new File( siteDir, "dependency-convergence.html");
+    content = FileUtils.fileRead( dependencyConvergence, "UTF-8" );
+    
+    if ( !content.contains( "You do not have 100% convergence." ) )
+    {
+        System.err.println( "dependency-convergence not rendered correctly" );
+        return false;
+    }
+    
 }
 catch ( Throwable t )
 {
diff --git a/src/it/mpir-229/verify.groovy b/src/it/mpir-229/verify.groovy
index b6080f9..efd9543 100644
--- a/src/it/mpir-229/verify.groovy
+++ b/src/it/mpir-229/verify.groovy
@@ -17,4 +17,4 @@
  * under the License.
  */
 File modulesPage = new File( basedir, 'target/site/modules.html' )
-assert modulesPage.text.contains( '<a href="mpir-229-module1-1.0-SNAPSHOT/index.html">mpir-229-module1</a>' )
\ No newline at end of file
+assert modulesPage.text.contains( '<a href="mpir-229-module1-1.0-SNAPSHOT/index.html" title="mpir-229-module1">mpir-229-module1</a>' )
\ No newline at end of file
diff --git a/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java b/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java
index 2647551..59121db 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java
@@ -37,9 +37,7 @@ import java.util.MissingResourceException;
 import java.util.ResourceBundle;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.doxia.site.decoration.Body;
 import org.apache.maven.doxia.site.decoration.DecorationModel;
 import org.apache.maven.doxia.siterenderer.Renderer;
@@ -49,15 +47,18 @@ import org.apache.maven.doxia.siterenderer.SiteRenderingContext;
 import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink;
 import org.apache.maven.doxia.tools.SiteTool;
 import org.apache.maven.doxia.tools.SiteToolException;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.reporting.AbstractMavenReport;
 import org.apache.maven.reporting.MavenReportException;
+import org.apache.maven.repository.RepositorySystem;
 import org.apache.maven.settings.Settings;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolver;
 import org.codehaus.plexus.i18n.I18N;
 import org.codehaus.plexus.interpolation.EnvarBasedValueSource;
 import org.codehaus.plexus.interpolation.InterpolationException;
@@ -72,7 +73,6 @@ import org.codehaus.plexus.util.xml.Xpp3Dom;
  * Base class with the things that should be in AbstractMavenReport anyway.
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
- * @version $Id$
  * @since 2.0
  */
 public abstract class AbstractProjectInfoReport
@@ -106,7 +106,7 @@ public abstract class AbstractProjectInfoReport
      * Artifact Factory component.
      */
     @Component
-    protected ArtifactFactory factory;
+    RepositorySystem repositorySystem;
 
     /**
      * Internationalization component, could support also custom bundle using {@link #customBundle}.
@@ -114,12 +114,8 @@ public abstract class AbstractProjectInfoReport
     @Component
     private I18N i18n;
 
-    /**
-     * Project builder (deprecated in Maven 3: should use ProjectBuilder, which will avoid
-     * issues like DOXIASITETOOLS-166)
-     */
     @Component
-    protected MavenProjectBuilder mavenProjectBuilder;
+    protected ProjectBuilder projectBuilder;
 
     // ----------------------------------------------------------------------
     // Mojo parameters
@@ -138,6 +134,9 @@ public abstract class AbstractProjectInfoReport
      */
     @Parameter( defaultValue = "${project}", readonly = true, required = true )
     protected MavenProject project;
+    
+    @Parameter( defaultValue = "${session}", readonly = true, required = true )
+    private MavenSession session;
 
     /**
      * Local Repository.
@@ -320,6 +319,11 @@ public abstract class AbstractProjectInfoReport
     {
         return project;
     }
+    
+    protected MavenSession getSession()
+    {
+        return session;
+    }
 
     /**
      * Reactor projects
diff --git a/src/main/java/org/apache/maven/report/projectinfo/CiManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/CiManagementReport.java
index b2e674b..fad1d19 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/CiManagementReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/CiManagementReport.java
@@ -34,7 +34,6 @@ import java.util.Locale;
  * Generates the Project Continuous Integration Management report.
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
- * @version $Id$
  * @since 2.0
  */
 @Mojo( name = "cim" )
diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
index 76f8028..ffd9b62 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
@@ -28,8 +28,8 @@ import java.io.InputStreamReader;
 import java.io.LineNumberReader;
 import java.io.OutputStream;
 import java.util.Locale;
+
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
@@ -38,11 +38,14 @@ import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
+import org.apache.maven.project.ProjectBuilder;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.report.projectinfo.dependencies.Dependencies;
 import org.apache.maven.report.projectinfo.dependencies.DependenciesReportConfiguration;
 import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils;
 import org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer;
+import org.apache.maven.repository.RepositorySystem;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
@@ -55,7 +58,6 @@ import org.codehaus.plexus.util.ReaderFactory;
  *
  * @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
- * @version $Id$
  * @since 2.0
  */
 @Mojo( name = "dependencies", requiresDependencyResolution = ResolutionScope.TEST )
@@ -75,7 +77,7 @@ public class DependenciesReport
      * Maven Project Builder component.
      */
     @Component
-    private MavenProjectBuilder mavenProjectBuilder;
+    private ProjectBuilder projectBuilder;
 
     /**
      * Artifact metadata source component.
@@ -113,7 +115,7 @@ public class DependenciesReport
      * @since 2.1
      */
     @Component
-    private ArtifactFactory artifactFactory;
+    private RepositorySystem repositorySystem;
 
     // ----------------------------------------------------------------------
     // Mojo parameters
@@ -158,11 +160,16 @@ public class DependenciesReport
         {
             getLog().error( "Cannot copy ressources", e );
         }
-
-        @SuppressWarnings( "unchecked" ) RepositoryUtils repoUtils =
-            new RepositoryUtils( getLog(), mavenProjectBuilder, factory, resolver,
+        
+        ProjectBuildingRequest buildingRequest =
+            new DefaultProjectBuildingRequest( getSession().getProjectBuildingRequest() );
+        buildingRequest.setLocalRepository( localRepository );
+        buildingRequest.setRemoteRepositories( remoteRepositories );
+
+        RepositoryUtils repoUtils =
+            new RepositoryUtils( getLog(), projectBuilder, repositorySystem, resolver,
                                  project.getRemoteArtifactRepositories(), project.getPluginArtifactRepositories(),
-                                 localRepository, repositoryMetadataManager );
+                                 buildingRequest, repositoryMetadataManager );
 
         DependencyNode dependencyNode = resolveProject();
 
@@ -173,8 +180,8 @@ public class DependenciesReport
 
         DependenciesRenderer r =
             new DependenciesRenderer( getSink(), locale, getI18N( locale ), getLog(), dependencies,
-                                      dependencyNode, config, repoUtils, artifactFactory, mavenProjectBuilder,
-                                      remoteRepositories, localRepository );
+                                      dependencyNode, config, repoUtils, repositorySystem, projectBuilder,
+                                      buildingRequest );
         r.render();
     }
 
diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java
index 85ec81e..f6738b4 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java
@@ -33,9 +33,6 @@ import java.util.Set;
 import java.util.TreeMap;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
-import org.apache.maven.artifact.resolver.ArtifactCollector;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.SinkEventAttributeSet;
@@ -44,13 +41,15 @@ import org.apache.maven.model.Dependency;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.report.projectinfo.dependencies.DependencyVersionMap;
 import org.apache.maven.report.projectinfo.dependencies.SinkSerializingDependencyNodeVisitor;
 import org.apache.maven.reporting.MavenReportException;
 import org.apache.maven.shared.artifact.filter.StrictPatternIncludesArtifactFilter;
-import org.apache.maven.shared.dependency.tree.DependencyNode;
 import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
+import org.apache.maven.shared.dependency.tree.DependencyNode;
 import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
 import org.apache.maven.shared.dependency.tree.filter.AncestorOrSelfDependencyNodeFilter;
 import org.apache.maven.shared.dependency.tree.filter.AndDependencyNodeFilter;
@@ -67,7 +66,6 @@ import org.apache.maven.shared.dependency.tree.traversal.FilteringDependencyNode
  * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
  * @author <a href="mailto:wangyf2010@gmail.com">Simon Wang </a>
- * @version $Id$
  * @since 2.0
  */
 @Mojo( name = "dependency-convergence", aggregator = true )
@@ -96,28 +94,9 @@ public class DependencyConvergenceReport
      * Dependency tree builder, will use it to build dependency tree.
      */
     @Component
-    DependencyTreeBuilder dependencyTreeBuilder;
-
-    /**
-     * Use it to build dependency(artifact) tree
-     */
-    @Component
-    ArtifactFactory factory;
-
-    /**
-     * Use it to get artifact metadata source for dependency tree building.
-     */
-    @Component
-    ArtifactMetadataSource metadataSource;
-
-    /**
-     * Artifact collector - takes a set of original artifacts and resolves all of the best versions to use along with
-     * their metadata.
-     */
-    @Component
-    ArtifactCollector collector;
+    private DependencyTreeBuilder dependencyTreeBuilder;
 
-    ArtifactFilter filter = null;
+    private ArtifactFilter filter = null;
 
     private Map<MavenProject, DependencyNode> projectMap = new HashMap<MavenProject, DependencyNode>();
 
@@ -767,9 +746,14 @@ public class DependencyConvergenceReport
             new TreeMap<String, List<ReverseDependencyLink>>();
         Map<String, List<ReverseDependencyLink>> allDependencies = new TreeMap<String, List<ReverseDependencyLink>>();
 
+        ProjectBuildingRequest buildingRequest =
+            new DefaultProjectBuildingRequest( getSession().getProjectBuildingRequest() );
+        
         for ( MavenProject reactorProject : reactorProjects )
         {
-            DependencyNode node = getNode( reactorProject );
+            buildingRequest.setProject( reactorProject );
+            
+            DependencyNode node = getNode( buildingRequest );
 
             this.projectMap.put( reactorProject, node );
 
@@ -921,18 +905,19 @@ public class DependencyConvergenceReport
     /**
      * Get root node of dependency tree for a given project
      *
-     * @param project
+     * @param buildingRequest
      * @return root node of dependency tree
      * @throws MavenReportException
      */
-    private DependencyNode getNode( MavenProject project )
+    private DependencyNode getNode( ProjectBuildingRequest buildingRequest )
         throws MavenReportException
     {
         try
         {
             DependencyNode node =
-                (DependencyNode) dependencyTreeBuilder.buildDependencyTree( project, localRepository, factory,
-                                                                            metadataSource, filter, collector );
+                (DependencyNode) dependencyTreeBuilder.buildDependencyTree( buildingRequest.getProject(),
+                                                                            localRepository,
+                                                                            filter );
 
             return node;
         }
diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependencyInformationReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependencyInformationReport.java
index 2178dfd..59e2d63 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/DependencyInformationReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/DependencyInformationReport.java
@@ -32,7 +32,6 @@ import java.util.Locale;
  * Generates code snippets to be added to build tools.
  *
  * @author <a href="mailto:simonetripodi@apache.org">Simone Tripodi</a>
- * @version $Id$
  * @since 2.5
  */
 @Mojo( name = "dependency-info" )
diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java
index b6ce4b7..ce494c9 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java
@@ -19,24 +19,25 @@ package org.apache.maven.report.projectinfo;
  * under the License.
  */
 
-import org.apache.maven.artifact.factory.ArtifactFactory;
+import java.util.Locale;
+
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
+import org.apache.maven.project.ProjectBuilder;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.report.projectinfo.dependencies.ManagementDependencies;
 import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils;
 import org.apache.maven.report.projectinfo.dependencies.renderer.DependencyManagementRenderer;
-
-import java.util.Locale;
+import org.apache.maven.repository.RepositorySystem;
 
 /**
  * Generates the Project Dependency Management report.
  *
  * @author Nick Stolwijk
- * @version $Id$
  * @since 2.1
  */
 @Mojo( name = "dependency-management", requiresDependencyResolution = ResolutionScope.TEST )
@@ -51,7 +52,7 @@ public class DependencyManagementReport
      * Maven Project Builder component.
      */
     @Component
-    private MavenProjectBuilder mavenProjectBuilder;
+    private ProjectBuilder projectBuilder;
 
     /**
      * Artifact metadata source component.
@@ -65,7 +66,7 @@ public class DependencyManagementReport
      * Maven Artifact Factory component.
      */
     @Component
-    private ArtifactFactory artifactFactory;
+    private RepositorySystem repositorySystem;
 
     /**
      * Repository metadata component.
@@ -103,15 +104,20 @@ public class DependencyManagementReport
     @Override
     public void executeReport( Locale locale )
     {
-        @SuppressWarnings( "unchecked" ) RepositoryUtils repoUtils =
-            new RepositoryUtils( getLog(), mavenProjectBuilder, factory, resolver,
+        ProjectBuildingRequest buildingRequest =
+            new DefaultProjectBuildingRequest( getSession().getProjectBuildingRequest() );
+        buildingRequest.setLocalRepository( localRepository );
+        buildingRequest.setRemoteRepositories( remoteRepositories );
+        
+        RepositoryUtils repoUtils =
+            new RepositoryUtils( getLog(), projectBuilder, repositorySystem, resolver,
                                  project.getRemoteArtifactRepositories(), project.getPluginArtifactRepositories(),
-                                 localRepository, repositoryMetadataManager );
+                                 buildingRequest, repositoryMetadataManager );
 
         DependencyManagementRenderer r =
             new DependencyManagementRenderer( getSink(), locale, getI18N( locale ), getLog(),
-                                              getManagementDependencies(), artifactMetadataSource, artifactFactory,
-                                              mavenProjectBuilder, remoteRepositories, localRepository, repoUtils );
+                                              getManagementDependencies(), artifactMetadataSource, repositorySystem,
+                                              projectBuilder, buildingRequest, repoUtils );
         r.render();
     }
 
diff --git a/src/main/java/org/apache/maven/report/projectinfo/DistributionManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/DistributionManagementReport.java
index 365b6ad..48a39a7 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/DistributionManagementReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/DistributionManagementReport.java
@@ -32,7 +32,6 @@ import java.util.Locale;
  * Generates the Project Distribution Management report.
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
- * @version $Id$
  * @since 2.3
  */
 @Mojo( name = "distribution-management" )
diff --git a/src/main/java/org/apache/maven/report/projectinfo/IndexReport.java b/src/main/java/org/apache/maven/report/projectinfo/IndexReport.java
index 5c59c1d..305a41e 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/IndexReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/IndexReport.java
@@ -25,7 +25,7 @@ import org.apache.maven.doxia.tools.SiteTool;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
 import org.codehaus.plexus.i18n.I18N;
 
 import java.util.List;
@@ -36,7 +36,6 @@ import java.util.Locale;
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter </a>
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
- * @version $Id$
  * @since 2.0
  */
 @Mojo( name = "index" )
@@ -72,7 +71,7 @@ public class IndexReport
     @Override
     public void executeReport( Locale locale )
     {
-        ProjectIndexRenderer r = new ProjectIndexRenderer( project, getReactorProjects(), mavenProjectBuilder,
+        ProjectIndexRenderer r = new ProjectIndexRenderer( project, getReactorProjects(), projectBuilder,
                                                            localRepository, getName( locale ), getDescription( locale ),
                                                            getSink(), getI18N( locale ), locale, getLog(), siteTool );
 
@@ -108,10 +107,10 @@ public class IndexReport
         private boolean modules = false;
 
         ProjectIndexRenderer( MavenProject project, List<MavenProject> reactorProjects,
-                              MavenProjectBuilder mavenProjectBuilder, ArtifactRepository localRepository, String title,
+                              ProjectBuilder projectBuilder, ArtifactRepository localRepository, String title,
                               String description, Sink sink, I18N i18n, Locale locale, Log log, SiteTool siteTool )
         {
-            super( sink, project, reactorProjects, mavenProjectBuilder, localRepository, i18n, locale, log, siteTool );
+            super( sink, project, reactorProjects, projectBuilder, localRepository, i18n, locale, log, siteTool );
 
             this.title = title;
 
diff --git a/src/main/java/org/apache/maven/report/projectinfo/IssueManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/IssueManagementReport.java
index 48379d1..e849c9c 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/IssueManagementReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/IssueManagementReport.java
@@ -32,7 +32,6 @@ import java.util.Locale;
  * Generates the Project Issue Management report.
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
- * @version $Id$
  * @since 2.0
  */
 @Mojo( name = "issue-tracking" )
diff --git a/src/main/java/org/apache/maven/report/projectinfo/LicensesReport.java b/src/main/java/org/apache/maven/report/projectinfo/LicensesReport.java
index cd73cd4..15baca4 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/LicensesReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/LicensesReport.java
@@ -43,7 +43,6 @@ import java.util.regex.Pattern;
  * Generates the Project Licenses report.
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- * @version $Id$
  * @since 2.0
  */
 @Mojo( name = "license" )
diff --git a/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java b/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java
index 8e4b28e..d2342f0 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java
@@ -24,7 +24,6 @@ import org.apache.maven.model.MailingList;
 import org.apache.maven.model.Model;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
 import org.codehaus.plexus.i18n.I18N;
 import org.codehaus.plexus.util.StringUtils;
 
@@ -38,23 +37,12 @@ import java.util.Locale;
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter </a>
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
- * @version $Id$
  * @since 2.0
  */
 @Mojo( name = "mailing-list" )
 public class MailingListsReport
     extends AbstractProjectInfoReport
 {
-
-    /**
-     * This can override the header text of the mailing list(s) report
-     *
-     * @since 2.2
-     * @deprecated since 2.3, you should use a custom bundle.
-     */
-    @Parameter
-    protected String introduction;
-
     // ----------------------------------------------------------------------
     // Public methods
     // ----------------------------------------------------------------------
@@ -75,8 +63,7 @@ public class MailingListsReport
     public void executeReport( Locale locale )
     {
         MailingListsRenderer r =
-            new MailingListsRenderer( getSink(), getProject().getModel(), getI18N( locale ), locale, introduction,
-                                      getLog() );
+            new MailingListsRenderer( getSink(), getProject().getModel(), getI18N( locale ), locale, getLog() );
 
         r.render();
     }
@@ -105,22 +92,16 @@ public class MailingListsReport
     protected static class MailingListsRenderer
         extends AbstractProjectInfoRenderer
     {
-        private static final String[] EMPTY_STRING_ARRAY = new String[0];
-
         private final Model model;
 
-        private final String introduction;
-
         private final Log log;
 
-        MailingListsRenderer( Sink sink, Model model, I18N i18n, Locale locale, String introduction, Log log )
+        MailingListsRenderer( Sink sink, Model model, I18N i18n, Locale locale, Log log )
         {
             super( sink, i18n, locale );
 
             this.model = model;
 
-            this.introduction = introduction;
-
             this.log = log;
         }
 
@@ -148,16 +129,7 @@ public class MailingListsReport
 
             startSection( getTitle() );
 
-            if ( StringUtils.isNotBlank( introduction ) )
-            {
-                log.warn( "Since 2.3, the <introduction/> parameter is deprecated. Please use a <customBundle/>"
-                    + " parameter to configure a custom bundle." );
-                paragraph( introduction );
-            }
-            else
-            {
-                paragraph( getI18nString( "intro" ) );
-            }
+            paragraph( getI18nString( "intro" ) );
 
             startTable();
 
diff --git a/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java b/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java
index ff0d370..e02298a 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java
@@ -32,16 +32,17 @@ import org.apache.maven.model.DistributionManagement;
 import org.apache.maven.model.Site;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.codehaus.plexus.i18n.I18N;
 
 /**
  * Generates the Project Modules report.
  *
  * @author ltheussl
- * @version $Id$
  * @since 2.2
  */
 @Mojo( name = "modules" )
@@ -67,7 +68,7 @@ public class ModulesReport
     @Override
     public void executeReport( Locale locale )
     {
-        new ModulesRenderer( getSink(), getProject(), getReactorProjects(), mavenProjectBuilder, localRepository,
+        new ModulesRenderer( getSink(), getProject(), getReactorProjects(), projectBuilder, localRepository,
                              getI18N( locale ), locale, getLog(), siteTool ).render();
     }
 
@@ -100,21 +101,21 @@ public class ModulesReport
 
         protected List<MavenProject> reactorProjects;
 
-        protected MavenProjectBuilder mavenProjectBuilder;
+        protected ProjectBuilder projectBuilder;
 
         protected ArtifactRepository localRepository;
 
         protected SiteTool siteTool;
 
         ModulesRenderer( Sink sink, MavenProject project, List<MavenProject> reactorProjects,
-                         MavenProjectBuilder mavenProjectBuilder, ArtifactRepository localRepository, I18N i18n,
+                         ProjectBuilder projectBuilder, ArtifactRepository localRepository, I18N i18n,
                          Locale locale, Log log, SiteTool siteTool )
         {
             super( sink, i18n, locale );
 
             this.project = project;
             this.reactorProjects = reactorProjects;
-            this.mavenProjectBuilder = mavenProjectBuilder;
+            this.projectBuilder = projectBuilder;
             this.localRepository = localRepository;
             this.siteTool = siteTool;
             this.log = log;
@@ -154,6 +155,9 @@ public class ModulesReport
 
             final String baseUrl = getDistMgmntSiteUrl( project );
 
+            ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
+            buildingRequest.setLocalRepository( localRepository );
+            
             for ( String module : modules )
             {
                 MavenProject moduleProject = getModuleFromReactor( project, reactorProjects, module );
@@ -167,7 +171,7 @@ public class ModulesReport
                     {
                         try
                         {
-                            moduleProject = mavenProjectBuilder.build( f, localRepository, null );
+                            moduleProject = projectBuilder.build( f, buildingRequest ).getProject();
                         }
                         catch ( ProjectBuildingException e )
                         {
diff --git a/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java
index 1052ad9..e46e457 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java
@@ -20,8 +20,6 @@ package org.apache.maven.report.projectinfo;
  */
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.model.Plugin;
@@ -30,13 +28,15 @@ import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.RepositorySystem;
 import org.codehaus.plexus.i18n.I18N;
 import org.codehaus.plexus.util.StringUtils;
 
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
@@ -46,7 +46,6 @@ import java.util.Locale;
  * Generates the Project Plugin Management report.
  *
  * @author Nick Stolwijk
- * @version $Id$
  * @since 2.1
  */
 @Mojo( name = "plugin-management", requiresDependencyResolution = ResolutionScope.TEST )
@@ -61,13 +60,7 @@ public class PluginManagementReport
      * Maven Project Builder component.
      */
     @Component
-    private MavenProjectBuilder mavenProjectBuilder;
-
-    /**
-     * Maven Artifact Factory component.
-     */
-    @Component
-    private ArtifactFactory artifactFactory;
+    private ProjectBuilder projectBuilder;
 
     // ----------------------------------------------------------------------
     // Public methods
@@ -78,8 +71,8 @@ public class PluginManagementReport
     {
         PluginManagementRenderer r =
             new PluginManagementRenderer( getLog(), getSink(), locale, getI18N( locale ),
-                                          project.getPluginManagement().getPlugins(), project, mavenProjectBuilder,
-                                          artifactFactory, localRepository );
+                                          project.getPluginManagement().getPlugins(), project, projectBuilder,
+                                          repositorySystem, getSession().getProjectBuildingRequest() );
         r.render();
     }
 
@@ -126,11 +119,11 @@ public class PluginManagementReport
 
         private final MavenProject project;
 
-        private final MavenProjectBuilder mavenProjectBuilder;
+        private final ProjectBuilder projectBuilder;
 
-        private final ArtifactFactory artifactFactory;
+        private final RepositorySystem repositorySystem;
 
-        private final ArtifactRepository localRepository;
+        private final ProjectBuildingRequest buildingRequest;
 
         /**
          * @param log {@link #log}
@@ -139,13 +132,13 @@ public class PluginManagementReport
          * @param i18n {@link I18N}
          * @param plugins {@link Plugin}
          * @param project {@link MavenProject}
-         * @param mavenProjectBuilder {@link MavenProjectBuilder}
-         * @param artifactFactory {@link ArtifactFactory}
-         * @param localRepository {@link ArtifactRepository}
+         * @param projectBuilder {@link ProjectBuilder}
+         * @param repositorySystem {@link RepositorySystem}
+         * @param buildingRequest {@link ArtifactRepository}
          */
         public PluginManagementRenderer( Log log, Sink sink, Locale locale, I18N i18n, List<Plugin> plugins,
-                                         MavenProject project, MavenProjectBuilder mavenProjectBuilder,
-                                         ArtifactFactory artifactFactory, ArtifactRepository localRepository )
+                                         MavenProject project, ProjectBuilder projectBuilder,
+                                         RepositorySystem repositorySystem, ProjectBuildingRequest buildingRequest )
         {
             super( sink, i18n, locale );
 
@@ -155,11 +148,11 @@ public class PluginManagementReport
 
             this.project = project;
 
-            this.mavenProjectBuilder = mavenProjectBuilder;
+            this.projectBuilder = projectBuilder;
 
-            this.artifactFactory = artifactFactory;
+            this.repositorySystem = repositorySystem;
 
-            this.localRepository = localRepository;
+            this.buildingRequest = buildingRequest;
         }
 
         @Override
@@ -201,6 +194,9 @@ public class PluginManagementReport
             startTable();
             tableHeader( tableHeader );
 
+            ProjectBuildingRequest buildRequest = new DefaultProjectBuildingRequest( buildingRequest );
+            buildRequest.setRemoteRepositories( project.getPluginArtifactRepositories() );
+            
             for ( Plugin plugin : pluginManagement )
             {
                 VersionRange versionRange;
@@ -213,19 +209,13 @@ public class PluginManagementReport
                     versionRange = VersionRange.createFromVersion( plugin.getVersion() );
                 }
 
-                Artifact pluginArtifact = artifactFactory.createParentArtifact( plugin.getGroupId(), plugin
+                Artifact pluginArtifact = repositorySystem.createProjectArtifact( plugin.getGroupId(), plugin
                     .getArtifactId(), versionRange.toString() );
-                @SuppressWarnings( "unchecked" )
-                List<ArtifactRepository> artifactRepositories = project.getPluginArtifactRepositories();
-                if ( artifactRepositories == null )
-                {
-                    artifactRepositories = new ArrayList<ArtifactRepository>();
-                }
+
                 try
                 {
-                    MavenProject pluginProject = mavenProjectBuilder.buildFromRepository( pluginArtifact,
-                                                                                          artifactRepositories,
-                                                                                          localRepository );
+                    MavenProject pluginProject = projectBuilder.build( pluginArtifact, buildingRequest ).getProject();
+                    
                     tableRow( getPluginRow( pluginProject.getGroupId(), pluginProject.getArtifactId(), pluginProject
                         .getVersion(), pluginProject.getUrl() ) );
                 }
diff --git a/src/main/java/org/apache/maven/report/projectinfo/PluginsReport.java b/src/main/java/org/apache/maven/report/projectinfo/PluginsReport.java
index a4bc0dd..1c2159a 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/PluginsReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/PluginsReport.java
@@ -26,7 +26,6 @@ import java.util.List;
 import java.util.Locale;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.doxia.sink.Sink;
@@ -36,9 +35,12 @@ import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.RepositorySystem;
 import org.codehaus.plexus.i18n.I18N;
 import org.codehaus.plexus.util.StringUtils;
 
@@ -46,7 +48,6 @@ import org.codehaus.plexus.util.StringUtils;
  * Generates the Project Plugins report.
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- * @version $Id$
  * @since 2.1
  */
 @Mojo( name = "plugins", requiresDependencyResolution = ResolutionScope.TEST )
@@ -61,13 +62,13 @@ public class PluginsReport
      * Maven Project Builder component.
      */
     @Component
-    private MavenProjectBuilder mavenProjectBuilder;
+    private ProjectBuilder projectBuilder;
 
     /**
      * Maven Artifact Factory component.
      */
     @Component
-    private ArtifactFactory artifactFactory;
+    private RepositorySystem repositorySystem;
 
     // ----------------------------------------------------------------------
     // Public methods
@@ -88,11 +89,10 @@ public class PluginsReport
     @Override
     public void executeReport( Locale locale )
     {
-        @SuppressWarnings( "unchecked" )
         PluginsRenderer r =
             new PluginsRenderer( getLog(), getSink(), locale, getI18N( locale ), project.getBuildPlugins(),
-                                 project.getReportPlugins(), project, mavenProjectBuilder, artifactFactory,
-                                 localRepository );
+                                 project.getReportPlugins(), project, projectBuilder, repositorySystem,
+                                 getSession().getProjectBuildingRequest() );
         r.render();
     }
 
@@ -126,11 +126,11 @@ public class PluginsReport
 
         private final MavenProject project;
 
-        private final MavenProjectBuilder mavenProjectBuilder;
+        private final ProjectBuilder projectBuilder;
 
-        private final ArtifactFactory artifactFactory;
+        private final RepositorySystem repositorySystem;
 
-        private final ArtifactRepository localRepository;
+        private final ProjectBuildingRequest buildingRequest;
 
         /**
          * @param log {@link #log}
@@ -140,15 +140,15 @@ public class PluginsReport
          * @param plugins {@link Artifact}
          * @param reports {@link Artifact}
          * @param project {@link MavenProject}
-         * @param mavenProjectBuilder {@link MavenProjectBuilder}
-         * @param artifactFactory {@link ArtifactFactory}
+         * @param projectBuilder {@link ProjectBuilder}
+         * @param repositorySystem {@link RepositorySystem}
          * @param localRepository {@link ArtifactRepository}
          *
          */
         public PluginsRenderer( Log log, Sink sink, Locale locale, I18N i18n, List<Plugin> plugins,
                                 List<ReportPlugin> reports, MavenProject project,
-                                MavenProjectBuilder mavenProjectBuilder, ArtifactFactory artifactFactory,
-                                ArtifactRepository localRepository )
+                                ProjectBuilder projectBuilder, RepositorySystem repositorySystem,
+                                ProjectBuildingRequest buildingRequest )
         {
             super( sink, i18n, locale );
 
@@ -160,11 +160,11 @@ public class PluginsReport
 
             this.project = project;
 
-            this.mavenProjectBuilder = mavenProjectBuilder;
+            this.projectBuilder = projectBuilder;
 
-            this.artifactFactory = artifactFactory;
+            this.repositorySystem = repositorySystem;
 
-            this.localRepository = localRepository;
+            this.buildingRequest = buildingRequest;
         }
 
         @Override
@@ -190,6 +190,7 @@ public class PluginsReport
         private void renderSectionPlugins( boolean isPlugins )
         {
             List<GAV> list = isPlugins ? GAV.pluginsToGAV( plugins ) : GAV.reportPluginsToGAV( reports, project );
+            
             String[] tableHeader = getPluginTableHeader();
 
             startSection( getI18nString( isPlugins ? "build.title" : "report.title" ) );
@@ -207,24 +208,27 @@ public class PluginsReport
             startTable();
             tableHeader( tableHeader );
 
+            List<ArtifactRepository> artifactRepositories = project.getPluginArtifactRepositories();
+            if ( artifactRepositories == null )
+            {
+                artifactRepositories = new ArrayList<ArtifactRepository>();
+            }
+
+            ProjectBuildingRequest buildRequest = new DefaultProjectBuildingRequest( buildingRequest );
+            buildRequest.setRemoteRepositories( artifactRepositories );
+            
             for ( GAV plugin : list )
             {
                 VersionRange versionRange = VersionRange.createFromVersion( plugin.getVersion() );
 
+                
                 Artifact pluginArtifact =
-                    artifactFactory.createParentArtifact( plugin.getGroupId(), plugin.getArtifactId(),
+                                repositorySystem.createProjectArtifact( plugin.getGroupId(), plugin.getArtifactId(),
                                                           versionRange.toString() );
-                @SuppressWarnings( "unchecked" )
-                List<ArtifactRepository> artifactRepositories = project.getPluginArtifactRepositories();
-                if ( artifactRepositories == null )
-                {
-                    artifactRepositories = new ArrayList<ArtifactRepository>();
-                }
                 try
                 {
-                    MavenProject pluginProject = mavenProjectBuilder.buildFromRepository( pluginArtifact,
-                                                                                          artifactRepositories,
-                                                                                          localRepository );
+                    MavenProject pluginProject = projectBuilder.build( pluginArtifact, buildRequest ).getProject();
+
                     tableRow( getPluginRow( pluginProject.getGroupId(), pluginProject.getArtifactId(), pluginProject
                                             .getVersion(), pluginProject.getUrl() ) );
                 }
diff --git a/src/main/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtils.java b/src/main/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtils.java
index 1bdce16..50d581c 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtils.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtils.java
@@ -29,8 +29,6 @@ import java.security.KeyManagementException;
 import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
 import java.security.cert.X509Certificate;
-import java.util.Collections;
-import java.util.List;
 import java.util.Properties;
 
 import javax.net.ssl.HostnameVerifier;
@@ -41,18 +39,17 @@ import javax.net.ssl.SSLSocketFactory;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
 
-import org.apache.commons.lang.math.NumberUtils;
 import org.apache.commons.validator.routines.RegexValidator;
 import org.apache.commons.validator.routines.UrlValidator;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectBuildingRequest;
 // CHECKSTYLE_OFF: UnusedImports
 import org.apache.maven.reporting.AbstractMavenReportRenderer;
+import org.apache.maven.repository.RepositorySystem;
 // CHECKSTYLE_ON: UnusedImports
 import org.apache.maven.settings.Proxy;
 import org.apache.maven.settings.Server;
@@ -214,16 +211,12 @@ public class ProjectInfoReportUtils
     /**
      * @param factory not null
      * @param artifact not null
-     * @param mavenProjectBuilder not null
-     * @param remoteRepositories not null
-     * @param localRepository not null
+     * @param projectBuilder not null
+     * @param buildingRequest not null
      * @return the artifact url or null if an error occurred.
      */
-    // CHECKSTYLE_OFF: LineLength
-    public static String getArtifactUrl( ArtifactFactory factory, Artifact artifact,
-                                         MavenProjectBuilder mavenProjectBuilder,
-                                         List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository )
-    // CHECKSTYLE_ON: LineLength
+    public static String getArtifactUrl( RepositorySystem repositorySystem, Artifact artifact,
+                                         ProjectBuilder projectBuilder, ProjectBuildingRequest buildingRequest )
     {
         if ( Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ) )
         {
@@ -234,15 +227,12 @@ public class ProjectInfoReportUtils
         if ( !"pom".equals( copyArtifact.getType() ) )
         {
             copyArtifact =
-                factory.createProjectArtifact( copyArtifact.getGroupId(), copyArtifact.getArtifactId(),
-                                               copyArtifact.getVersion(), copyArtifact.getScope() );
+                repositorySystem.createProjectArtifact( copyArtifact.getGroupId(), copyArtifact.getArtifactId(),
+                                                        copyArtifact.getVersion() );
         }
         try
         {
-            MavenProject pluginProject =
-                mavenProjectBuilder.buildFromRepository( copyArtifact,
-                                                         remoteRepositories == null ? Collections.EMPTY_LIST
-                                                                         : remoteRepositories, localRepository );
+            MavenProject pluginProject = projectBuilder.build( copyArtifact, buildingRequest ).getProject();
 
             if ( isArtifactUrlValid( pluginProject.getUrl() ) )
             {
@@ -389,33 +379,4 @@ public class ProjectInfoReportUtils
 
         return conn;
     }
-
-    /**
-     * @param str The string to be checked.
-     * @return true if is number false otherwise.
-     */
-    @Deprecated
-    public static boolean isNumber( String str )
-    {
-        if ( str.startsWith( "+" ) )
-        {
-            str = str.substring( 1 );
-        }
-        return NumberUtils.isNumber( str );
-    }
-
-    /**
-     * @param str The string which should be converted.
-     * @param defaultValue The default value.
-     * @return Converted string.
-     */
-    @Deprecated
-    public static float toFloat( String str, float defaultValue )
-    {
-        if ( str.startsWith( "+" ) )
-        {
-            str = str.substring( 1 );
-        }
-        return NumberUtils.toFloat( str, defaultValue );
-    }
 }
diff --git a/src/main/java/org/apache/maven/report/projectinfo/ScmReport.java b/src/main/java/org/apache/maven/report/projectinfo/ScmReport.java
index f64c951..3508e55 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/ScmReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/ScmReport.java
@@ -48,7 +48,6 @@ import java.util.Locale;
  * Generates the Project Source Code Management (SCM) report.
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
- * @version $Id$
  * @since 2.0
  */
 @Mojo( name = "scm" )
diff --git a/src/main/java/org/apache/maven/report/projectinfo/SummaryReport.java b/src/main/java/org/apache/maven/report/projectinfo/SummaryReport.java
index cfafb68..a99ce06 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/SummaryReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/SummaryReport.java
@@ -37,7 +37,6 @@ import java.util.Locale;
  * Generates the Project Summary report.
  *
  * @author Edwin Punzalan
- * @version $Id$
  * @since 2.0
  */
 @Mojo( name = "summary" )
diff --git a/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java b/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java
index 0d526cf..efd30e6 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java
@@ -41,7 +41,6 @@ import org.codehaus.plexus.util.StringUtils;
  * Generates the Project Team report.
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
- * @version $Id$
  * @since 2.0
  */
 @Mojo( name = "project-team" )
@@ -135,8 +134,6 @@ public class TeamReport
 
         private final Model model;
 
-        private final Log log;
-
         private final boolean showAvatarImages;
 
         private final String protocol;
@@ -146,7 +143,6 @@ public class TeamReport
             super( sink, i18n, locale );
 
             this.model = model;
-            this.log = log;
             this.showAvatarImages = showAvatarImages;
 
             // prepare protocol for gravatar
diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java
index 5290428..6e8b0a9 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java
@@ -37,7 +37,6 @@ import org.apache.maven.shared.jar.classes.JarClassesAnalysis;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
- * @version $Id$
  * @since 2.1
  */
 public class Dependencies
diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependenciesReportConfiguration.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependenciesReportConfiguration.java
index db3f2ea..82127fc 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependenciesReportConfiguration.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependenciesReportConfiguration.java
@@ -22,7 +22,6 @@ package org.apache.maven.report.projectinfo.dependencies;
 /**
  * Wrap DependenciesReport Mojo parameters.
  *
- * @version $Id$
  * @since 2.1
  */
 public class DependenciesReportConfiguration
diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependencyVersionMap.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependencyVersionMap.java
index f7f3e6e..5b17d41 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependencyVersionMap.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependencyVersionMap.java
@@ -30,7 +30,6 @@ import org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor;
 
 /**
  * @author Simon Wang
- * @version $Id$
  * @since 2.8
  */
 public class DependencyVersionMap
diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/ManagementDependencies.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/ManagementDependencies.java
index 5b43d1b..7f407f9 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/ManagementDependencies.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/ManagementDependencies.java
@@ -29,7 +29,6 @@ import org.apache.maven.model.Dependency;
 
 /**
  * @author Nick Stolwijk
- * @version $Id$
  * @since 2.1
  */
 public class ManagementDependencies
diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java
index 81ead9d..bad2d99 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java
@@ -24,21 +24,18 @@ import java.util.List;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.metadata.Metadata;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
-import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
-import org.apache.maven.artifact.repository.metadata.Versioning;
-import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
-import org.codehaus.plexus.util.StringUtils;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.RepositorySystem;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolver;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;
+import org.apache.maven.shared.artifact.resolve.ArtifactResult;
 
 /**
  * Utilities methods to play with repository
@@ -50,9 +47,9 @@ public class RepositoryUtils
 {
     private final Log log;
 
-    private final MavenProjectBuilder mavenProjectBuilder;
+    private final ProjectBuilder projectBuilder;
 
-    private final ArtifactFactory factory;
+    private final RepositorySystem repositorySystem;
 
     private final List<ArtifactRepository> remoteRepositories;
 
@@ -60,7 +57,7 @@ public class RepositoryUtils
 
     private final ArtifactResolver resolver;
 
-    private final ArtifactRepository localRepository;
+    private final ProjectBuildingRequest buildingRequest;
 
     /**
      * @param log {@link Log}
@@ -72,59 +69,37 @@ public class RepositoryUtils
      * @param localRepository {@link ArtifactRepository}
      * @param repositoryMetadataManager {@link RepositoryMetadataManager}
      */
-    public RepositoryUtils( Log log, MavenProjectBuilder mavenProjectBuilder, ArtifactFactory factory,
+    public RepositoryUtils( Log log, ProjectBuilder projectBuilder, RepositorySystem repositorySystem,
                             ArtifactResolver resolver, List<ArtifactRepository> remoteRepositories,
-                            List<ArtifactRepository> pluginRepositories, ArtifactRepository localRepository,
+                            List<ArtifactRepository> pluginRepositories, ProjectBuildingRequest buildingRequest,
                             RepositoryMetadataManager repositoryMetadataManager )
     {
         this.log = log;
-        this.mavenProjectBuilder = mavenProjectBuilder;
-        this.factory = factory;
+        this.projectBuilder = projectBuilder;
+        this.repositorySystem = repositorySystem;
         this.resolver = resolver;
         this.remoteRepositories = remoteRepositories;
         this.pluginRepositories = pluginRepositories;
-        this.localRepository = localRepository;
-    }
-
-    /**
-     * @return localrepo
-     */
-    public ArtifactRepository getLocalRepository()
-    {
-        return localRepository;
-    }
-
-    /**
-     * @return remote artifact repo
-     */
-    public List<ArtifactRepository> getRemoteArtifactRepositories()
-    {
-        return remoteRepositories;
-    }
-
-    /**
-     * @return plugin artifact repo
-     */
-    public List<ArtifactRepository> getPluginArtifactRepositories()
-    {
-        return pluginRepositories;
+        this.buildingRequest = buildingRequest;
     }
 
     /**
      * @param artifact not null
-     * @throws ArtifactResolutionException if any
-     * @throws ArtifactNotFoundException if any
-     * @see ArtifactResolver#resolve(Artifact, List, ArtifactRepository)
+     * @throws ArtifactResolverException if any 
      */
     public void resolve( Artifact artifact )
-        throws ArtifactResolutionException, ArtifactNotFoundException
+        throws ArtifactResolverException
     {
         List<ArtifactRepository> repos =
             new ArrayList<ArtifactRepository>( pluginRepositories.size() + remoteRepositories.size() );
         repos.addAll( pluginRepositories );
         repos.addAll( remoteRepositories );
 
-        resolver.resolve( artifact, repos, localRepository );
+        ProjectBuildingRequest buildRequest = new DefaultProjectBuildingRequest( buildingRequest );
+        buildRequest.setRemoteRepositories( repos );
+
+        ArtifactResult result = resolver.resolveArtifact( buildRequest , artifact );
+        artifact.setFile( result.getArtifact().getFile() );
     }
 
     /**
@@ -142,14 +117,12 @@ public class RepositoryUtils
         boolean allowStubModel = false;
         if ( !"pom".equals( artifact.getType() ) )
         {
-            projectArtifact = factory.createProjectArtifact( artifact.getGroupId(), artifact.getArtifactId(),
-                                                             artifact.getVersion(), artifact.getScope() );
+            projectArtifact = repositorySystem.createProjectArtifact( artifact.getGroupId(), artifact.getArtifactId(),
+                                                             artifact.getVersion() );
             allowStubModel = true;
         }
 
-        // TODO: we should use the MavenMetadataSource instead
-        return mavenProjectBuilder.buildFromRepository( projectArtifact, remoteRepositories, localRepository,
-                                                        allowStubModel );
+        return projectBuilder.build( projectArtifact, allowStubModel, buildingRequest ).getProject();
     }
 
     /**
@@ -178,38 +151,10 @@ public class RepositoryUtils
                     {
                         resolve( artifact );
                     }
-                    catch ( ArtifactResolutionException e )
+                    catch ( ArtifactResolverException e )
                     {
                         log.error( "Artifact: " + artifact.getId() + " could not be resolved." );
                     }
-                    catch ( ArtifactNotFoundException e )
-                    {
-                        log.error( "Artifact: " + artifact.getId() + " was not found." );
-                    }
-                }
-
-                for ( ArtifactMetadata m : artifact.getMetadataList() )
-                {
-                    if ( m instanceof SnapshotArtifactRepositoryMetadata )
-                    {
-                        SnapshotArtifactRepositoryMetadata snapshotMetadata = (SnapshotArtifactRepositoryMetadata) m;
-
-                        Metadata metadata = snapshotMetadata.getMetadata();
-                        Versioning versioning = metadata.getVersioning();
-                        if ( versioning == null || versioning.getSnapshot() == null
-                            || versioning.getSnapshot().isLocalCopy()
-                            || versioning.getSnapshot().getTimestamp() == null )
-                        {
-                            continue;
-                        }
-
-                        // create the version according SnapshotTransformation
-                        String version =
-                            StringUtils.replace( copyArtifact.getVersion(), Artifact.SNAPSHOT_VERSION,
-                                                 versioning.getSnapshot().getTimestamp() )
-                                + "-" + versioning.getSnapshot().getBuildNumber();
-                        copyArtifact.setVersion( version );
-                    }
                 }
             }
         }
diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java
index 87a2f93..189100c 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java
@@ -40,10 +40,6 @@ import java.util.SortedSet;
 import java.util.TreeSet;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.SinkEventAttributeSet;
 import org.apache.maven.doxia.sink.SinkEventAttributes;
@@ -51,13 +47,16 @@ import org.apache.maven.doxia.util.HtmlTools;
 import org.apache.maven.model.License;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.report.projectinfo.AbstractProjectInfoRenderer;
 import org.apache.maven.report.projectinfo.ProjectInfoReportUtils;
 import org.apache.maven.report.projectinfo.dependencies.Dependencies;
 import org.apache.maven.report.projectinfo.dependencies.DependenciesReportConfiguration;
 import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils;
+import org.apache.maven.repository.RepositorySystem;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
 import org.apache.maven.shared.jar.JarData;
 import org.codehaus.plexus.i18n.I18N;
@@ -126,13 +125,11 @@ public class DependenciesRenderer
         }
     };
 
-    private final ArtifactFactory artifactFactory;
+    private final RepositorySystem repositorySystem;
 
-    private final MavenProjectBuilder mavenProjectBuilder;
+    private final ProjectBuilder projectBuilder;
 
-    private final List<ArtifactRepository> remoteRepositories;
-
-    private final ArtifactRepository localRepository;
+    private final ProjectBuildingRequest buildingRequest;
 
     static
     {
@@ -148,6 +145,8 @@ public class DependenciesRenderer
     }
 
     /**
+     * 
+    /**
      * Default constructor.
      *
      * @param sink {@link Sink}
@@ -158,16 +157,15 @@ public class DependenciesRenderer
      * @param dependencyTreeNode {@link DependencyNode}
      * @param config {@link DependenciesReportConfiguration}
      * @param repoUtils {@link RepositoryUtils}
-     * @param artifactFactory {@link ArtifactFactory}
-     * @param mavenProjectBuilder {@link MavenProjectBuilder}
-     * @param remoteRepositories {@link ArtifactRepository}
-     * @param localRepository {@link ArtifactRepository}
+     * @param repositorySystem {@link RepositorySystem}
+     * @param projectBuilder {@link ProjectBuilder}
+     * @param buildingRequest {@link ProjectBuildingRequest}
      */
     public DependenciesRenderer( Sink sink, Locale locale, I18N i18n, Log log, 
                                  Dependencies dependencies, DependencyNode dependencyTreeNode,
                                  DependenciesReportConfiguration config, RepositoryUtils repoUtils,
-                                 ArtifactFactory artifactFactory, MavenProjectBuilder mavenProjectBuilder,
-                                 List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository )
+                                 RepositorySystem repositorySystem, ProjectBuilder projectBuilder,
+                                 ProjectBuildingRequest buildingRequest )
     {
         super( sink, i18n, locale );
 
@@ -176,10 +174,9 @@ public class DependenciesRenderer
         this.dependencyNode = dependencyTreeNode;
         this.repoUtils = repoUtils;
         this.configuration = config;
-        this.artifactFactory = artifactFactory;
-        this.mavenProjectBuilder = mavenProjectBuilder;
-        this.remoteRepositories = remoteRepositories;
-        this.localRepository = localRepository;
+        this.repositorySystem = repositorySystem;
+        this.projectBuilder = projectBuilder;
+        this.buildingRequest = buildingRequest;
 
         // Using the right set of symbols depending of the locale
         DEFAULT_DECIMAL_FORMAT.setDecimalFormatSymbols( new DecimalFormatSymbols( locale ) );
@@ -790,8 +787,7 @@ public class DependenciesRenderer
             artifact.isOptional() ? getI18nString( "column.isOptional" ) : getI18nString( "column.isNotOptional" );
 
         String url =
-            ProjectInfoReportUtils.getArtifactUrl( artifactFactory, artifact, mavenProjectBuilder, remoteRepositories,
-                                                   localRepository );
+            ProjectInfoReportUtils.getArtifactUrl( repositorySystem, artifact, projectBuilder, buildingRequest );
         String artifactIdCell = ProjectInfoReportUtils.getArtifactIdCell( artifact.getArtifactId(), url );
 
         MavenProject artifactProject;
@@ -799,7 +795,7 @@ public class DependenciesRenderer
         try
         {
             artifactProject = repoUtils.getMavenProjectFromRepository( artifact );
-            @SuppressWarnings( "unchecked" )
+
             List<License> licenses = artifactProject.getLicenses();
             for ( License license : licenses )
             {
@@ -893,7 +889,7 @@ public class DependenciesRenderer
                 String artifactDescription = artifactProject.getDescription();
                 String artifactUrl = artifactProject.getUrl();
                 String artifactName = artifactProject.getName();
-                @SuppressWarnings( "unchecked" )
+
                 List<License> licenses = artifactProject.getLicenses();
 
                 sink.tableRow();
@@ -1081,26 +1077,11 @@ public class DependenciesRenderer
                 {
                     repoUtils.resolve( artifact );
                 }
-                catch ( ArtifactResolutionException e )
+                catch ( ArtifactResolverException e )
                 {
                     log.error( "Artifact " + artifact.getId() + " can't be resolved.", e );
                     continue;
                 }
-                catch ( ArtifactNotFoundException e )
-                {
-                    if ( ( dependencies.getProject().getGroupId().equals( artifact.getGroupId() ) )
-                        && ( dependencies.getProject().getArtifactId().equals( artifact.getArtifactId() ) )
-                        && ( dependencies.getProject().getVersion().equals( artifact.getVersion() ) ) )
-                    {
-                        log.warn( "The artifact of this project has never been deployed." );
-                    }
-                    else
-                    {
-                        log.error( "Artifact " + artifact.getId() + " not found.", e );
-                    }
-
-                    continue;
-                }
 
                 if ( artifact.getFile() == null )
                 {
diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependencyManagementRenderer.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependencyManagementRenderer.java
index efd5fe9..eb6f83e 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependencyManagementRenderer.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependencyManagementRenderer.java
@@ -27,10 +27,8 @@ import java.util.Locale;
 import java.util.Map;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
-import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.versioning.ArtifactVersion;
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.artifact.versioning.VersionRange;
@@ -39,18 +37,19 @@ import org.apache.maven.model.Dependency;
 import org.apache.maven.model.License;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.report.projectinfo.AbstractProjectInfoRenderer;
 import org.apache.maven.report.projectinfo.ProjectInfoReportUtils;
 import org.apache.maven.report.projectinfo.dependencies.ManagementDependencies;
 import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils;
+import org.apache.maven.repository.RepositorySystem;
 import org.codehaus.plexus.i18n.I18N;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
  * @author Nick Stolwijk
- * @version $Id$
  * @since 2.1
  */
 public class DependencyManagementRenderer
@@ -62,13 +61,11 @@ public class DependencyManagementRenderer
 
     private final ArtifactMetadataSource artifactMetadataSource;
 
-    private final ArtifactFactory artifactFactory;
+    private final RepositorySystem repositorySystem;
 
-    private final MavenProjectBuilder mavenProjectBuilder;
+    private final ProjectBuilder projectBuilder;
 
-    private final List<ArtifactRepository> remoteRepositories;
-
-    private final ArtifactRepository localRepository;
+    private final ProjectBuildingRequest buildingRequest;
 
     private final RepositoryUtils repoUtils;
 
@@ -81,8 +78,8 @@ public class DependencyManagementRenderer
      * @param log {@link Log}
      * @param dependencies {@link ManagementDependencies}
      * @param artifactMetadataSource {@link ArtifactMetadataSource}
-     * @param artifactFactory {@link ArtifactFactory}
-     * @param mavenProjectBuilder {@link MavenProjectBuilder}
+     * @param repositorySystem {@link RepositorySystem}
+     * @param projectBuilder {@link ProjectBuilder}
      * @param remoteRepositories {@link ArtifactRepository}
      * @param localRepository {@link ArtifactRepository}
      * @param repoUtils {@link RepositoryUtils}
@@ -90,19 +87,17 @@ public class DependencyManagementRenderer
     public DependencyManagementRenderer( Sink sink, Locale locale, I18N i18n, Log log,
                                          ManagementDependencies dependencies,
                                          ArtifactMetadataSource artifactMetadataSource,
-                                         ArtifactFactory artifactFactory, MavenProjectBuilder mavenProjectBuilder,
-                                         List<ArtifactRepository> remoteRepositories,
-                                         ArtifactRepository localRepository, RepositoryUtils repoUtils )
+                                         RepositorySystem repositorySystem, ProjectBuilder projectBuilder,
+                                         ProjectBuildingRequest buildingRequest, RepositoryUtils repoUtils )
     {
         super( sink, i18n, locale );
 
         this.log = log;
         this.dependencies = dependencies;
         this.artifactMetadataSource = artifactMetadataSource;
-        this.artifactFactory = artifactFactory;
-        this.mavenProjectBuilder = mavenProjectBuilder;
-        this.remoteRepositories = remoteRepositories;
-        this.localRepository = localRepository;
+        this.repositorySystem = repositorySystem;
+        this.projectBuilder = projectBuilder;
+        this.buildingRequest = buildingRequest;
         this.repoUtils = repoUtils;
     }
 
@@ -217,7 +212,7 @@ public class DependencyManagementRenderer
     private String[] getDependencyRow( Dependency dependency, boolean hasClassifier )
     {
         Artifact artifact =
-            artifactFactory.createProjectArtifact( dependency.getGroupId(), dependency.getArtifactId(),
+            repositorySystem.createProjectArtifact( dependency.getGroupId(), dependency.getArtifactId(),
                                                    dependency.getVersion() );
 
         StringBuilder licensesBuffer = new StringBuilder();
@@ -232,7 +227,8 @@ public class DependencyManagementRenderer
                 log.debug( "Resolving range for DependencyManagement on " + artifact.getId() );
 
                 List<ArtifactVersion> versions =
-                    artifactMetadataSource.retrieveAvailableVersions( artifact, localRepository, remoteRepositories );
+                    artifactMetadataSource.retrieveAvailableVersions( artifact, buildingRequest.getLocalRepository(),
+                                                                      buildingRequest.getRemoteRepositories() );
 
                 // only use versions from range
                 for ( Iterator<ArtifactVersion> iter = versions.iterator(); iter.hasNext(); )
@@ -253,9 +249,7 @@ public class DependencyManagementRenderer
                 }
             }
 
-            url =
-                ProjectInfoReportUtils.getArtifactUrl( artifactFactory, artifact, mavenProjectBuilder,
-                                                       remoteRepositories, localRepository );
+            url = ProjectInfoReportUtils.getArtifactUrl( repositorySystem, artifact, projectBuilder, buildingRequest );
 
             MavenProject artifactProject = repoUtils.getMavenProjectFromRepository( artifact );
 
diff --git a/src/test/java/org/apache/maven/report/projectinfo/AbstractProjectInfoTestCase.java b/src/test/java/org/apache/maven/report/projectinfo/AbstractProjectInfoTestCase.java
index f7ae9bc..7dde513 100644
--- a/src/test/java/org/apache/maven/report/projectinfo/AbstractProjectInfoTestCase.java
+++ b/src/test/java/org/apache/maven/report/projectinfo/AbstractProjectInfoTestCase.java
@@ -19,18 +19,23 @@ package org.apache.maven.report.projectinfo;
  * under the License.
  */
 
+import java.io.File;
+import java.io.IOException;
+import java.util.Locale;
+
+import org.apache.maven.plugin.LegacySupport;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.profiles.DefaultProfileManager;
-import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.plugin.testing.ArtifactStubFactory;
+import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilder;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.report.projectinfo.stubs.DependencyArtifactStubFactory;
 import org.codehaus.plexus.i18n.I18N;
 import org.codehaus.plexus.util.StringUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Locale;
+import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
+import org.sonatype.aether.util.DefaultRepositorySystemSession;
 
 /**
  * Abstract class to test reports generation with <a href="http://www.httpunit.org/">HTTPUnit</a> framework.
@@ -42,6 +47,8 @@ import java.util.Locale;
 public abstract class AbstractProjectInfoTestCase
     extends AbstractMojoTestCase
 {
+    private ArtifactStubFactory artifactStubFactory;
+    
     /**
      * The default locale is English.
      */
@@ -64,31 +71,16 @@ public abstract class AbstractProjectInfoTestCase
         // required for mojo lookups to work
         super.setUp();
 
-        i18n = (I18N) getContainer().lookup( I18N.ROLE );
-
-        File f = new File( getBasedir(), "target/local-repo/" );
-        f.mkdirs();
+        i18n = getContainer().lookup( I18N.class );
+        setVariableValueToObject( i18n, "defaultBundleName", "project-info-reports" );
 
+        artifactStubFactory = new DependencyArtifactStubFactory( getTestFile( "target" ), true, false );
+        artifactStubFactory.getWorkingDir().mkdirs();
+        
         // Set the default Locale
         Locale.setDefault( DEFAULT_LOCALE );
     }
 
-    protected InputStream getCustomConfiguration()
-        throws Exception
-    {
-        // Allow sub classes to have their own configuration...
-        if ( super.getConfiguration() == null )
-        {
-            String className = AbstractProjectInfoTestCase.class.getName();
-
-            String config = className.substring( className.lastIndexOf( "." ) + 1 ) + ".xml";
-
-            return AbstractProjectInfoTestCase.class.getResourceAsStream( config );
-        }
-
-        return null;
-    }
-
     @Override
     protected void tearDown()
         throws Exception
@@ -187,6 +179,14 @@ public abstract class AbstractProjectInfoTestCase
     {
         AbstractProjectInfoReport mojo = (AbstractProjectInfoReport) lookupMojo( goal, pluginXmlFile );
         assertNotNull( "Mojo found.", mojo );
+        
+        LegacySupport legacySupport = lookup( LegacySupport.class );
+        legacySupport.setSession( newMavenSession( new MavenProjectStub() ) );
+        DefaultRepositorySystemSession repoSession =
+            (DefaultRepositorySystemSession) legacySupport.getRepositorySession();
+        repoSession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( artifactStubFactory.getWorkingDir() ) );
+
+        setVariableValueToObject( mojo, "session", legacySupport.getSession() );
 
         setVariableValueToObject( mojo, "remoteRepositories", mojo.project.getRemoteArtifactRepositories() );
         return mojo;
@@ -197,11 +197,13 @@ public abstract class AbstractProjectInfoTestCase
     {
         mojo.execute();
 
-        MavenProjectBuilder builder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
-        ProfileManager profileManager = new DefaultProfileManager( getContainer(), null, null );
+        ProjectBuilder builder = lookup( ProjectBuilder.class );
+        
+        ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
+        buildingRequest.setRepositorySession( null );
 
         assertNotNull( "Local repository", mojo.localRepository );
-        testMavenProject = builder.buildWithDependencies( pluginXmlFile, mojo.localRepository, profileManager );
+        testMavenProject = builder.build( pluginXmlFile, buildingRequest ).getProject();
 
         File outputDir = mojo.getReportOutputDirectory();
         String filename = mojo.getOutputName() + ".html";
diff --git a/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java
index 7bc8df9..f4577ea 100644
--- a/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java
+++ b/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java
@@ -22,6 +22,7 @@ package org.apache.maven.report.projectinfo;
 import java.io.File;
 import java.lang.reflect.Field;
 import java.net.URL;
+import java.util.Collections;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.maven.report.projectinfo.stubs.SubProject1Stub;
@@ -33,8 +34,6 @@ import com.meterware.httpunit.WebConversation;
 import com.meterware.httpunit.WebRequest;
 import com.meterware.httpunit.WebResponse;
 
-import edu.emory.mathcs.backport.java.util.Collections;
-
 /**
  * @author ltheussl
  * @version $Id$
diff --git a/src/test/java/org/apache/maven/report/projectinfo/stubs/ProjectInfoProjectStub.java b/src/test/java/org/apache/maven/report/projectinfo/stubs/ProjectInfoProjectStub.java
index 5ee3cb8..5edad2a 100644
--- a/src/test/java/org/apache/maven/report/projectinfo/stubs/ProjectInfoProjectStub.java
+++ b/src/test/java/org/apache/maven/report/projectinfo/stubs/ProjectInfoProjectStub.java
@@ -23,6 +23,7 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
@@ -86,7 +87,8 @@ public abstract class ProjectInfoProjectStub
         setUrl( model.getUrl() );
         setPackaging( model.getPackaging() );
 
-        Artifact artifact = new ProjectInfoPluginArtifactStub( getGroupId(), getArtifactId(), getVersion(), getPackaging() );
+        String type = Objects.toString( super.getPackaging(), "jar" );
+        Artifact artifact = new ProjectInfoPluginArtifactStub( getGroupId(), getArtifactId(), getVersion(), type );
         artifact.setArtifactHandler( new DefaultArtifactHandlerStub() );
         setArtifact( artifact );
 
@@ -186,5 +188,4 @@ public abstract class ProjectInfoProjectStub
 
         return pluginMgmt;
     }
-
 }

-- 
To stop receiving notification emails like this one, please contact
rfscholte@apache.org.