You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/02/27 22:52:31 UTC

[maven-site-plugin] branch MSITE-845 updated (93d235a -> adde31a)

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

slachiewicz pushed a change to branch MSITE-845
in repository https://gitbox.apache.org/repos/asf/maven-site-plugin.git.


    omit 93d235a  [MSITE-845] Drop Maven 2 support
     add baa9bfb  Switch to preferred test.properties
     add e6ecf71  [maven-release-plugin] prepare release maven-site-plugin-3.8.2
     add 3022414  [maven-release-plugin] prepare for next development iteration
     add e3c3949  [MSITE-848] Update sitedescriptor.apt
     add 40d3d32  MSITE-847: Corrected link to prerequisite maven version.
     add 9335776  MSITE-847: Corrected link to prerequisite maven version.
     add 19be00a  MSITE-851 make output jars reproducible like m-source-p
     add 89fd158  upgraded Jetty
     add 27d65b1  remove plugins versions override
     add 4034f73  MSITE-851 fixed IT: jar internal timestamp cause variable local ts
     add ae9c132  MSITE-851 avoid IT failure with old JDK 7 caused by plexus-utils upgrade
     add 58658d8  [MSITE-853] prepare ITs to check DOXIA-597 and DOXIA-571 fixes
     add daa2cf2  [MSITE-855] make build Reproducible
     add bd23136  [MSITE-853] upgrade Doxia to 1.9.1
     add b2edd6f  [MSITE-852] remove Struts dependencies with Doxia Site Renderer to 1.9.2
     new adde31a  [MSITE-845] Drop Maven 2 support

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (93d235a)
            \
             N -- N -- N   refs/heads/MSITE-845 (adde31a)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

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


Summary of changes:
 .gitignore                                           |  1 +
 pom.xml                                              | 20 ++++++++++----------
 .../{MSITE-159 => MSITE-512}/invoker.properties      |  4 +++-
 src/it/projects/doxia-formats/pom.xml                | 10 ----------
 src/it/projects/doxia-formats/src/site/apt/index.apt | 13 +++++++++++++
 .../doxia-formats/src/site/markdown/markdown.md      | 13 +++++++++++++
 src/it/projects/doxia-formats/src/site/site.xml      |  8 +++++++-
 src/it/projects/doxia-formats/verify.groovy          |  4 +++-
 src/it/projects/effective-site/invoker.properties    |  3 +--
 .../test.properties}                                 |  2 +-
 src/it/projects/full-reporting/invoker.properties    |  5 ++++-
 src/it/projects/site-jar/pom.xml                     |  1 +
 src/it/projects/site-jar/verify.bsh                  | 10 ++++++++++
 .../maven/plugins/site/render/SiteJarMojo.java       | 16 +++++++++++++++-
 src/site/apt/examples/sitedescriptor.apt             |  6 ++++--
 src/site/apt/index.apt.vm                            |  2 +-
 16 files changed, 87 insertions(+), 31 deletions(-)
 copy src/it/projects/{MSITE-159 => MSITE-512}/invoker.properties (79%)
 copy src/it/projects/{MSITE-507/invoker.properties => effective-site/test.properties} (96%)


[maven-site-plugin] 01/01: [MSITE-845] Drop Maven 2 support

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

slachiewicz pushed a commit to branch MSITE-845
in repository https://gitbox.apache.org/repos/asf/maven-site-plugin.git

commit adde31a48b07f440a1e2b3b8c1551dabe08b220e
Author: tibordigana <ti...@apache.org>
AuthorDate: Mon Jul 8 14:20:47 2019 +0200

    [MSITE-845] Drop Maven 2 support
