You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/04/30 15:12:01 UTC

[jira] [Commented] (MPIR-361) Upgrade parent to 31

    [ https://issues.apache.org/jira/browse/MPIR-361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16458646#comment-16458646 ] 

ASF GitHub Bot commented on MPIR-361:
-------------------------------------

asfgit closed pull request #1: [MPIR-361] Fix checkstyle errors after chekstyle update
URL: https://github.com/apache/maven-project-info-reports-plugin/pull/1
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/Jenkinsfile b/Jenkinsfile
index 09ac70f..244b345 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -17,4 +17,4 @@
  * under the License.
  */
 
-asfMavenTlpStdBuild()
+asfMavenTlpStdBuild( [ 'failFast' : false ] )
diff --git a/pom.xml b/pom.xml
index 9b7ff0e..450a0db 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,12 +25,12 @@ under the License.
   <parent>
     <artifactId>maven-plugins</artifactId>
     <groupId>org.apache.maven.plugins</groupId>
-    <version>30</version>
+    <version>31</version>
     <relativePath>../../pom/maven/maven-plugins/pom.xml</relativePath>
   </parent>
 
   <artifactId>maven-project-info-reports-plugin</artifactId>
-  <version>2.10-SNAPSHOT</version>
+  <version>3.0.0-SNAPSHOT</version>
   <packaging>maven-plugin</packaging>
 
   <name>Apache Maven Project Info Reports Plugin</name>
@@ -119,10 +119,10 @@ under the License.
   <properties>
     <doxiaVersion>1.6</doxiaVersion>
     <doxia-sitetoolsVersion>1.6</doxia-sitetoolsVersion>
-    <mavenVersion>2.2.1</mavenVersion>
-    <wagonVersion>2.10</wagonVersion>
+    <mavenVersion>3.0</mavenVersion>
     <scmVersion>1.9.5</scmVersion>
-    <sitePluginVersion>3.5.1</sitePluginVersion>
+    <sitePluginVersion>3.7</sitePluginVersion>
+    <surefire.version>2.21.0</surefire.version>
   </properties>
 
   <dependencies>
@@ -134,33 +134,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>
@@ -197,32 +199,12 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-common-artifact-filters</artifactId>
-      <version>1.4</version>
-    </dependency>
-
-    <!-- Wagon -->
-    <dependency>
-      <groupId>org.apache.maven.wagon</groupId>
-      <artifactId>wagon-provider-api</artifactId>
-      <version>${wagonVersion}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.wagon</groupId>
-      <artifactId>wagon-ssh</artifactId>
-      <version>${wagonVersion}</version>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.wagon</groupId>
-      <artifactId>wagon-file</artifactId>
-      <version>${wagonVersion}</version>
-      <scope>runtime</scope>
+      <version>3.0.1</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.maven.wagon</groupId>
-      <artifactId>wagon-http-lightweight</artifactId>
-      <version>${wagonVersion}</version>
-      <scope>runtime</scope>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-artifact-transfer</artifactId>
+      <version>0.9.1</version>
     </dependency>
 
     <!-- SCM -->
@@ -348,11 +330,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>
@@ -364,13 +341,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>
@@ -385,6 +368,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>
@@ -428,7 +423,7 @@ under the License.
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>keytool-maven-plugin</artifactId>
-          <version>1.0</version>
+          <version>1.5</version>
           <configuration>
             <keystore>${basedir}/target/jetty.jks</keystore>
             <dname>cn=jetty, ou=jetty, L=Unknown, ST=Unknown, o=Apache, c=Unknown</dname>
@@ -478,7 +473,7 @@ under the License.
             <phase>initialize</phase>
             <goals>
               <goal>clean</goal>
-              <goal>genkey</goal>
+              <goal>generateKeyPair</goal>
             </goals>
           </execution>
         </executions>
@@ -556,12 +551,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 314810f..d49f305 100644
--- a/src/it/full-pom/verify.bsh
+++ b/src/it/full-pom/verify.bsh
@@ -98,23 +98,6 @@ try
         System.err.println( "dependencies.html doesn't contain doxia-core-1.2.jar" );
         return false;
     }
-    if ( !content.contains( "<td>central</td>" ) )
-    {
-        if ( content.contains( "<td>mirror-test</td><td><a class=\"externalLink\" href=\"http://mirrors.ibiblio.org/pub/mirrors/maven2/\">http://mirrors.ibiblio.org/pub/mirrors/maven2/</a></td>" ) )
-        {
-            System.err.println( "MPIR-244: 'Dependency Repository Locations' in dependencies.html doesn't refer to central repository but mirror-test which is its corresponding mirror." );
-        }
-        else
-        {
-            System.err.println( "[ERROR] 'Dependency Repository Locations' in dependencies.html doesn't refer to central repository nor mirror-test." );
-        }
-        return false;
-    }
-    if ( content.contains( "<th>mirror-test</th>" ) )
-    {
-        // MPIR-267, not fixed yet: just display ERROR but do not fail
-        System.err.println( "[ERROR] 'Repository locations for each of the Dependencies.' in dependencies.html doesn't refer to central repository but mirror-test." );
-    }
 
     // MPIR-216: dependency with range
     File dependencyMgmt = new File( siteDir, "dependency-management.html");
@@ -124,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..b027415 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.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.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 @@
  * 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 @@
      * Artifact Factory component.
      */
     @Component
-    protected ArtifactFactory factory;
+    RepositorySystem repositorySystem;
 
     /**
      * Internationalization component, could support also custom bundle using {@link #customBundle}.
@@ -114,12 +114,8 @@
     @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 @@
      */
     @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 @@ protected MavenProject getProject()
     {
         return project;
     }
+    
+    protected MavenSession getSession()
+    {
+        return session;
+    }
 
     /**
      * Reactor projects
@@ -453,7 +457,7 @@ public String getDescription( Locale locale )
 
         private static final Object[] NO_ARGS = new Object[0];
 
-        public CustomI18N( MavenProject project, Settings settings, File customBundleFile, Locale locale,
+        CustomI18N( MavenProject project, Settings settings, File customBundleFile, Locale locale,
                            I18N i18nOriginal )
         {
             super();
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 @@
  * 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 6756807..0b72c7c 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
@@ -28,10 +28,8 @@
 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.manager.WagonManager;
-import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
@@ -39,11 +37,14 @@
 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;
@@ -56,7 +57,6 @@
  *
  * @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 )
@@ -76,21 +76,7 @@
      * Maven Project Builder component.
      */
     @Component
