diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index 61a87346ec..ad39f1e48b 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -49,6 +49,11 @@
maven-plugin-descriptor
2.0-SNAPSHOT
+
+ org.apache.maven.reporting
+ maven-reporting-api
+ 2.0-SNAPSHOT
+
commons-cli
commons-cli
@@ -79,13 +84,14 @@
-
+
- org.apache.maven.reports
- dependencies
+ org.apache.maven.plugins
+ maven-project-info-reports-plugin
+ 1.0-SNAPSHOT
diff --git a/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java b/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
index f7e61ceffc..2389f0c571 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
@@ -27,6 +27,7 @@ import org.codehaus.plexus.component.repository.exception.ComponentLookupExcepti
import org.codehaus.plexus.context.Context;
import java.util.List;
+import java.util.Map;
/**
* @author Jason van Zyl
@@ -126,6 +127,18 @@ public class MavenSession
return container.lookup( role, roleHint );
}
+ public List lookupList( String role )
+ throws ComponentLookupException
+ {
+ return container.lookupList( role );
+ }
+
+ public Map lookupMap( String role )
+ throws ComponentLookupException
+ {
+ return container.lookupMap( role );
+ }
+
public EventDispatcher getEventDispatcher()
{
return eventDispatcher;
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
index abe499f29d..2ec31e89d7 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
@@ -216,6 +216,21 @@ public class DefaultPluginManager
}
}
+ if ( project.getReports() != null )
+ {
+ for ( Iterator it = project.getReports().getPlugins().iterator(); it.hasNext(); )
+ {
+ org.apache.maven.model.Plugin plugin = (org.apache.maven.model.Plugin) it.next();
+
+ if ( groupId.equals( plugin.getGroupId() ) && artifactId.equals( plugin.getArtifactId() ) )
+ {
+ pluginConfig = plugin;
+
+ break;
+ }
+ }
+ }
+
String version = null;
if ( pluginConfig != null )
@@ -791,7 +806,7 @@ public class DefaultPluginManager
artifactFilter = new ExclusionSetFilter( new String[]{"maven-core", "maven-artifact", "maven-model",
"maven-settings", "maven-monitor", "maven-plugin-api",
"maven-plugin-descriptor", "plexus-container-default",
- "maven-project", "plexus-container-artifact",
+ "maven-project", "plexus-container-artifact", "maven-reporting-api", "doxia-core",
"wagon-provider-api", "classworlds", "maven-plugin"} );
}
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
index 69f31c38df..dcf3340180 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
@@ -16,14 +16,17 @@ package org.apache.maven.plugin;
* limitations under the License.
*/
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.project.path.PathTranslator;
+import org.apache.maven.reporting.MavenReport;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
import java.io.File;
+import java.util.Iterator;
/**
* @author Jason van Zyl
@@ -90,6 +93,41 @@ public class PluginParameterExpressionEvaluator
throw new ExpressionEvaluationException( "Cannot lookup component: " + role + ".", e );
}
}
+ else if (expression.equals( "reports" ) )
+ {
+ String role = PluginManager.ROLE;
+ try
+ {
+ PluginManager pluginManager = (PluginManager) context.lookup( role );
+ for ( Iterator it = context.getProject().getReports().getPlugins().iterator(); it.hasNext(); )
+ {
+ org.apache.maven.model.Plugin plugin = (org.apache.maven.model.Plugin) it.next();
+ pluginManager.verifyPlugin( plugin.getGroupId(), plugin.getArtifactId(), context );
+ }
+ }
+ catch ( ComponentLookupException cle )
+ {
+ throw new ExpressionEvaluationException( "Cannot lookup component: " + role + ".", cle );
+ }
+ catch ( ArtifactResolutionException are )
+ {
+ throw new ExpressionEvaluationException( "Cannot resolve component: " + role + ".", are );
+ }
+ catch ( PluginManagerException pme )
+ {
+ throw new ExpressionEvaluationException( "Cannot verify component: " + role + ".", pme );
+ }
+
+ role = MavenReport.ROLE;
+ try
+ {
+ value = context.lookupMap( role );
+ }
+ catch ( ComponentLookupException cle )
+ {
+ throw new ExpressionEvaluationException( "Cannot lookup component: " + role + ".", cle );
+ }
+ }
else if ( expression.equals( "localRepository" ) )
{
value = context.getLocalRepository();
diff --git a/maven-plugins/maven-site-plugin/pom.xml b/maven-plugins/maven-site-plugin/pom.xml
index abf56ea006..29c71feade 100644
--- a/maven-plugins/maven-site-plugin/pom.xml
+++ b/maven-plugins/maven-site-plugin/pom.xml
@@ -15,6 +15,11 @@
maven-project
2.0-SNAPSHOT
+
+ org.apache.maven.reporting
+ maven-reporting-api
+ 2.0-SNAPSHOT
+
doxia
doxia-core
@@ -30,10 +35,5 @@
wagon-ssh
1.0-alpha-3-SNAPSHOT
-
- org.apache.maven.reporting
- maven-reporting-manager
- 2.0-SNAPSHOT
-
diff --git a/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java b/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
index 740c185f74..291002287f 100644
--- a/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
+++ b/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
@@ -4,17 +4,21 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.reporting.MavenReport;
import org.apache.maven.reporting.MavenReportConfiguration;
-import org.apache.maven.reporting.manager.MavenReportManager;
import org.codehaus.doxia.site.renderer.SiteRenderer;
import java.io.File;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
/**
* @goal site
* @description Doxia plugin
+ *
+ * @author Emmanuel Venisse
+ * @version $Id$
*/
public class DoxiaMojo
extends AbstractMojo
@@ -32,7 +36,7 @@ public class DoxiaMojo
private String generatedSiteDirectory;
/**
- * @parameter expressoin="${project.build.directory}/site"
+ * @parameter expression="${project.build.directory}/site"
* @required
*/
private String outputDirectory;
@@ -57,11 +61,11 @@ public class DoxiaMojo
private MavenProject project;
/**
- * @parameter expression="${component.org.apache.maven.reporting.manager.MavenReportManager}"
+ * @parameter expression="${reports}"
* @required
* @readonly
*/
- private MavenReportManager reportManager;
+ private Map reports;
/**
* @parameter expression="${localRepository}"
@@ -87,16 +91,16 @@ public class DoxiaMojo
config.setModel( project.getModel() );
config.setOutputDirectory( new File( generatedSiteDirectory ) );
-
- if ( project.getReports() != null )
+ if ( reports != null )
{
- reportManager.addReports( project.getReports(), localRepository, remoteRepositories );
-
- for ( Iterator i = reportManager.getReports().keySet().iterator(); i.hasNext(); )
+System.out.println(reports.size());
+ for ( Iterator i = reports.values().iterator(); i.hasNext(); )
{
- String reportName = (String) i.next();
+ MavenReport report = (MavenReport) i.next();
- reportManager.executeReport( reportName, config );
+ report.setConfiguration( config );
+
+ report.generate();
}
}
diff --git a/sandbox/maven-reports/maven-project-info-reports-plugin/pom.xml b/sandbox/maven-reports/maven-project-info-reports-plugin/pom.xml
index 950a52d1fa..da856747be 100644
--- a/sandbox/maven-reports/maven-project-info-reports-plugin/pom.xml
+++ b/sandbox/maven-reports/maven-project-info-reports-plugin/pom.xml
@@ -1,10 +1,10 @@
4.0.0
-
+
org.apache.maven.plugins
maven-project-info-reports-plugin
1.0-SNAPSHOT
diff --git a/sandbox/maven-reports/maven-project-info-reports-plugin/src/main/resources/META-INF/plexus/components.xml b/sandbox/maven-reports/maven-project-info-reports-plugin/src/main/resources/META-INF/plexus/components.xml
index 3a7c2c4a56..390745db25 100644
--- a/sandbox/maven-reports/maven-project-info-reports-plugin/src/main/resources/META-INF/plexus/components.xml
+++ b/sandbox/maven-reports/maven-project-info-reports-plugin/src/main/resources/META-INF/plexus/components.xml
@@ -12,4 +12,30 @@
per-lookup
+
+
+ doxia
+ doxia-core
+ jar
+ 1.0-alpha-2-SNAPSHOT
+
+
+ org.apache.maven.reporting
+ maven-reporting-api
+ jar
+ 2.0-SNAPSHOT
+
+
+ org.apache.maven
+ maven-model
+ jar
+ 2.0-SNAPSHOT
+
+
+ org.apache.maven
+ maven-plugin-api
+ jar
+ 2.0-SNAPSHOT
+
+