You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2009/08/29 15:12:15 UTC

svn commit: r809128 - in /maven/plugins/branches/maven-site-plugin-3.x: ./ src/main/java/org/apache/maven/plugins/site/

Author: olamy
Date: Sat Aug 29 13:12:14 2009
New Revision: 809128

URL: http://svn.apache.org/viewvc?rev=809128&view=rev
Log:
move the new report logic to a componenent for easy debug (at least more human readable code :-).
Start working on report which fork a lifecycle : surefire-report it now works.

Added:
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java   (with props)
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutor.java   (with props)
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java   (with props)
Modified:
    maven/plugins/branches/maven-site-plugin-3.x/pom.xml
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java

Modified: maven/plugins/branches/maven-site-plugin-3.x/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/pom.xml?rev=809128&r1=809127&r2=809128&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/pom.xml (original)
+++ maven/plugins/branches/maven-site-plugin-3.x/pom.xml Sat Aug 29 13:12:14 2009
@@ -159,6 +159,7 @@
     <doxiaSitetoolsVersion>1.1.2-SNAPSHOT</doxiaSitetoolsVersion>
     <mavenVersion>3.0-SNAPSHOT</mavenVersion>
     <wagonVersion>1.0-beta-4</wagonVersion>
+    <plexusVersion>1.2.1-SNAPSHOT</plexusVersion>
   </properties>
 
   <dependencies>
@@ -286,7 +287,7 @@
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-container-default</artifactId>
-      <version>1.2.0</version>
+      <version>${plexusVersion}</version>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
@@ -345,6 +346,21 @@
         </plugin>
       </plugins>
     </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-component-metadata</artifactId>
+        <version>${plexusVersion}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>generate-metadata</goal>
+              <!--goal>generate-test-metadata</goal-->
+            </goals>
+          </execution>
+        </executions>
+      </plugin>    
+    </plugins>
   </build>
 
   <reporting>
@@ -500,6 +516,14 @@
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-resources-plugin</artifactId>
               <version>2.4</version>
+              <dependencies>
+                <!--  MSHARED-125 --> 
+                <dependency>
+                  <groupId>org.apache.maven.shared</groupId>
+                  <artifactId>maven-filtering</artifactId>
+                  <version>1.0-beta-4-SNAPSHOT</version>
+                </dependency>
+              </dependencies>
             </plugin>
           </plugins>
         </pluginManagement>        

Modified: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java?rev=809128&r1=809127&r2=809128&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java (original)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java Sat Aug 29 13:12:14 2009
@@ -32,8 +32,6 @@
 
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.DefaultRepositoryRequest;
-import org.apache.maven.artifact.repository.RepositoryRequest;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.doxia.sink.render.RenderingContext;
 import org.apache.maven.doxia.site.decoration.DecorationModel;
@@ -44,22 +42,11 @@
 import org.apache.maven.doxia.siterenderer.SiteRenderingContext;
 import org.apache.maven.doxia.tools.SiteToolException;
 import org.apache.maven.execution.MavenSession;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.model.ReportSet;
-import org.apache.maven.plugin.MavenPluginManager;
-import org.apache.maven.plugin.Mojo;
-import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugin.MojoNotFoundException;
-import org.apache.maven.plugin.descriptor.MojoDescriptor;
-import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.reporting.MavenReport;
 import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.configuration.PlexusConfiguration;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 /**
  * Base class for site rendering mojos.
@@ -199,199 +186,38 @@
     */    
     protected PlexusContainer plexusContainer;
 