---
 src/it/projects/MSITE-265/pom.xml                  |   2 +-
 src/it/projects/MSITE-265/verify.bsh               |   4 +-
 src/it/projects/MSITE-609/pom.xml                  |   2 +-
 src/it/projects/MSITE-609/verify.bsh               |   4 +-
 src/it/projects/it-plugin-test/pom.xml             |   9 +-
 src/it/projects/new-configuration/pom.xml          |   2 +-
 src/it/projects/site-attach-descriptor/pom.xml     |   2 +-
 src/it/projects/site-deploy/pom.xml                |   2 +-
 src/it/projects/site-deploy/verify.bsh             |   4 +-
 src/it/projects/site-jar/pom.xml                   |   2 +-
 .../maven/plugins/site/AbstractSiteMojo.java       |   9 --
 .../plugins/site/deploy/AbstractDeployMojo.java    | 149 +++------------------
 .../site/render/AbstractSiteRenderingMojo.java     |  45 +++----
 13 files changed, 45 insertions(+), 191 deletions(-)

diff --git a/src/it/projects/MSITE-265/pom.xml b/src/it/projects/MSITE-265/pom.xml
index a4e0965..77dbc89 100644
--- a/src/it/projects/MSITE-265/pom.xml
+++ b/src/it/projects/MSITE-265/pom.xml
@@ -32,7 +32,7 @@ under the License.
   <name>MSITE-265 It</name>
 
   <properties>
-    <currentVersion>2.0.7</currentVersion>
+    <currentVersion>3.0.5</currentVersion>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
 
diff --git a/src/it/projects/MSITE-265/verify.bsh b/src/it/projects/MSITE-265/verify.bsh
index e45d763..e460309 100644
--- a/src/it/projects/MSITE-265/verify.bsh
+++ b/src/it/projects/MSITE-265/verify.bsh
@@ -65,10 +65,10 @@ try
         return false;
     }
     String downloadContent = FileUtils.fileRead( download, "UTF-8" );
-    int indexOf = downloadContent.indexOf( "Download Maven 2.0.7" );
+    int indexOf = downloadContent.indexOf( "Download Maven 3.0.5" );
     if ( indexOf < 0 )
     {
-        System.err.println( "download.html doesn't contain Download Maven 2.0.7" );
+        System.err.println( "download.html doesn't contain Download Maven 3.0.5" );
         return false;
     }
     if ( downloadContent.indexOf( "charset=UTF-8" ) < 0 )
diff --git a/src/it/projects/MSITE-609/pom.xml b/src/it/projects/MSITE-609/pom.xml
index 69ad977..214fcc5 100644
--- a/src/it/projects/MSITE-609/pom.xml
+++ b/src/it/projects/MSITE-609/pom.xml
@@ -32,7 +32,7 @@ under the License.
   <name>MSITE-609 IT</name>
 
   <properties>
-    <currentVersion>2.0.7</currentVersion>
+    <currentVersion>3.0.5</currentVersion>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
 
diff --git a/src/it/projects/MSITE-609/verify.bsh b/src/it/projects/MSITE-609/verify.bsh
index 3488815..0b822a8 100644
--- a/src/it/projects/MSITE-609/verify.bsh
+++ b/src/it/projects/MSITE-609/verify.bsh
@@ -65,10 +65,10 @@ try
         return false;
     }
     String downloadContent = FileUtils.fileRead( download, "UTF-8" );
-    int indexOf = downloadContent.indexOf( "Download Maven 2.0.7" );
+    int indexOf = downloadContent.indexOf( "Download Maven 3.0.5" );
     if ( indexOf < 0 )
     {
-        System.err.println( "download.html doesn't contain Download Maven 2.0.7" );
+        System.err.println( "download.html doesn't contain Download Maven 3.0.5" );
         return false;
     }
 }
diff --git a/src/it/projects/it-plugin-test/pom.xml b/src/it/projects/it-plugin-test/pom.xml
index 68c8b98..550019e 100644
--- a/src/it/projects/it-plugin-test/pom.xml
+++ b/src/it/projects/it-plugin-test/pom.xml
@@ -35,7 +35,7 @@ under the License.
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-plugin-api</artifactId>
-      <version>2.2.1</version>
+      <version>3.0</version>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
@@ -52,13 +52,6 @@ under the License.
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
           <version>@project.version@</version>