-    private MavenProjectBuilder mavenProjectBuilder;
-
-    /**
-     * Artifact metadata source component.
-     */
-    @Component
-    protected ArtifactMetadataSource artifactMetadataSource;
-
-    /**
-     * Wagon manager component.
-     *
-     * @since 2.1
-     */
-    @Component
-    private WagonManager wagonManager;
+    private ProjectBuilder projectBuilder;
 
     /**
      * Dependency graph builder component.
@@ -122,7 +108,7 @@
      * @since 2.1
      */
     @Component
-    private ArtifactFactory artifactFactory;
+    private RepositorySystem repositorySystem;
 
     // ----------------------------------------------------------------------
     // Mojo parameters
@@ -137,15 +123,6 @@
     @Parameter( property = "dependency.details.enabled", defaultValue = "true" )
     private boolean dependencyDetailsEnabled;
 
-    /**
-     * Display the repository locations of the dependencies. If Maven is configured to be offline, this parameter
-     * will be ignored.
-     *
-     * @since 2.1
-     */
-    @Parameter( property = "dependency.locations.enabled", defaultValue = "true" )
-    private boolean dependencyLocationsEnabled;
-
     // ----------------------------------------------------------------------
     // Public methods
     // ----------------------------------------------------------------------
@@ -168,12 +145,6 @@ public boolean canGenerateReport()
     @Override
     public void executeReport( Locale locale )
     {
-        if ( settings.isOffline() && dependencyLocationsEnabled )
-        {
-            getLog().warn( "The parameter 'dependencyLocationsEnabled' is ignored in offline mode." );
-            dependencyLocationsEnabled = false;
-        }
-
         try
         {
             copyResources( new File( getOutputDirectory() ) );
@@ -182,23 +153,28 @@ public void executeReport( Locale locale )
         {
             getLog().error( "Cannot copy ressources", e );
         }
-
-        @SuppressWarnings( "unchecked" ) RepositoryUtils repoUtils =
-            new RepositoryUtils( getLog(), wagonManager, settings, 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();
 
         Dependencies dependencies = new Dependencies( project, dependencyNode, classesAnalyzer );
 
         DependenciesReportConfiguration config =
-            new DependenciesReportConfiguration( dependencyDetailsEnabled, dependencyLocationsEnabled );
+            new DependenciesReportConfiguration( dependencyDetailsEnabled );
 
         DependenciesRenderer r =
-            new DependenciesRenderer( getSink(), locale, getI18N( locale ), getLog(), settings, dependencies,
-                                      dependencyNode, config, repoUtils, artifactFactory, mavenProjectBuilder,
-                                      remoteRepositories, localRepository );
+            new DependenciesRenderer( getSink(), locale, getI18N( locale ), getLog(), dependencies,
+                                      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.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.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 @@
  * @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 @@
      * 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 @@ private DependencyAnalyzeResult analyzeDependencyTree()
             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 @@ private boolean containsDependency( List<ReverseDependencyLink> reverseDependenc
     /**
      * 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..e8fcad9 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 @@
  * 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" )
@@ -110,7 +109,7 @@ protected void executeReport( Locale locale )
 
         private final String packaging;
 
-        public DependencyInformationRenderer( Sink sink, I18N i18n, Locale locale, String groupId, String artifactId,
+        DependencyInformationRenderer( Sink sink, I18N i18n, Locale locale, String groupId, String artifactId,
                                               String version, String packaging )
         {
             super( sink, i18n, locale );
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 e5b990d..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,25 +19,25 @@
  * under the License.
  */
 
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.manager.WagonManager;
+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 )
@@ -52,7 +52,7 @@
      * Maven Project Builder component.
      */
     @Component
-    private MavenProjectBuilder mavenProjectBuilder;
+    private ProjectBuilder projectBuilder;
 
     /**
      * Artifact metadata source component.
@@ -66,15 +66,7 @@
      * Maven Artifact Factory component.
      */
     @Component
-    private ArtifactFactory artifactFactory;
-
-    /**
-     * Wagon manager component.
-     *
-     * @since 2.3
-     */
-    @Component
-    private WagonManager wagonManager;
+    private RepositorySystem repositorySystem;
 
     /**
      * Repository metadata component.
@@ -112,15 +104,20 @@ public boolean canGenerateReport()
     @Override
     public void executeReport( Locale locale )
     {
-        @SuppressWarnings( "unchecked" ) RepositoryUtils repoUtils =
-            new RepositoryUtils( getLog(), wagonManager, settings, 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 @@
  * 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.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 @@
  *
  * @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 String getDescription( Locale locale )
     @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 @@ protected String getI18Nsection()
         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 @@
  * 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 @@
  * 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.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 @@
  *
  * @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 boolean canGenerateReport()
     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 @@ protected String getI18Nsection()
     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 void renderBody()
 
             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.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 boolean canGenerateReport()
     @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 @@ protected String getI18Nsection()
 
         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 void renderBody()
 
             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 void renderBody()
                     {
                         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 @@
  */
 
 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.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 @@
  * 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 @@
      * 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 void executeReport( Locale locale )
     {
         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 boolean canGenerateReport()
 
         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 boolean canGenerateReport()
          * @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 PluginManagementRenderer( Log log, Sink sink, Locale locale, I18N i18n, L
 
             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 @@ private void renderSectionPluginManagement()
             startTable();
             tableHeader( tableHeader );
 
+            ProjectBuildingRequest buildRequest = new DefaultProjectBuildingRequest( buildingRequest );
+            buildRequest.setRemoteRepositories( project.getPluginArtifactRepositories() );
+            
             for ( Plugin plugin : pluginManagement )
             {
                 VersionRange versionRange;
@@ -213,19 +209,13 @@ private void renderSectionPluginManagement()
                     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.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.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 @@
  * 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 @@
      * 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 boolean canGenerateReport()
     @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 @@ protected String getI18Nsection()
 
         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 @@ protected String getI18Nsection()
          * @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 PluginsRenderer( Log log, Sink sink, Locale locale, I18N i18n, List<Plugi
 
             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 void renderBody()
         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 @@ private void renderSectionPlugins( boolean isPlugins )
             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.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.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 @@ protected PasswordAuthentication getPasswordAuthentication()
     /**
      * @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 static String getArtifactUrl( ArtifactFactory factory, Artifact artifact,
         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 void checkServerTrusted( final X509Certificate[] chain, final String auth
 
         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 @@
  * 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 @@
  * 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 @@
  * 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 @@ protected String getI18Nsection()
 
         private final Model model;
 
-        private final Log log;
-
         private final boolean showAvatarImages;
 
         private final String protocol;
@@ -146,7 +143,6 @@ protected String getI18Nsection()
             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.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 f86343d..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,23 +22,18 @@
 /**
  * Wrap DependenciesReport Mojo parameters.
  *
- * @version $Id$
  * @since 2.1
  */
 public class DependenciesReportConfiguration
 {
     private boolean dependencyDetailsEnabled;
 
-    private boolean dependencyLocationsEnabled;
-
     /**
      * @param detailsEnabled whether details is enabled.
-     * @param locationEnabled whether location is enabled.
      */
-    public DependenciesReportConfiguration( boolean detailsEnabled, boolean locationEnabled )
+    public DependenciesReportConfiguration( boolean detailsEnabled )
     {
         this.dependencyDetailsEnabled = detailsEnabled;
-        this.dependencyLocationsEnabled = locationEnabled;
     }
 
     /**
@@ -48,12 +43,4 @@ public boolean getDependencyDetailsEnabled()
     {
         return dependencyDetailsEnabled;
     }
-
-    /**
-     * @return value of Mojo dependencyLocationsEnabled parameter.
-     */
-    public boolean getDependencyLocationsEnabled()
-    {
-        return dependencyLocationsEnabled;
-    }
 }
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 @@
 
 /**
  * @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 @@
 
 /**
  * @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 25346b6..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
@@ -19,41 +19,23 @@
  * under the License.
  */
 
-import java.net.UnknownHostException;
 import java.util.ArrayList;
 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.manager.WagonConfigurationException;
-import org.apache.maven.artifact.manager.WagonManager;
-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.apache.maven.settings.Proxy;
-import org.apache.maven.settings.Settings;
-import org.apache.maven.wagon.ConnectionException;
-import org.apache.maven.wagon.TransferFailedException;
-import org.apache.maven.wagon.UnsupportedProtocolException;
-import org.apache.maven.wagon.Wagon;
-import org.apache.maven.wagon.authentication.AuthenticationException;
-import org.apache.maven.wagon.authentication.AuthenticationInfo;
-import org.apache.maven.wagon.authorization.AuthorizationException;
-import org.apache.maven.wagon.observers.Debug;
-import org.apache.maven.wagon.proxy.ProxyInfo;
-import org.apache.maven.wagon.repository.Repository;
-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
@@ -63,17 +45,11 @@
  */
 public class RepositoryUtils
 {
-    private static final List<String> UNKNOWN_HOSTS = new ArrayList<String>();
-
     private final Log log;
 
-    private final WagonManager wagonManager;
-
-    private final Settings settings;
+    private final ProjectBuilder projectBuilder;
 
-    private final MavenProjectBuilder mavenProjectBuilder;
-
-    private final ArtifactFactory factory;
+    private final RepositorySystem repositorySystem;
 
     private final List<ArtifactRepository> remoteRepositories;
 
@@ -81,12 +57,10 @@
 
     private final ArtifactResolver resolver;
 
-    private final ArtifactRepository localRepository;
+    private final ProjectBuildingRequest buildingRequest;
 
     /**
      * @param log {@link Log}
-     * @param wagonManager {@link WagonManager}
-     * @param settings {@link Settings}
      * @param mavenProjectBuilder {@link MavenProjectBuilder}
      * @param factory {@link ArtifactFactory}
      * @param resolver {@link ArtifactResolver}
@@ -95,183 +69,37 @@
      * @param localRepository {@link ArtifactRepository}
      * @param repositoryMetadataManager {@link RepositoryMetadataManager}
      */
-    public RepositoryUtils( Log log, WagonManager wagonManager, Settings settings,
-                            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.wagonManager = wagonManager;
-        this.settings = settings;
-        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 );
-    }
-
-    /**
-     * @param repo not null
-     * @param artifact not null
-     * @return <code>true</code> if the artifact exists in the given repo, <code>false</code> otherwise or if
-     * the repo is blacklisted.
-     */
-    public boolean dependencyExistsInRepo( ArtifactRepository repo, Artifact artifact )
-    {
-        if ( repo.isBlacklisted() )
-        {
-            if ( log.isDebugEnabled() )
-            {
-                log.debug( "The repo '" + repo.getId() + "' is black listed - Ignored it" );
-            }
-            return false;
-        }
-
-        if ( UNKNOWN_HOSTS.contains( repo.getUrl() ) )
-        {
-            if ( log.isDebugEnabled() )
-            {
-                log.debug( "The repo url '" + repo.getUrl() + "' is unknown - Ignored it" );
-            }
-            return false;
-        }
-
-        repo = wagonManager.getMirrorRepository( repo );
-
-        String id = repo.getId();
-        Repository repository = new Repository( id, repo.getUrl() );
-
-        Wagon wagon;
-        try
-        {
-            wagon = wagonManager.getWagon( repository );
-        }
-        catch ( UnsupportedProtocolException e )
-        {
-            logError( "Unsupported protocol: '" + repo.getProtocol() + "'", e );
-            return false;
-        }
-        catch ( WagonConfigurationException e )
-        {
-            logError( "Unsupported protocol: '" + repo.getProtocol() + "'", e );
-            return false;
-        }
-
-        wagon.setTimeout( 1000 );
-
-        if ( log.isDebugEnabled() )
-        {
-            Debug debug = new Debug();
-
-            wagon.addSessionListener( debug );
-            wagon.addTransferListener( debug );
-        }
-
-        try
-        {
-            // FIXME when upgrading to maven 3.x : this must be changed.
-            AuthenticationInfo auth = wagonManager.getAuthenticationInfo( repo.getId() );
-
-            ProxyInfo proxyInfo = getProxyInfo();
-            if ( proxyInfo != null )
-            {
-                wagon.connect( repository, auth, proxyInfo );
-            }
-            else
-            {
-                wagon.connect( repository, auth );
-            }
+        ProjectBuildingRequest buildRequest = new DefaultProjectBuildingRequest( buildingRequest );
+        buildRequest.setRemoteRepositories( repos );
 
-            return wagon.resourceExists( StringUtils.replace( getDependencyUrlFromRepository( artifact, repo ),
-                                                              repo.getUrl(), "" ) );
-        }
-        catch ( ConnectionException e )
-        {
-            logError( "Unable to connect to: " + repo.getUrl(), e );
-            return false;
-        }
-        catch ( AuthenticationException e )
-        {
-            logError( "Unable to connect to: " + repo.getUrl(), e );
-            return false;
-        }
-        catch ( TransferFailedException e )
-        {
-            if ( e.getCause() instanceof UnknownHostException )
-            {
-                log.error( "Unknown host " + e.getCause().getMessage() + " - ignored it" );
-                UNKNOWN_HOSTS.add( repo.getUrl() );
-            }
-            else
-            {
-                logError( "Unable to determine if resource " + artifact + " exists in " + repo.getUrl(), e );
-            }
-            return false;
-        }
-        catch ( AuthorizationException e )
-        {
-            logError( "Unable to connect to: " + repo.getUrl(), e );
-            return false;
-        }
-        catch ( AbstractMethodError e )
-        {
-            log.error( "Wagon " + wagon.getClass().getName() + " does not support the resourceExists method" );
-            return false;
-        }
-        finally
-        {
-            try
-            {
-                wagon.disconnect();
-            }
-            catch ( ConnectionException e )
-            {
-                logError( "Error disconnecting wagon - ignored", e );
-            }
-        }
+        ArtifactResult result = resolver.resolveArtifact( buildRequest , artifact );
+        artifact.setFile( result.getArtifact().getFile() );
     }
 
     /**
@@ -289,14 +117,12 @@ public MavenProject getMavenProjectFromRepository( Artifact artifact )
         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();
     }
 
     /**
@@ -325,90 +151,14 @@ public String getDependencyUrlFromRepository( Artifact artifact, ArtifactReposit
                     {
                         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 );
-                    }
                 }
             }
         }
 
         return repo.getUrl() + "/" + repo.pathOf( copyArtifact );
     }
-
-    // ----------------------------------------------------------------------
-    // Private methods
-    // ----------------------------------------------------------------------
-
-    /**
-     * Convenience method to map a <code>Proxy</code> object from the user system settings to a <code>ProxyInfo</code>
-     * object.
-     *
-     * @return a proxyInfo object instanced or null if no active proxy is define in the settings.xml
-     */
-    private ProxyInfo getProxyInfo()
-    {
-        if ( settings == null || settings.getActiveProxy() == null )
-        {
-            return null;
-        }
-
-        Proxy settingsProxy = settings.getActiveProxy();
-
-        ProxyInfo proxyInfo = new ProxyInfo();
-        proxyInfo.setHost( settingsProxy.getHost() );
-        proxyInfo.setType( settingsProxy.getProtocol() );
-        proxyInfo.setPort( settingsProxy.getPort() );
-        proxyInfo.setNonProxyHosts( settingsProxy.getNonProxyHosts() );
-        proxyInfo.setUserName( settingsProxy.getUsername() );
-        proxyInfo.setPassword( settingsProxy.getPassword() );
-
-        return proxyInfo;
-    }
-
-    /**
-     * Log an error, adding the stacktrace only is debug is enabled.
-     * 
-     * @param message the error message
-     * @param e the cause
-     */
-    private void logError( String message, Exception e )
-    {
-        if ( log.isDebugEnabled() )
-        {
-            log.error( message, e );
-        }
-        else
-        {
-            log.error( message );
-        }
-    }
 }
diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/SinkSerializingDependencyNodeVisitor.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/SinkSerializingDependencyNodeVisitor.java
index 46d5bb9..073a618 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/SinkSerializingDependencyNodeVisitor.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/SinkSerializingDependencyNodeVisitor.java
@@ -43,12 +43,12 @@
     {
         private final Sink sink;
 
-        public TreeTokens( Sink sink )
+        TreeTokens( Sink sink )
         {
             this.sink = sink;
         }
 
-        public void addNodeIndent( boolean last )
+        void addNodeIndent( boolean last )
         {
             if ( last )
             {
@@ -62,7 +62,7 @@ public void addNodeIndent( boolean last )
             }
         }
 
-        public void fillIndent( boolean last )
+        void fillIndent( boolean last )
         {
             if ( last )
             {
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 327ac79..e87b4b5 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
@@ -23,8 +23,6 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
 import java.text.DecimalFormat;
 import java.text.DecimalFormatSymbols;
 import java.text.FieldPosition;
@@ -42,11 +40,6 @@
 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.repository.ArtifactRepositoryPolicy;
-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;
@@ -54,14 +47,16 @@
 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.settings.Settings;
+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;
@@ -95,8 +90,6 @@
 
     private final Log log;
 
-    private final Settings settings;
-
     private final RepositoryUtils repoUtils;
 
     /** Used to format file length values */
@@ -132,13 +125,11 @@ public Object put( String key, Object value )
         }
     };
 
-    private final ArtifactFactory artifactFactory;
-
-    private final MavenProjectBuilder mavenProjectBuilder;
+    private final RepositorySystem repositorySystem;
 
-    private final List<ArtifactRepository> remoteRepositories;
+    private final ProjectBuilder projectBuilder;
 
-    private final ArtifactRepository localRepository;
+    private final ProjectBuildingRequest buildingRequest;
 
     static
     {
@@ -153,6 +144,8 @@ public Object put( String key, Object value )
         JAR_SUBTYPE = Collections.unmodifiableSet( jarSubtype );
     }
 
+    /**
+     * 
     /**
      * Default constructor.
      *
@@ -160,34 +153,30 @@ public Object put( String key, Object value )
      * @param locale {@link Locale}
      * @param i18n {@link I18N}
      * @param log {@link Log}
-     * @param settings {@link Settings}
      * @param dependencies {@link Dependencies}
      * @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, Settings settings,
+    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 );
 
         this.log = log;
-        this.settings = settings;
         this.dependencies = dependencies;
         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 ) );
@@ -239,12 +228,6 @@ public void renderBody()
             // === Section: Dependency File Details.
             renderSectionDependencyFileDetails();
         }
-
-        if ( configuration.getDependencyLocationsEnabled() )
-        {
-            // === Section: Dependency Repository Locations.
-            renderSectionDependencyRepositoryLocations();
-        }
     }
 
     // ----------------------------------------------------------------------
@@ -732,94 +715,6 @@ private void createExceptionInfoTableRow( Artifact artifact, File artifactFile,
             "", "", "" } );
     }
 
-    private void populateRepositoryMap( Map<String, ArtifactRepository> repos, List<ArtifactRepository> rowRepos )
-    {
-        for ( ArtifactRepository repo : rowRepos )
-        {
-            repos.put( repo.getId(), repo );
-        }
-    }
-
-    private void blacklistRepositoryMap( Map<String, ArtifactRepository> repos, List<String> repoUrlBlackListed )
-    {
-        for ( ArtifactRepository repo : repos.values() )
-        {
-            // ping repo
-            if ( repo.isBlacklisted() )
-            {
-                repoUrlBlackListed.add( repo.getUrl() );
-            }
-            else
-            {
-                if ( repoUrlBlackListed.contains( repo.getUrl() ) )
-                {
-                    repo.setBlacklisted( true );
-                }
-                else
-                {
-                    try
-                    {
-                        URL repoUrl = new URL( repo.getUrl() );
-                        if ( ProjectInfoReportUtils.getContent( repoUrl, settings ) == null )
-                        {
-                            log.warn( "The repository url '" + repoUrl + "' has no stream - Repository '"
-                                + repo.getId() + "' will be blacklisted." );
-                            repo.setBlacklisted( true );
-                            repoUrlBlackListed.add( repo.getUrl() );
-                        }
-                    }
-                    catch ( IOException e )
-                    {
-                        log.warn( "The repository url '" + repo.getUrl() + "' is invalid - Repository '" + repo.getId()
-                            + "' will be blacklisted." );
-                        repo.setBlacklisted( true );
-                        repoUrlBlackListed.add( repo.getUrl() );
-                    }
-                }
-            }
-        }
-    }
-
-    @SuppressWarnings( "unchecked" )
-    private void renderSectionDependencyRepositoryLocations()
-    {
-        startSection( getI18nString( "repo.locations.title" ) );
-
-        // Collect Alphabetical Dependencies
-        List<Artifact> alldeps = dependencies.getAllDependencies();
-        Collections.sort( alldeps, getArtifactComparator() );
-
-        // Collect Repositories
-        Map<String, ArtifactRepository> repoMap = new HashMap<String, ArtifactRepository>();
-
-        populateRepositoryMap( repoMap, repoUtils.getRemoteArtifactRepositories() );
-        for ( Artifact artifact : alldeps )
-        {
-            try
-            {
-                MavenProject artifactProject = repoUtils.getMavenProjectFromRepository( artifact );
-                populateRepositoryMap( repoMap, artifactProject.getRemoteArtifactRepositories() );
-            }
-            catch ( ProjectBuildingException e )
-            {
-                log.warn( "Unable to create Maven project from repository for artifact " + artifact.getId(), e );
-            }
-        }
-
-        List<String> repoUrlBlackListed = new ArrayList<String>();
-        blacklistRepositoryMap( repoMap, repoUrlBlackListed );
-
-        // Render Repository List
-
-        printRepositories( repoMap, repoUrlBlackListed );
-
-        // Render Artifacts locations
-
-        printArtifactsLocations( repoMap, repoUrlBlackListed, alldeps );
-
-        endSection();
-    }
-
     private void renderSectionDependencyLicenseListing()
     {
         startSection( getI18nString( "graph.tables.licenses" ) );
@@ -892,8 +787,7 @@ private void renderArtifactRow( Artifact artifact, boolean withClassifier, boole
             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;
@@ -901,7 +795,7 @@ private void renderArtifactRow( Artifact artifact, boolean withClassifier, boole
         try
         {
             artifactProject = repoUtils.getMavenProjectFromRepository( artifact );
-            @SuppressWarnings( "unchecked" )
+
             List<License> licenses = artifactProject.getLicenses();
             for ( License license : licenses )
             {
@@ -995,7 +889,7 @@ private void printDescriptionsAndURLs( DependencyNode node, String uid )
                 String artifactDescription = artifactProject.getDescription();
                 String artifactUrl = artifactProject.getUrl();
                 String artifactName = artifactProject.getName();
-                @SuppressWarnings( "unchecked" )
+
                 List<License> licenses = artifactProject.getLicenses();
 
                 sink.tableRow();
@@ -1161,102 +1055,6 @@ private void printGroupedLicenses()
         }
     }
 
-    private void printRepositories( Map<String, ArtifactRepository> repoMap, List<String> repoUrlBlackListed )
-    {
-        // i18n
-        String repoid = getI18nString( "repo.locations.column.repoid" );
-        String url = getI18nString( "repo.locations.column.url" );
-        String release = getI18nString( "repo.locations.column.release" );
-        String snapshot = getI18nString( "repo.locations.column.snapshot" );
-        String blacklisted = getI18nString( "repo.locations.column.blacklisted" );
-        String releaseEnabled = getI18nString( "repo.locations.cell.release.enabled" );
-        String releaseDisabled = getI18nString( "repo.locations.cell.release.disabled" );
-        String snapshotEnabled = getI18nString( "repo.locations.cell.snapshot.enabled" );
-        String snapshotDisabled = getI18nString( "repo.locations.cell.snapshot.disabled" );
-        String blacklistedEnabled = getI18nString( "repo.locations.cell.blacklisted.enabled" );
-        String blacklistedDisabled = getI18nString( "repo.locations.cell.blacklisted.disabled" );
-
-        // Table header
-
-        String[] tableHeader;
-        int[] justificationRepo;
-        if ( repoUrlBlackListed.isEmpty() )
-        {
-            tableHeader = new String[] { repoid, url, release, snapshot };
-            justificationRepo =
-                new int[] { Sink.JUSTIFY_LEFT, Sink.JUSTIFY_LEFT, Sink.JUSTIFY_CENTER, Sink.JUSTIFY_CENTER };
-        }
-        else
-        {
-            tableHeader = new String[] { repoid, url, release, snapshot, blacklisted };
-            justificationRepo =
-                new int[] { Sink.JUSTIFY_LEFT, Sink.JUSTIFY_LEFT, Sink.JUSTIFY_CENTER, Sink.JUSTIFY_CENTER,
-                    Sink.JUSTIFY_CENTER };
-        }
-
-        startTable( justificationRepo, false );
-
-        tableHeader( tableHeader );
-
-        // Table rows
-
-        for ( ArtifactRepository repo : repoMap.values() )
-        {
-            List<ArtifactRepository> mirroredRepos = getMirroredRepositories( repo );
-
-            sink.tableRow();
-            sink.tableCell();
-            boolean addLineBreak = false;
-            for ( ArtifactRepository r : mirroredRepos )
-            {
-                if ( addLineBreak )
-                {
-                    sink.lineBreak();
-                }
-                addLineBreak = true;
-                sink.text( r.getId() );
-            }
-            sink.tableCell_();
-
-            sink.tableCell();
-            addLineBreak = false;
-            for ( ArtifactRepository r : mirroredRepos )
-            {
-                if ( addLineBreak )
-                {
-                    sink.lineBreak();
-                }
-                addLineBreak = true;
-                if ( repo.isBlacklisted() )
-                {
-                    sink.text( r.getUrl() );
-                }
-                else
-                {
-                    sink.link( r.getUrl() );
-                    sink.text( r.getUrl() );
-                    sink.link_();
-                }
-            }
-            sink.tableCell_();
-
-            ArtifactRepositoryPolicy releasePolicy = repo.getReleases();
-            tableCell( releasePolicy.isEnabled() ? releaseEnabled : releaseDisabled );
-
-            ArtifactRepositoryPolicy snapshotPolicy = repo.getSnapshots();
-            tableCell( snapshotPolicy.isEnabled() ? snapshotEnabled : snapshotDisabled );
-
-            if ( !repoUrlBlackListed.isEmpty() )
-            {
-                tableCell( repoUrlBlackListed.contains( repo.getUrl() ) ? blacklistedEnabled : blacklistedDisabled );
-            }
-
-            sink.tableRow_();
-        }
-
-        endTable();
-    }
-
     /**
      * Resolves all given artifacts with {@link RepositoryUtils}.
      *
@@ -1279,26 +1077,11 @@ private void resolveAtrifacts( List<Artifact> artifacts )
                 {
                     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 )
                 {
@@ -1308,191 +1091,6 @@ private void resolveAtrifacts( List<Artifact> artifacts )
         }
     }
 
-    private Object invoke( Object object, String method )
-        throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
-    {
-        return object.getClass().getMethod( method ).invoke( object );
-    }
-
-    /**
-     * Get the repos that can be hidden behind a mirror.
-     *
-     * @param repo the repo used to download artifacts
-     * @return the mirrored repositories or a singleton with actual repo if it is not a mirror
-     */
-    private List<ArtifactRepository> getMirroredRepositories( ArtifactRepository repo )
-    {
-        try
-        {
-            @SuppressWarnings( "unchecked" )
-            List<ArtifactRepository> mirroredRepos =
-                (List<ArtifactRepository>) invoke( repo, "getMirroredRepositories" );
-
-            if ( ( mirroredRepos != null ) && ( !mirroredRepos.isEmpty() ) )
-            {
-                return mirroredRepos;
-            }
-        }
-        catch ( IllegalArgumentException e )
-        {
-            // ignore: API not available before Maven 3.0.3
-        }
-        catch ( SecurityException e )
-        {
-            // ignore: API not available before Maven 3.0.3
-        }
-        catch ( IllegalAccessException e )
-        {
-            // ignore: API not available before Maven 3.0.3
-        }
-        catch ( InvocationTargetException e )
-        {
-            // ignore: API not available before Maven 3.0.3
-        }
-        catch ( NoSuchMethodException e )
-        {
-            // ignore: API not available before Maven 3.0.3
-        }
-        // before Maven 3.0.3, we can't do anything: Maven 3.0-alpha to 3.0.2 will show the mirror
-        return Collections.singletonList( repo );
-    }
-
-    private void printArtifactsLocations( Map<String, ArtifactRepository> repoMap, List<String> repoUrlBlackListed,
-                                          List<Artifact> alldeps )
-    {
-        // i18n
-        String artifact = getI18nString( "repo.locations.column.artifact" );
-
-        sink.paragraph();
-        sink.text( getI18nString( "repo.locations.artifact.breakdown" ) );
-        sink.paragraph_();
-
-        List<String> repoIdList = new ArrayList<String>();
-        // removed blacklisted repo
-        for ( Map.Entry<String, ArtifactRepository> entry : repoMap.entrySet() )
-        {
-            String repokey = entry.getKey();
-            ArtifactRepository repo = entry.getValue();
-            if ( !( repo.isBlacklisted() || repoUrlBlackListed.contains( repo.getUrl() ) ) )
-            {
-                repoIdList.add( repokey );
-            }
-        }
-
-        String[] tableHeader = new String[repoIdList.size() + 1];
-        int[] justificationRepo = new int[repoIdList.size() + 1];
-
-        tableHeader[0] = artifact;
-        justificationRepo[0] = Sink.JUSTIFY_LEFT;
-
-        int idnum = 1;
-        for ( String id : repoIdList )
-        {
-            tableHeader[idnum] = id;
-            justificationRepo[idnum] = Sink.JUSTIFY_CENTER;
-            idnum++;
-        }
-
-        Map<String, Integer> totalByRepo = new HashMap<String, Integer>();
-        TotalCell totaldeps = new TotalCell( DEFAULT_DECIMAL_FORMAT );
-
-        startTable( justificationRepo, false );
-
-        tableHeader( tableHeader );
-
-        for ( Artifact dependency : alldeps )
-        {
-            totaldeps.incrementTotal( dependency.getScope() );
-
-            sink.tableRow();
-
-            tableCell( dependency.getId() );
-
-            if ( Artifact.SCOPE_SYSTEM.equals( dependency.getScope() ) )
-            {
-                for ( @SuppressWarnings( "unused" )
-                String repoId : repoIdList )
-                {
-                    tableCell( "-" );
-                }
-            }
-            else
-            {
-                for ( String repokey : repoIdList )
-                {
-                    ArtifactRepository repo = repoMap.get( repokey );
-
-                    String depUrl = repoUtils.getDependencyUrlFromRepository( dependency, repo );
-
-                    Integer old = totalByRepo.get( repokey );
-                    if ( old == null )
-                    {
-                        old = 0;
-                        totalByRepo.put( repokey, old );
-                    }
-
-                    boolean dependencyExists = false;
-                    // check snapshots in snapshots repository only and releases in release repositories...
-                    if ( ( dependency.isSnapshot() && repo.getSnapshots().isEnabled() )
-                        || ( !dependency.isSnapshot() && repo.getReleases().isEnabled() ) )
-                    {
-                        dependencyExists = repoUtils.dependencyExistsInRepo( repo, dependency );
-                    }
-
-                    if ( dependencyExists )
-                    {
-                        sink.tableCell();
-                        if ( StringUtils.isNotEmpty( depUrl ) )
-                        {
-                            sink.link( depUrl );
-                        }
-                        else
-                        {
-                            sink.text( depUrl );
-                        }
-
-                        sink.figure();
-                        sink.figureCaption();
-                        // TODO Translate me!
-                        sink.text( "Found at " + repo.getUrl() );
-                        sink.figureCaption_();
-                        sink.figureGraphics( "images/icon_success_sml.gif" );
-                        sink.figure_();
-
-                        sink.link_();
-                        sink.tableCell_();
-
-                        totalByRepo.put( repokey, old.intValue() + 1 );
-                    }
-                    else
-                    {
-                        tableCell( "-" );
-                    }
-                }
-            }
-
-            sink.tableRow_();
-        }
-
-        // Total row
-
-        // reused key
-        tableHeader[0] = getI18nString( "file.details.total" );
-        tableHeader( tableHeader );
-        String[] totalRow = new String[repoIdList.size() + 1];
-        totalRow[0] = totaldeps.toString();
-        idnum = 1;
-        for ( String repokey : repoIdList )
-        {
-            Integer deps = totalByRepo.get( repokey );
-            totalRow[idnum++] = deps != null ? deps.toString() : "0";
-        }
-
-        tableRow( totalRow );
-
-        endTable();
-    }
-
     /**
      * @param artifacts not null
      * @return <code>true</code> if one artifact in the list has a classifier, <code>false</code> otherwise.
@@ -1580,7 +1178,7 @@ private boolean hasSealed( List<Artifact> artifacts )
          * @param i18n
          * @param locale
          */
-        public FileDecimalFormat( I18N i18n, Locale locale )
+        FileDecimalFormat( I18N i18n, Locale locale )
         {
             super( "###0.#" );
 
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.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.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 @@
 
     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 @@
      * @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 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 @@ private void renderDependenciesForScope( String scope, List<Dependency> artifact
     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 @@ private void renderDependenciesForScope( String scope, List<Dependency> artifact
                 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 @@ private void renderDependenciesForScope( String scope, List<Dependency> artifact
                 }
             }
 
-            url =
-                ProjectInfoReportUtils.getArtifactUrl( artifactFactory, artifact, mavenProjectBuilder,
-                                                       remoteRepositories, localRepository );
+            url = ProjectInfoReportUtils.getArtifactUrl( repositorySystem, artifact, projectBuilder, buildingRequest );
 
             MavenProject artifactProject = repoUtils.getMavenProjectFromRepository( artifact );
 
diff --git a/src/site/apt/index.apt.vm b/src/site/apt/index.apt.vm
index c09ab8f..e47439a 100644
--- a/src/site/apt/index.apt.vm
+++ b/src/site/apt/index.apt.vm
@@ -108,9 +108,7 @@ ${project.name}
 * Usage
 
   General instructions on how to use the Project Info Reports Plugin can be found on the {{{./usage.html}usage page}}. Some more
-  specific use cases are described in the examples given below. Last but not least, users occasionally contribute
-  additional examples, tips or errata to the
-  {{{http://docs.codehaus.org/display/MAVENUSER/Project+Info+Reports+Plugin}plugin's wiki page}}.
+  specific use cases are described in the examples given below.
 
   In case you still have questions regarding the plugin's usage, please have a look at the {{{./faq.html}FAQ}} and feel
   free to contact the {{{./mail-lists.html}user mailing list}}. The posts to the mailing list are archived and could
@@ -142,7 +140,7 @@ ${project.name}
 
 * Related Links
 
-  * {{{http://maven.apache.org/plugins/maven-site-plugin/i18n.html}Internationalization}}
+  * {{{http://maven.apache.org/plugins/localization.html}Localization of Plugins}}
 
   * {{{http://maven.apache.org/plugins/maven-site-plugin/examples/creatingskins.html}Skinning}}
 
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 @@
  * 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 @@
 public abstract class AbstractProjectInfoTestCase
     extends AbstractMojoTestCase
 {
+    private ArtifactStubFactory artifactStubFactory;
+    
     /**
      * The default locale is English.
      */
@@ -64,31 +71,16 @@ protected void setUp()
         // 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 @@ protected AbstractProjectInfoReport createReportMojo( String goal, File pluginXm
     {
         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 @@ protected File generateReport( AbstractProjectInfoReport mojo, File pluginXmlFil
     {
         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..3202960 100644
--- a/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java
+++ b/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java
@@ -22,8 +22,10 @@
 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.plugin.testing.SilentLog;
 import org.apache.maven.report.projectinfo.stubs.SubProject1Stub;
 import org.codehaus.plexus.util.ReflectionUtils;
 
@@ -33,8 +35,6 @@
 import com.meterware.httpunit.WebRequest;
 import com.meterware.httpunit.WebResponse;
 
-import edu.emory.mathcs.backport.java.util.Collections;
-
 /**
  * @author ltheussl
  * @version $Id$
@@ -46,6 +46,17 @@
      * WebConversation object
      */
     private static final WebConversation WEB_CONVERSATION = new WebConversation();
+    
+    @Override
+    protected AbstractProjectInfoReport createReportMojo( String goal, File pluginXmlFile )
+        throws Exception
+    {
+        AbstractProjectInfoReport mojo = super.createReportMojo( goal, pluginXmlFile );
+        
+        mojo.setLog( new SilentLog() );
+        
+        return mojo;
+    }
 
     /**
      * Test report
diff --git a/src/test/java/org/apache/maven/report/projectinfo/PluginManagementReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/PluginManagementReportTest.java
index 8548ab4..59f3bf0 100644
--- a/src/test/java/org/apache/maven/report/projectinfo/PluginManagementReportTest.java
+++ b/src/test/java/org/apache/maven/report/projectinfo/PluginManagementReportTest.java
@@ -19,8 +19,21 @@
  * under the License.
  */
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.isA;
+
+import java.io.File;
 import java.net.URL;
 
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+import org.apache.maven.project.ProjectBuilder;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.project.ProjectBuildingResult;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
 import com.meterware.httpunit.GetMethodWebRequest;
 import com.meterware.httpunit.TextBlock;
 import com.meterware.httpunit.WebConversation;
@@ -30,7 +43,6 @@
 
 /**
  * @author Nick Stolwijk
- * @version $Id$
  * @since 2.1
  */
 public class PluginManagementReportTest
@@ -41,6 +53,33 @@
      */
     private static final WebConversation WEB_CONVERSATION = new WebConversation();
 
+    
+    
+    @Override
+    protected AbstractProjectInfoReport createReportMojo( String goal, File pluginXmlFile )
+        throws Exception
+    {
+        AbstractProjectInfoReport mojo = super.createReportMojo( goal, pluginXmlFile );
+        
+        ProjectBuilder builder = mock( ProjectBuilder.class );
+        
+        when( builder.build( isA( Artifact.class ),
+                             isA( ProjectBuildingRequest.class ) ) ).thenAnswer( new Answer<ProjectBuildingResult>()
+                             {
+                                 @Override
+                                 public ProjectBuildingResult answer( InvocationOnMock invocation )
+                                     throws Throwable
+                                 {
+                                     return createProjectBuildingResult( (Artifact) invocation.getArgument( 0 ), 
+                                                                         "http://m.a.o/" );
+                                 }
+                             } );
+
+        setVariableValueToObject( mojo, "projectBuilder", builder );
+        
+        return mojo;
+    }
+    
     /**
      * Test report
      *
@@ -79,4 +118,18 @@ public void testReport()
         TextBlock[] textBlocks = response.getTextBlocks();
         assertEquals( getString( "report.plugin-management.title" ), textBlocks[0].getText() );
     }
+    
+    private static ProjectBuildingResult createProjectBuildingResult( Artifact artifact, String url )
+    {
+        ProjectBuildingResult result = mock( ProjectBuildingResult.class );
+        MavenProjectStub stub = new MavenProjectStub();
+        stub.setGroupId( artifact.getGroupId() );
+        stub.setArtifactId( artifact.getArtifactId() );
+        stub.setVersion( artifact.getVersion() );
+        stub.setUrl( url );
+
+        when( result.getProject() ).thenReturn( stub );
+
+        return result;
+    }
 }
diff --git a/src/test/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtilsTest.java b/src/test/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtilsTest.java
index e0605e8..03c71b9 100644
--- a/src/test/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtilsTest.java
+++ b/src/test/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtilsTest.java
@@ -24,8 +24,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import junit.framework.Assert;
-
 import org.apache.maven.model.DeploymentRepository;
 import org.apache.maven.model.DistributionManagement;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
@@ -131,16 +129,16 @@ public void testGetInputStreamURL()
 
         String content = ProjectInfoReportUtils.getContent( url, getMavenProjectStub( false ), settingsStub,
                                                             "ISO-8859-1" );
-        Assert.assertNotNull( content );
-        Assert.assertTrue( content.contains( "Licensed to the Apache Software Foundation" ) );
+        assertNotNull( content );
+        assertTrue( content.contains( "Licensed to the Apache Software Foundation" ) );
 
         // file
         url = new File( getBasedir(), "/src/test/resources/iso-8859-5-encoded.txt" ).toURI().toURL();
 
         content = ProjectInfoReportUtils.getContent( url, getMavenProjectStub( false ), settingsStub,
                                                             "ISO-8859-5" );
-        Assert.assertNotNull( content );
-        Assert.assertTrue( content.contains( "Свобода всем народам!" ) );
+        assertNotNull( content );
+        assertTrue( content.contains( "Свобода всем народам!" ) );
 
         // http + no auth
         startJetty( false, false );
@@ -149,8 +147,8 @@ public void testGetInputStreamURL()
 
         content = ProjectInfoReportUtils.getContent( url, getMavenProjectStub( false ), settingsStub,
                                                      "ISO-8859-1" );
-        Assert.assertNotNull( content );
-        Assert.assertTrue( content.contains( "Licensed to the Apache Software Foundation" ) );
+        assertNotNull( content );
+        assertTrue( content.contains( "Licensed to the Apache Software Foundation" ) );
 
         stopJetty();
 
@@ -161,8 +159,8 @@ public void testGetInputStreamURL()
 
         content = ProjectInfoReportUtils.getContent( url, getMavenProjectStub( false ), settingsStub,
                                                      "ISO-8859-1" );
-        Assert.assertNotNull( content );
-        Assert.assertTrue( content.contains( "Licensed to the Apache Software Foundation" ) );
+        assertNotNull( content );
+        assertTrue( content.contains( "Licensed to the Apache Software Foundation" ) );
 
         stopJetty();
 
@@ -173,8 +171,8 @@ public void testGetInputStreamURL()
 
         content = ProjectInfoReportUtils.getContent( url, getMavenProjectStub( true ), settingsStub,
                                                      "ISO-8859-1" );
-        Assert.assertNotNull( content );
-        Assert.assertTrue( content.contains( "Licensed to the Apache Software Foundation" ) );
+        assertNotNull( content );
+        assertTrue( content.contains( "Licensed to the Apache Software Foundation" ) );
 
         stopJetty();
 
@@ -185,8 +183,8 @@ public void testGetInputStreamURL()
 
         content = ProjectInfoReportUtils.getContent( url, getMavenProjectStub( true ), settingsStub,
                                                      "ISO-8859-1" );
-        Assert.assertNotNull( content );
-        Assert.assertTrue( content.contains( "Licensed to the Apache Software Foundation" ) );
+        assertNotNull( content );
+        assertTrue( content.contains( "Licensed to the Apache Software Foundation" ) );
 
         stopJetty();
 
diff --git a/src/test/java/org/apache/maven/report/projectinfo/stubs/DependencyArtifactStubFactory.java b/src/test/java/org/apache/maven/report/projectinfo/stubs/DependencyArtifactStubFactory.java
new file mode 100644
index 0000000..7edbadb
--- /dev/null
+++ b/src/test/java/org/apache/maven/report/projectinfo/stubs/DependencyArtifactStubFactory.java
@@ -0,0 +1,74 @@
+package org.apache.maven.report.projectinfo.stubs;
+
+/* 
+ * 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.    
+ */
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.ArtifactUtils;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.plugin.testing.ArtifactStubFactory;
+
+public class DependencyArtifactStubFactory
+    extends ArtifactStubFactory
+{
+    private boolean flattenedPath = true;
+
+    public DependencyArtifactStubFactory( File theWorkingDir, boolean theCreateFiles, boolean flattenedPath )
+    {
+        this( theWorkingDir, theCreateFiles );
+        this.flattenedPath = flattenedPath;
+    }
+
+    public DependencyArtifactStubFactory( File theWorkingDir, boolean theCreateFiles )
+    {
+        super( theWorkingDir, theCreateFiles );
+    }
+
+    @Override
+    public Artifact createArtifact( String groupId, String artifactId, VersionRange versionRange, String scope,
+                                    String type, String classifier, boolean optional )
+        throws IOException
+    {
+        File workingDir = getWorkingDir();
+
+        if ( !flattenedPath )
+        {
+            StringBuilder path = new StringBuilder( 128 );
+
+            path.append( groupId.replace( '.', '/' ) ).append( '/' );
+
+            path.append( artifactId ).append( '/' );
+
+            path.append( ArtifactUtils.toSnapshotVersion( versionRange.getRecommendedVersion().toString() ) );
+
+            // don't use flatten directories, won't happen at runtime
+            setWorkingDir( new File( workingDir, path.toString() ) );
+        }
+
+        Artifact artifact =
+            super.createArtifact( groupId, artifactId, versionRange, scope, type, classifier, optional );
+
+        setWorkingDir( workingDir );
+
+        return artifact;
+    }
+}
diff --git a/src/test/java/org/apache/maven/report/projectinfo/stubs/ModulesStub.java b/src/test/java/org/apache/maven/report/projectinfo/stubs/ModulesStub.java
index c13c027..26e2b5f 100644
--- a/src/test/java/org/apache/maven/report/projectinfo/stubs/ModulesStub.java
+++ b/src/test/java/org/apache/maven/report/projectinfo/stubs/ModulesStub.java
@@ -37,8 +37,8 @@ protected String getPOM()
     }
 
     @Override
-    public List getModules()
+    public List<String> getModules()
     {
-        return Arrays.<String>asList( "subproject1", "subproject2" );
+        return Arrays.asList( "subproject1", "subproject2" );
     }
 }
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.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 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 PluginManagement getPluginManagement()
 
         return pluginMgmt;
     }
-
 }


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Upgrade parent to 31
> --------------------
>
>                 Key: MPIR-361
>                 URL: https://issues.apache.org/jira/browse/MPIR-361
>             Project: Maven Project Info Reports Plugin
>          Issue Type: Dependency upgrade
>    Affects Versions: 3.0.0
>            Reporter: Karl Heinz Marbaise
>            Assignee: Karl Heinz Marbaise
>            Priority: Minor
>             Fix For: 3.0.0
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)