You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2011/03/02 01:18:39 UTC
svn commit: r1076063 - in /maven/plugins/branches/MSITE-560: ./
src/main/java/org/apache/maven/plugins/site/
src/main/java/org/apache/maven/reporting/exec/
Author: hboutemy
Date: Wed Mar 2 00:18:39 2011
New Revision: 1076063
URL: http://svn.apache.org/viewvc?rev=1076063&view=rev
Log:
inject Maven 2 specific code
Modified:
maven/plugins/branches/MSITE-560/pom.xml
maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java
maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java
maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/ReportDocumentRenderer.java
maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/reporting/exec/MavenReportExecution.java
Modified: maven/plugins/branches/MSITE-560/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MSITE-560/pom.xml?rev=1076063&r1=1076062&r2=1076063&view=diff
==============================================================================
--- maven/plugins/branches/MSITE-560/pom.xml (original)
+++ maven/plugins/branches/MSITE-560/pom.xml Wed Mar 2 00:18:39 2011
@@ -162,7 +162,7 @@ under the License.
</contributors>
<prerequisites>
- <maven>${mavenVersion}</maven>
+ <maven>2.2.0</maven>
</prerequisites>
<scm>
Modified: maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java?rev=1076063&r1=1076062&r2=1076063&view=diff
==============================================================================
--- maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java (original)
+++ maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java Wed Mar 2 00:18:39 2011
@@ -33,7 +33,6 @@ import org.apache.maven.doxia.tools.Site
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.project.MavenProject;
import org.apache.maven.reporting.MavenReport;
-import org.apache.maven.reporting.exec.ReportPlugin;
import org.codehaus.plexus.i18n.I18N;
import org.codehaus.plexus.util.ReaderFactory;
@@ -45,13 +44,6 @@ import org.codehaus.plexus.util.ReaderFa
public abstract class AbstractSiteMojo
extends AbstractMojo
{
-
- /**
- * @parameter
- * @since 3.0-beta-1
- */
- protected ReportPlugin[] reportPlugins;
-
/**
* A comma separated list of locales supported by Maven. The first valid token will be the default Locale
* for this instance of the Java Virtual Machine.
Modified: maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java?rev=1076063&r1=1076062&r2=1076063&view=diff
==============================================================================
--- maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java (original)
+++ maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java Wed Mar 2 00:18:39 2011
@@ -49,6 +49,7 @@ import org.apache.maven.reporting.MavenR
import org.apache.maven.reporting.exec.MavenReportExecution;
import org.apache.maven.reporting.exec.MavenReportExecutor;
import org.apache.maven.reporting.exec.MavenReportExecutorRequest;
+import org.apache.maven.reporting.exec.ReportPlugin;
import org.codehaus.plexus.PlexusContainer;
/**
@@ -193,7 +194,24 @@ public abstract class AbstractSiteRender
protected PlexusContainer plexusContainer;
/**
- * The report executor.
+ * Reports (Maven 2).
+ *
+ * @parameter expression="${reports}"
+ * @required
+ * @readonly
+ */
+ protected List<MavenReport> reports;
+
+ /**
+ * Report plugins (Maven 3).
+ *
+ * @parameter
+ * @since 3.0-beta-1
+ */
+ private ReportPlugin[] reportPlugins;
+
+ /**
+ * The report executor (Maven 3).
*
* @component
* @readonly
@@ -203,18 +221,26 @@ public abstract class AbstractSiteRender
protected List<MavenReportExecution> getReports()
throws MojoExecutionException
{
- if ( reportPlugins == null || reportPlugins.length <= 0 )
- {
- return Collections.emptyList();
- }
+ if ( reportPlugins != null && reportPlugins.length > 0 )
+ { // to be reviewed : is this the right test to detect Maven 3?
+ MavenReportExecutorRequest mavenReportExecutorRequest = new MavenReportExecutorRequest();
+ mavenReportExecutorRequest.setLocalRepository( localRepository );
+ mavenReportExecutorRequest.setMavenSession( mavenSession );
+ mavenReportExecutorRequest.setProject( project );
+ mavenReportExecutorRequest.setReportPlugins( reportPlugins );
- MavenReportExecutorRequest mavenReportExecutorRequest = new MavenReportExecutorRequest();
- mavenReportExecutorRequest.setLocalRepository( localRepository );
- mavenReportExecutorRequest.setMavenSession( mavenSession );
- mavenReportExecutorRequest.setProject( project );
- mavenReportExecutorRequest.setReportPlugins( reportPlugins );
+ return mavenReportExecutor.buildMavenReports( mavenReportExecutorRequest );
+ }
- return mavenReportExecutor.buildMavenReports( mavenReportExecutorRequest );
+ List<MavenReportExecution> reportExecutions = new ArrayList<MavenReportExecution>( reports.size() );
+ for ( MavenReport report : reports )
+ {
+ if ( report.canGenerateReport() )
+ {
+ reportExecutions.add( new MavenReportExecution( report ) );
+ }
+ }
+ return reportExecutions;
}
protected SiteRenderingContext createSiteRenderingContext( Locale locale )
Modified: maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/ReportDocumentRenderer.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/ReportDocumentRenderer.java?rev=1076063&r1=1076062&r2=1076063&view=diff
==============================================================================
--- maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/ReportDocumentRenderer.java (original)
+++ maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/plugins/site/ReportDocumentRenderer.java Wed Mar 2 00:18:39 2011
@@ -69,14 +69,54 @@ public class ReportDocumentRenderer
this.renderingContext = renderingContext;
- this.pluginInfo =
- mavenReportExecution.getPlugin().getArtifactId() + ':' + mavenReportExecution.getPlugin().getVersion();
+ if ( mavenReportExecution.getPlugin() == null )
+ {
+ this.pluginInfo = getPluginInfo( report );
+ }
+ else
+ {
+ this.pluginInfo =
+ mavenReportExecution.getPlugin().getArtifactId() + ':' + mavenReportExecution.getPlugin().getVersion();
+ }
this.classLoader = mavenReportExecution.getClassLoader();
this.log = log;
}
+ /**
+ * Get plugin information from report's Manifest.
+ *
+ * @param report the Maven report
+ * @return plugin information as Specification Title followed by Specification Version if set in Manifest and
+ * supported by JVM
+ */
+ private String getPluginInfo( MavenReport report )
+ {
+ Package pkg = report.getClass().getPackage();
+
+ if ( pkg != null )
+ {
+ String title = pkg.getSpecificationTitle();
+ String version = pkg.getSpecificationVersion();
+
+ if ( title == null )
+ {
+ return version;
+ }
+ else if ( version == null )
+ {
+ return title;
+ }
+ else
+ {
+ return title + ' ' + version;
+ }
+ }
+
+ return null;
+ }
+
private static class MySink
extends SiteRendererSink
{
@@ -162,7 +202,10 @@ public class ReportDocumentRenderer
SiteRendererSink sink = new SiteRendererSink( renderingContext );
ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
- Thread.currentThread().setContextClassLoader( classLoader );
+ if ( classLoader != null )
+ {
+ Thread.currentThread().setContextClassLoader( classLoader );
+ }
try
{
if ( report instanceof MavenMultiPageReport )
@@ -170,7 +213,7 @@ public class ReportDocumentRenderer
// extended multi-page API
( (MavenMultiPageReport) report ).generate( sink, sf, locale );
}
- else
+ else // TODO: insert Maven 2 reflection-based MavenMultiPageReport detection
{
// old single-page-only API
report.generate( sink, locale );
@@ -187,7 +230,10 @@ public class ReportDocumentRenderer
}
finally
{
- Thread.currentThread().setContextClassLoader( originalClassLoader );
+ if ( classLoader != null )
+ {
+ Thread.currentThread().setContextClassLoader( originalClassLoader );
+ }
sink.close();
}
Modified: maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/reporting/exec/MavenReportExecution.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/reporting/exec/MavenReportExecution.java?rev=1076063&r1=1076062&r2=1076063&view=diff
==============================================================================
--- maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/reporting/exec/MavenReportExecution.java (original)
+++ maven/plugins/branches/MSITE-560/src/main/java/org/apache/maven/reporting/exec/MavenReportExecution.java Wed Mar 2 00:18:39 2011
@@ -58,6 +58,11 @@ public class MavenReportExecution
this.classLoader = classLoader;
}
+ public MavenReportExecution( MavenReport mavenReport )
+ {
+ this( null, mavenReport, null );
+ }
+
public MavenReport getMavenReport()
{
return mavenReport;