-          <dependencies><!-- TODO remove when prerequisite is Java 7 -->
-            <dependency>
-              <groupId>org.apache.maven.doxia</groupId>
-              <artifactId>doxia-module-markdown</artifactId>
-              <version>1.7</version>
-            </dependency>
-          </dependencies>
         </plugin>
       </plugins>
     </pluginManagement>
diff --git a/src/it/projects/new-configuration/pom.xml b/src/it/projects/new-configuration/pom.xml
index a37af45..5c552a3 100644
--- a/src/it/projects/new-configuration/pom.xml
+++ b/src/it/projects/new-configuration/pom.xml
@@ -35,7 +35,7 @@ under the License.
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-plugin-api</artifactId>
-      <version>2.2.1</version>
+      <version>3.0</version>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
diff --git a/src/it/projects/site-attach-descriptor/pom.xml b/src/it/projects/site-attach-descriptor/pom.xml
index b0321f1..db1475c 100644
--- a/src/it/projects/site-attach-descriptor/pom.xml
+++ b/src/it/projects/site-attach-descriptor/pom.xml
@@ -37,7 +37,7 @@ under the License.
   </modules>
 
   <properties>
-    <currentVersion>2.0.7</currentVersion>
+    <currentVersion>3.0.5</currentVersion>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
 
diff --git a/src/it/projects/site-deploy/pom.xml b/src/it/projects/site-deploy/pom.xml
index 874ff53..99255c4 100644
--- a/src/it/projects/site-deploy/pom.xml
+++ b/src/it/projects/site-deploy/pom.xml
@@ -32,7 +32,7 @@ under the License.
   <name>site-deploy IT</name>
 
   <properties>
-    <currentVersion>2.0.7</currentVersion>
+    <currentVersion>3.0.5</currentVersion>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
 
diff --git a/src/it/projects/site-deploy/verify.bsh b/src/it/projects/site-deploy/verify.bsh
index 3488815..0b822a8 100644
--- a/src/it/projects/site-deploy/verify.bsh
+++ b/src/it/projects/site-deploy/verify.bsh
@@ -65,10 +65,10 @@ try
         return false;
     }
     String downloadContent = FileUtils.fileRead( download, "UTF-8" );
-    int indexOf = downloadContent.indexOf( "Download Maven 2.0.7" );
+    int indexOf = downloadContent.indexOf( "Download Maven 3.0.5" );
     if ( indexOf < 0 )
     {
-        System.err.println( "download.html doesn't contain Download Maven 2.0.7" );
+        System.err.println( "download.html doesn't contain Download Maven 3.0.5" );
         return false;
     }
 }
diff --git a/src/it/projects/site-jar/pom.xml b/src/it/projects/site-jar/pom.xml
index d76a8ea..d1fa668 100644
--- a/src/it/projects/site-jar/pom.xml
+++ b/src/it/projects/site-jar/pom.xml
@@ -32,7 +32,7 @@ under the License.
   <name>site-jar IT</name>
 
   <properties>
-    <currentVersion>2.0.7</currentVersion>
+    <currentVersion>3.0.5</currentVersion>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.build.outputTimestamp>2019-11-02T17:48:12Z</project.build.outputTimestamp>
   </properties>
diff --git a/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java b/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java
index 9886634..b759cfd 100644
--- a/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java
+++ b/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java
@@ -20,7 +20,6 @@ package org.apache.maven.plugins.site;
  */
 
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.versioning.ComparableVersion;
 import org.apache.maven.doxia.tools.SiteTool;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugins.annotations.Component;
@@ -89,14 +88,6 @@ public abstract class AbstractSiteMojo
     @Parameter( defaultValue = "${reactorProjects}", required = true, readonly = true )
     protected List<MavenProject> reactorProjects;
 