-    /**
-     *
-     * @component
-     * @readonly
-     */
-    protected MavenPluginManager mavenPluginManager;
-   
-    protected Map<MavenReport, ClassLoader> getReports()  throws MojoExecutionException
-    {
-        if ( this.project.getReporting() == null || this.project.getReporting().getPlugins().isEmpty() )
-        {
-            return Collections.emptyMap();
-        }
-        return buildMavenReports();
-    }
-    
-    private Xpp3Dom convert( MojoDescriptor mojoDescriptor  )
-    {
-        Xpp3Dom dom = new Xpp3Dom( "configuration" );
-
-        PlexusConfiguration c = mojoDescriptor.getMojoConfiguration();
+   /**
+   *
+   * @component
+   * @readonly
+   */   
+   protected MavenReportExecutor mavenReportExecutor;
 
-        PlexusConfiguration[] ces = c.getChildren();
-
-        if ( ces != null )
-        {
-            for ( PlexusConfiguration ce : ces )
-            {
-                String value = ce.getValue( null );
-                String defaultValue = ce.getAttribute( "default-value", null );
-                if ( value != null || defaultValue != null )
-                {
-                    Xpp3Dom e = new Xpp3Dom( ce.getName() );
-                    e.setValue( value );
-                    if ( defaultValue != null )
-                    {
-                        e.setAttribute( "default-value", defaultValue );
-                    }
-                    dom.addChild( e );
-                }
-            }
-        }
-
-        return dom;
-    }    
-    
-    private Map<MavenReport, ClassLoader> buildMavenReports()
+    protected Map<MavenReport, ClassLoader> getReports()
         throws MojoExecutionException
     {
-        List<String> imports = new ArrayList<String>();
-     
-        
-        imports.add( "org.apache.maven.reporting.MavenReport" );
-        //imports.add( "org.apache.maven.reporting.AbstractMavenReport" );
-        imports.add( "org.apache.maven.doxia.siterenderer.Renderer" );
-        imports.add( "org.apache.maven.doxia.sink.SinkFactory" );
-        imports.add( "org.codehaus.doxia.sink.Sink" );
-        imports.add( "org.apache.maven.doxia.sink.Sink" );
-        imports.add( "org.apache.maven.doxia.sink.SinkEventAttributes" );
-        
-        /*
-        imports.add( "org.codehaus.plexus.util.xml.Xpp3Dom" );
-        imports.add( "org.codehaus.plexus.util.xml.pull.XmlPullParser" );
-        imports.add( "org.codehaus.plexus.util.xml.pull.XmlPullParserException" );
-        imports.add( "org.codehaus.plexus.util.xml.pull.XmlSerializer" );
-        */
-        
-        RepositoryRequest repositoryRequest = new DefaultRepositoryRequest();
-        repositoryRequest.setLocalRepository( localRepository );
-        repositoryRequest.setRemoteRepositories( mavenSession.getRequest().getRemoteRepositories() );
-        
-        try
-        {
-
-            Map<MavenReport, ClassLoader> reports = new HashMap<MavenReport, ClassLoader>();
-
-            for ( ReportPlugin reportPlugin : this.project.getReporting().getPlugins() )
-            {
-                Plugin plugin = new Plugin();
-                plugin.setGroupId( reportPlugin.getGroupId() );
-                plugin.setArtifactId( reportPlugin.getArtifactId() );
-                plugin.setVersion( reportPlugin.getVersion() );
-
-                List<String> goals = new ArrayList<String>();
-                for ( ReportSet reportSet : reportPlugin.getReportSets() )
-                {
-                    goals.addAll( reportSet.getReports() );
-                }
-                // no report set we will execute all from the report plugin
-                boolean emptyReports = goals.isEmpty();
-
-                PluginDescriptor pluginDescriptor = mavenPluginManager.getPluginDescriptor( plugin, repositoryRequest );
-                
-                if (emptyReports)
-                {
-                    List<MojoDescriptor> mojoDescriptors = pluginDescriptor.getMojos();
-                    for (MojoDescriptor mojoDescriptor : mojoDescriptors)
-                    {
-                        goals.add( mojoDescriptor.getGoal() );
-                    }
-                }
-                
-                for ( String goal : goals )
-                {
-                    MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo( goal );
-                    if ( mojoDescriptor == null )
-                    {
-                        throw new MojoNotFoundException( goal, pluginDescriptor );
-                    }
-
-                    MojoExecution mojoExecution = new MojoExecution( plugin, goal, "report:" + goal );
-                    mojoExecution.setConfiguration( convert( mojoDescriptor ) );
-                    mojoExecution.setMojoDescriptor( mojoDescriptor );
-                    mavenPluginManager.setupPluginRealm( pluginDescriptor, mavenSession, Thread.currentThread().getContextClassLoader(), imports );
-                    MavenReport mavenReport = getConfiguredMavenReport( mojoExecution, pluginDescriptor );
-                    if (mavenReport != null)
-                    {
-                        reports.put( mavenReport, pluginDescriptor.getClassRealm() );
-                    }
-                }
-            }
-            return reports;
-        }
-        catch ( Throwable e )
-        {
-            throw new MojoExecutionException( "failed to get Reports ", e );
-        }
-    }
-    
-    private MavenReport getConfiguredMavenReport( MojoExecution mojoExecution, PluginDescriptor pluginDescriptor )
-        throws Throwable
-    {
-        if ( !isMavenReport( mojoExecution, pluginDescriptor ) )
-        {
-            return null;
-        }
-        try
-        {
-            // FIXME here we need something to prevent MJAVADOC-251 config injection order can be different from mvn < 3.x
-            MavenReport mavenReport =
-                (MavenReport) mavenPluginManager.getConfiguredMojo( Mojo.class, this.mavenSession, mojoExecution );
-            return mavenReport;
-
-        } catch (ClassCastException e)
-        {
-            getLog().warn( "skip ClassCastException " + e.getMessage() );
-            return null;
-        }
-        catch ( Throwable e )
+        if ( this.project.getReporting() == null || this.project.getReporting().getPlugins().isEmpty() )
         {
-            getLog().error( "error configuring mojo " + mojoExecution.toString() + " : " + e.getMessage() , e);
-            throw e;
+            return Collections.emptyMap();
         }
+        MavenReportExecutorRequest mavenReportExecutorRequest = new MavenReportExecutorRequest();
+        mavenReportExecutorRequest.setLocalRepository( localRepository );
+        mavenReportExecutorRequest.setMavenSession( mavenSession );
+        mavenReportExecutorRequest.setProject( project );
+        return mavenReportExecutor.buildMavenReports( mavenReportExecutorRequest );
     }
 
-    private boolean isMavenReport( MojoExecution mojoExecution, PluginDescriptor pluginDescriptor )
-    {
-        ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
-        try
-        {
-            MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo( mojoExecution.getGoal() );
-            Thread.currentThread().setContextClassLoader( mojoDescriptor.getRealm() );
-            boolean isMavenReport = MavenReport.class.isAssignableFrom( mojoDescriptor.getImplementationClass() );
-            if (!isMavenReport)
-            {
-                getLog().info( " skip non MavenReport " + mojoExecution.getMojoDescriptor().getId() );
-            }
-            return isMavenReport;
-        }
-        catch ( LinkageError e )
-        {
-            getLog().warn( "skip LinkageError  mojoExecution.goal"  +  mojoExecution.getGoal() + " : " + e.getMessage(), e  );
-            //pluginRealm.display();
-            return false;
-        }
-        finally
-        {
-            Thread.currentThread().setContextClassLoader( originalClassLoader );
-        }
-
-    }
-    
     protected Map<MavenReport, ClassLoader> filterReports( Map<MavenReport, ClassLoader> reports )
     {
-    	Map<MavenReport, ClassLoader> filteredReports = new HashMap<MavenReport, ClassLoader>();
+        Map<MavenReport, ClassLoader> filteredReports = new HashMap<MavenReport, ClassLoader>();
         for ( MavenReport report : reports.keySet() )
         {
-            //noinspection ErrorNotRethrown,UnusedCatchParameter
+            // noinspection ErrorNotRethrown,UnusedCatchParameter
             try
             {
                 if ( report.canGenerateReport() )
                 {
-                    filteredReports.put( report, reports.get(report) );
+                    filteredReports.put( report, reports.get( report ) );
                 }
             }
             catch ( AbstractMethodError e )
@@ -403,7 +229,7 @@
                 getLog().warn(
                                "Error loading report " + report.getClass().getName()
                                    + " - AbstractMethodError: canGenerateReport()" );
-                filteredReports.put( report, reports.get(report) );
+                filteredReports.put( report, reports.get( report ) );
             }
         }
         return filteredReports;