-    /**
-     * Check the current Maven version to see if it's Maven 3.0 or newer.
-     */
-    protected static boolean isMaven3OrMore()
-    {
-        return new ComparableVersion( getMavenVersion() ).compareTo( new ComparableVersion( "3.0" ) ) >= 0;
-    }
-
     protected static String getMavenVersion()
     {
         // This relies on the fact that MavenProject is the in core classloader
diff --git a/src/main/java/org/apache/maven/plugins/site/deploy/AbstractDeployMojo.java b/src/main/java/org/apache/maven/plugins/site/deploy/AbstractDeployMojo.java
index ac262cd..4e2c5ec 100644
--- a/src/main/java/org/apache/maven/plugins/site/deploy/AbstractDeployMojo.java
+++ b/src/main/java/org/apache/maven/plugins/site/deploy/AbstractDeployMojo.java
@@ -51,7 +51,6 @@ 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.classworlds.ClassRealm;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.configurator.ComponentConfigurationException;
@@ -67,7 +66,6 @@ import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 import java.io.File;
-import java.lang.reflect.Method;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.List;
@@ -306,36 +304,10 @@ public abstract class AbstractDeployMojo
         try
         {
             configureWagon( wagon, repository.getId(), settings, container, getLog() );
-        }
-        catch ( TransferFailedException e )
-        {
-            throw new MojoExecutionException( "Unable to configure Wagon: '" + repository.getProtocol() + "'", e );
-        }
 
-        try
-        {
-            final ProxyInfo proxyInfo;
-            if ( !isMaven3OrMore() )
-            {
-                proxyInfo = getProxyInfo( repository, wagonManager );
-            }
-            else
-            {
-                try
-                {
-                    // The cast does not make sense, however I get when compiled with maven 3.5.4:
-                    // error: incompatible types: Object cannot be converted to SettingsDecrypter
-                    // The cast is not necessary with maven 3.3.9
-                    SettingsDecrypter settingsDecrypter =
-                            (SettingsDecrypter) container.lookup( SettingsDecrypter.class );
+            SettingsDecrypter settingsDecrypter = container.lookup( SettingsDecrypter.class );
 
-                    proxyInfo = getProxy( repository, settingsDecrypter );
-                }
-                catch ( ComponentLookupException cle )
-                {
-                    throw new MojoExecutionException( "Unable to lookup SettingsDecrypter: " + cle.getMessage(), cle );
-                }
-            }
+            ProxyInfo proxyInfo = getProxy( repository, settingsDecrypter );
 
             push( directory, repository, wagon, proxyInfo, getLocales(), getDeployModuleDirectory() );
 
@@ -344,6 +316,14 @@ public abstract class AbstractDeployMojo
                 chmod( wagon, repository, chmodOptions, chmodMode );
             }
         }