Added: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java?rev=809128&view=auto
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java (added)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java Sat Aug 29 13:12:14 2009
@@ -0,0 +1,235 @@
+package org.apache.maven.plugins.site;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.maven.artifact.repository.DefaultRepositoryRequest;
+import org.apache.maven.artifact.repository.RepositoryRequest;
+import org.apache.maven.lifecycle.LifecycleExecutor;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.ReportSet;
+import org.apache.maven.plugin.MavenPluginManager;
+import org.apache.maven.plugin.Mojo;
+import org.apache.maven.plugin.MojoExecution;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoNotFoundException;
+import org.apache.maven.plugin.descriptor.MojoDescriptor;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.reporting.MavenReport;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.configuration.PlexusConfiguration;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+/**
+ *  
+ * @author Olivier Lamy
+ * @since 3.0-beta-1
+ */
+@Component(role=MavenReportExecutor.class)
+public class DefaultMavenReportExecutor
+    implements MavenReportExecutor
+{
+
+    @Requirement
+    private Logger logger;
+
+    @Requirement
+    protected MavenPluginManager mavenPluginManager;
+
+    @Requirement
+    protected LifecycleExecutor lifecycleExecutor;
+
+    public Map<MavenReport, ClassLoader> buildMavenReports( MavenReportExecutorRequest mavenReportExecutorRequest )
+        throws MojoExecutionException
+    {
+
+        List<String> imports = new ArrayList<String>();
+
+        imports.add( "org.apache.maven.reporting.MavenReport" );
+        // imports.add( "org.apache.maven.reporting.AbstractMavenReport" );
+        imports.add( "org.apache.maven.doxia.siterenderer.Renderer" );
+        imports.add( "org.apache.maven.doxia.sink.SinkFactory" );
+        imports.add( "org.codehaus.doxia.sink.Sink" );
+        imports.add( "org.apache.maven.doxia.sink.Sink" );
+        imports.add( "org.apache.maven.doxia.sink.SinkEventAttributes" );
+
+        /*
+         * imports.add( "org.codehaus.plexus.util.xml.Xpp3Dom" ); imports.add(
+         * "org.codehaus.plexus.util.xml.pull.XmlPullParser" ); imports.add(
+         * "org.codehaus.plexus.util.xml.pull.XmlPullParserException" ); imports.add(
+         * "org.codehaus.plexus.util.xml.pull.XmlSerializer" );
+         */
+
+        RepositoryRequest repositoryRequest = new DefaultRepositoryRequest();
+        repositoryRequest.setLocalRepository( mavenReportExecutorRequest.getLocalRepository() );
+        repositoryRequest.setRemoteRepositories( mavenReportExecutorRequest.getMavenSession().getRequest().getRemoteRepositories() );
+
+        try
+        {
+
+            Map<MavenReport, ClassLoader> reports = new HashMap<MavenReport, ClassLoader>();
+
+            for ( ReportPlugin reportPlugin : mavenReportExecutorRequest.getProject().getReporting().getPlugins() )
+            {
+                Plugin plugin = new Plugin();
+                plugin.setGroupId( reportPlugin.getGroupId() );
+                plugin.setArtifactId( reportPlugin.getArtifactId() );
+                plugin.setVersion( reportPlugin.getVersion() );
+
+                List<String> goals = new ArrayList<String>();
+                for ( ReportSet reportSet : reportPlugin.getReportSets() )
+                {
+                    goals.addAll( reportSet.getReports() );
+                }
+                // no report set we will execute all from the report plugin
+                boolean emptyReports = goals.isEmpty();
+
+                PluginDescriptor pluginDescriptor = mavenPluginManager.getPluginDescriptor( plugin, repositoryRequest );
+
+                if ( emptyReports )
+                {
+                    List<MojoDescriptor> mojoDescriptors = pluginDescriptor.getMojos();
+                    for ( MojoDescriptor mojoDescriptor : mojoDescriptors )
+                    {
+                        goals.add( mojoDescriptor.getGoal() );
+                    }
+                }
+
+                for ( String goal : goals )
+                {
+                    MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo( goal );
+                    if ( mojoDescriptor == null )
+                    {
+                        throw new MojoNotFoundException( goal, pluginDescriptor );
+                    }
+
+                    MojoExecution mojoExecution = new MojoExecution( plugin, goal, "report:" + goal );
+                    mojoExecution.setConfiguration( convert( mojoDescriptor ) );
+                    mojoExecution.setMojoDescriptor( mojoDescriptor );
+                    mavenPluginManager.setupPluginRealm( pluginDescriptor,
+                                                         mavenReportExecutorRequest.getMavenSession(),
+                                                         Thread.currentThread().getContextClassLoader(), imports );
+
+                    lifecycleExecutor.calculateForkedExecutions( mojoExecution,
+                                                                 mavenReportExecutorRequest.getMavenSession() );
+                    if ( !mojoExecution.getForkedExecutions().isEmpty() )
+                    {
+                        lifecycleExecutor.executeForkedExecutions( mojoExecution,
+                                                                   mavenReportExecutorRequest.getMavenSession() );
+                    }
+
+                    MavenReport mavenReport =
+                        getConfiguredMavenReport( mojoExecution, pluginDescriptor, mavenReportExecutorRequest );
+                    if ( mavenReport != null )
+                    {
+                        reports.put( mavenReport, pluginDescriptor.getClassRealm() );
+                    }
+                }
+            }
+            return reports;
+        }
+        catch ( Throwable e )
+        {
+            throw new MojoExecutionException( "failed to get Reports ", e );
+        }
+    }
+
+    private MavenReport getConfiguredMavenReport( MojoExecution mojoExecution, PluginDescriptor pluginDescriptor,
+                                                  MavenReportExecutorRequest mavenReportExecutorRequest )
+        throws Throwable
+    {
+        if ( !isMavenReport( mojoExecution, pluginDescriptor ) )
+        {
+            return null;
+        }
+        try
+        {
+            // FIXME here we need something to prevent MJAVADOC-251 config injection order can be different from mvn <
+            // 3.x
+            MavenReport mavenReport =
+                (MavenReport) mavenPluginManager.getConfiguredMojo( Mojo.class,
+                                                                    mavenReportExecutorRequest.getMavenSession(),
+                                                                    mojoExecution );
+            return mavenReport;
+
+        }
+        catch ( ClassCastException e )
+        {
+            getLog().warn( "skip ClassCastException " + e.getMessage() );
+            return null;
+        }
+        catch ( Throwable e )
+        {
+            getLog().error( "error configuring mojo " + mojoExecution.toString() + " : " + e.getMessage(), e );
+            throw e;
+        }
+    }
+
+    private boolean isMavenReport( MojoExecution mojoExecution, PluginDescriptor pluginDescriptor )
+    {
+        ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
+        try
+        {
+            MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo( mojoExecution.getGoal() );
+            Thread.currentThread().setContextClassLoader( mojoDescriptor.getRealm() );
+            boolean isMavenReport = MavenReport.class.isAssignableFrom( mojoDescriptor.getImplementationClass() );
+            if ( !isMavenReport )
+            {
+                getLog().info( " skip non MavenReport " + mojoExecution.getMojoDescriptor().getId() );
+            }
+            return isMavenReport;
+        }
+        catch ( LinkageError e )
+        {
+            getLog().warn( "skip LinkageError  mojoExecution.goal" + mojoExecution.getGoal() + " : " + e.getMessage(),
+                           e );
+            // pluginRealm.display();
+            return false;
+        }
+        finally
+        {
+            Thread.currentThread().setContextClassLoader( originalClassLoader );
+        }
+
+    }
+
+    private Xpp3Dom convert( MojoDescriptor mojoDescriptor )
+    {
+        Xpp3Dom dom = new Xpp3Dom( "configuration" );
+
+        PlexusConfiguration c = mojoDescriptor.getMojoConfiguration();
+
+        PlexusConfiguration[] ces = c.getChildren();
+
+        if ( ces != null )
+        {
+            for ( PlexusConfiguration ce : ces )
+            {
+                String value = ce.getValue( null );
+                String defaultValue = ce.getAttribute( "default-value", null );
+                if ( value != null || defaultValue != null )
+                {
+                    Xpp3Dom e = new Xpp3Dom( ce.getName() );
+                    e.setValue( value );
+                    if ( defaultValue != null )
+                    {
+                        e.setAttribute( "default-value", defaultValue );
+                    }
+                    dom.addChild( e );
+                }
+            }
+        }
+
+        return dom;
+    }
+
+    private Logger getLog()
+    {
+        return logger;
+    }
+}