+        catch ( ComponentLookupException cle )
+        {
+            throw new MojoExecutionException( "Unable to lookup SettingsDecrypter: " + cle.getMessage(), cle );
+        }
+        catch ( TransferFailedException e )
+        {
+            throw new MojoExecutionException( "Unable to configure Wagon: '" + repository.getProtocol() + "'", e );
+        }
         finally
         {
             try
@@ -496,75 +476,14 @@ public abstract class AbstractDeployMojo
     }
 
     /**
+     * Get proxy information for Maven 3.
      * <p>
      * Get the <code>ProxyInfo</code> of the proxy associated with the <code>host</code>
      * and the <code>protocol</code> of the given <code>repository</code>.
-     * </p>
-     * <p>
-     * Extract from <a href="http://java.sun.com/j2se/1.5.0/docs/guide/net/properties.html">
-     * J2SE Doc : Networking Properties - nonProxyHosts</a> : "The value can be a list of hosts,
-     * each separated by a |, and in addition a wildcard character (*) can be used for matching"
-     * </p>
-     * <p>
-     * Defensively support for comma (",") and semi colon (";") in addition to pipe ("|") as separator.
-     * </p>
-     *
-     * @param repository   the Repository to extract the ProxyInfo from.
-     * @param wagonManager the WagonManager used to connect to the Repository.
-     * @return a ProxyInfo object instantiated or <code>null</code> if no matching proxy is found
-     */
-    public static ProxyInfo getProxyInfo( Repository repository, WagonManager wagonManager )
-    {
-        ProxyInfo proxyInfo = wagonManager.getProxy( repository.getProtocol() );
-
-        if ( proxyInfo == null )
-        {
-            return null;
-        }
-
-        String host = repository.getHost();
-        String nonProxyHostsAsString = proxyInfo.getNonProxyHosts();
-        for ( String nonProxyHost : StringUtils.split( nonProxyHostsAsString, ",;|" ) )
-        {
-            if ( StringUtils.contains( nonProxyHost, "*" ) )
-            {
-                // Handle wildcard at the end, beginning or middle of the nonProxyHost
-                final int pos = nonProxyHost.indexOf( '*' );
-                String nonProxyHostPrefix = nonProxyHost.substring( 0, pos );
-                String nonProxyHostSuffix = nonProxyHost.substring( pos + 1 );
-                // prefix*
-                if ( StringUtils.isNotEmpty( nonProxyHostPrefix ) && host.startsWith( nonProxyHostPrefix )
-                    && StringUtils.isEmpty( nonProxyHostSuffix ) )
-                {
-                    return null;
-                }
-                // *suffix
-                if ( StringUtils.isEmpty( nonProxyHostPrefix ) && StringUtils.isNotEmpty( nonProxyHostSuffix )
-                    && host.endsWith( nonProxyHostSuffix ) )
-                {
-                    return null;
-                }
-                // prefix*suffix
-                if ( StringUtils.isNotEmpty( nonProxyHostPrefix ) && host.startsWith( nonProxyHostPrefix )
-                    && StringUtils.isNotEmpty( nonProxyHostSuffix ) && host.endsWith( nonProxyHostSuffix ) )
-                {
-                    return null;
-                }
-            }
-            else if ( host.equals( nonProxyHost ) )
-            {
-                return null;
-            }
-        }
-        return proxyInfo;
-    }
-
-    /**
-     * Get proxy information for Maven 3.
      *
-     * @param repository
-     * @param settingsDecrypter
-     * @return
+     * @param repository        the Repository to extract the ProxyInfo from.
+     * @param settingsDecrypter settings password decrypter.
+     * @return a ProxyInfo object instantiated or <code>null</code> if no matching proxy is found.
      */
     private ProxyInfo getProxy( Repository repository, SettingsDecrypter settingsDecrypter )
     {
@@ -593,13 +512,13 @@ public abstract class AbstractDeployMojo
                 {
                     getLog().warn( "fail to build URL with " + url );
                 }
-
             }
         }
         else
         {
             getLog().debug( "getProxy 'protocol': " + protocol );
         }
+
         if ( mavenSession != null && protocol != null )
         {
             MavenExecutionRequest request = mavenSession.getRequest();
@@ -677,15 +596,8 @@ public abstract class AbstractDeployMojo
                 {
                     componentConfigurator =
                         (ComponentConfigurator) container.lookup( ComponentConfigurator.ROLE, "basic" );
-                    if ( isMaven3OrMore() )
-                    {
-                        componentConfigurator.configureComponent( wagon, plexusConf,
-                                                                  container.getContainerRealm() );
-                    }
-                    else
-                    {
-                        configureWagonWithMaven2( componentConfigurator, wagon, plexusConf, container );
-                    }
+
+                    componentConfigurator.configureComponent( wagon, plexusConf, container.getContainerRealm() );
                 }
                 catch ( final ComponentLookupException e )
                 {
@@ -716,33 +628,6 @@ public abstract class AbstractDeployMojo
         }
     }
 
-    private static void configureWagonWithMaven2( ComponentConfigurator componentConfigurator, Wagon wagon,
-                                                  PlexusConfiguration plexusConf, PlexusContainer container )
-        throws ComponentConfigurationException
-    {
-        // in Maven 2.x   :
-        // * container.getContainerRealm() -> org.codehaus.classworlds.ClassRealm
-        // * componentConfiguration 3rd param is org.codehaus.classworlds.ClassRealm
-        // so use some reflection see MSITE-609
-        try
-        {
-            Method methodContainerRealm = container.getClass().getMethod( "getContainerRealm" );
-            ClassRealm realm = (ClassRealm) methodContainerRealm.invoke( container );
-
-            Method methodConfigure = componentConfigurator.getClass().getMethod( "configureComponent",
-                                                                                 new Class[]{ Object.class,
-                                                                                     PlexusConfiguration.class,
-                                                                                     ClassRealm.class } );
-
-            methodConfigure.invoke( componentConfigurator, wagon, plexusConf, realm );
-        }
-        catch ( Exception e )
-        {
-            throw new ComponentConfigurationException(
-                "Failed to configure wagon component for a Maven2 use " + e.getMessage(), e );
-        }
-    }
-
     /**
      * {@inheritDoc}
      */
diff --git a/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java b/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java
index 7336d0f..49c5e47 100644
--- a/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java
+++ b/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java
@@ -230,49 +230,34 @@ public abstract class AbstractSiteRenderingMojo
     protected List<MavenReportExecution> getReports()
         throws MojoExecutionException
     {
-        final List<MavenReportExecution> allReports;
-        if ( isMaven3OrMore() )
+        try
         {
-            // Maven 3
+            MavenReportExecutor mavenReportExecutor = container.lookup( MavenReportExecutor.class );
+
             MavenReportExecutorRequest mavenReportExecutorRequest = new MavenReportExecutorRequest();
             mavenReportExecutorRequest.setLocalRepository( localRepository );
             mavenReportExecutorRequest.setMavenSession( mavenSession );
             mavenReportExecutorRequest.setProject( project );
             mavenReportExecutorRequest.setReportPlugins( getReportingPlugins() );
 
-            MavenReportExecutor mavenReportExecutor;
-            try
-            {
-                mavenReportExecutor = container.lookup( MavenReportExecutor.class );
-            }
-            catch ( ComponentLookupException e )
-            {
-                throw new MojoExecutionException( "could not get MavenReportExecutor component", e );
-            }
+            List<MavenReportExecution> allReports = mavenReportExecutor.buildMavenReports( mavenReportExecutorRequest );
 
-            allReports = mavenReportExecutor.buildMavenReports( mavenReportExecutorRequest );
-        }
-        else
-        {
-            // Maven 2
-            allReports = new ArrayList<>( reports.size() );
-            for ( MavenReport report : reports )
+            // filter out reports that can't be generated
+            // todo Lambda Java 1.8
+            List<MavenReportExecution> reportExecutions = new ArrayList<>( allReports.size() );
+            for ( MavenReportExecution exec : allReports )
             {
-                allReports.add( new MavenReportExecution( report ) );
+                if ( exec.canGenerateReport() )
+                {
+                    reportExecutions.add( exec );
+                }
             }
+            return reportExecutions;
         }
-
-        // filter out reports that can't be generated
-        // todo Lambda Java 1.8
-        List<MavenReportExecution> reportExecutions = new ArrayList<>( allReports.size() );
-        for ( MavenReportExecution exec : allReports )
+        catch ( ComponentLookupException e )
         {
-            if ( exec.canGenerateReport() )
-            {
-                reportExecutions.add( exec );
-            }
+            throw new MojoExecutionException( "could not get MavenReportExecutor component", e );
         }
-        return reportExecutions;
     }
 
     /**