Propchange: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutor.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutor.java?rev=809128&view=auto
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutor.java (added)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutor.java Sat Aug 29 13:12:14 2009
@@ -0,0 +1,20 @@
+/**
+ * 
+ */
+package org.apache.maven.plugins.site;
+
+import java.util.Map;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.reporting.MavenReport;
+
+/**
+ *  
+ * @author Olivier Lamy
+ * @since 3.0-beta-1
+ */
+public interface MavenReportExecutor
+{
+    Map<MavenReport, ClassLoader> buildMavenReports(MavenReportExecutorRequest mavenReportExecutorRequest)
+        throws MojoExecutionException;
+}

Propchange: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutor.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java?rev=809128&view=auto
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java (added)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java Sat Aug 29 13:12:14 2009
@@ -0,0 +1,45 @@
+package org.apache.maven.plugins.site;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.project.MavenProject;
+
+public class MavenReportExecutorRequest
+{
+    private ArtifactRepository localRepository;
+
+    private MavenSession mavenSession;
+
+    private MavenProject project;
+
+    public ArtifactRepository getLocalRepository()
+    {
+        return localRepository;
+    }
+
+    public void setLocalRepository( ArtifactRepository localRepository )
+    {
+        this.localRepository = localRepository;
+    }
+
+    public MavenSession getMavenSession()
+    {
+        return mavenSession;
+    }
+
+    public void setMavenSession( MavenSession mavenSession )
+    {
+        this.mavenSession = mavenSession;
+    }
+
+    public MavenProject getProject()
+    {
+        return project;
+    }
+
+    public void setProject( MavenProject project )
+    {
+        this.project = project;
+    }
+
+}

Propchange: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision