Author: olamy
Date: Mon Aug 3 20:57:18 2009
New Revision: 800559
URL: http://svn.apache.org/viewvc?rev=800559&view=rev
Log:
really use plugin ClassRealm when render the report.
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
maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/ReportDocumentRenderer.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=800559&r1=800558&r2=800559&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/pom.xml (original)
+++ maven/plugins/branches/maven-site-plugin-3.x/pom.xml Mon Aug 3 20:57:18
2009
@@ -411,6 +411,11 @@
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.2-SNAPSHOT</version>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.6.1-SNAPSHOT</version>
+ </plugin>
</plugins>
</reporting>
</profile>
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=800559&r1=800558&r2=800559&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
Mon Aug 3 20:57:18 2009
@@ -358,13 +358,13 @@
throws PluginManagerException
{
ClassRealm sitePluginRealm = (ClassRealm)
Thread.currentThread().getContextClassLoader();
- List<String> excluded = new ArrayList<String>();
+ List<String> imported = new ArrayList<String>();
// exclude minimum !
- excluded.add( "org.apache.maven.reporting.MavenReport" );
- excluded.add( "org.codehaus.doxia.sink.Sink" );
- excluded.add( "org.apache.maven.doxia.sink.Sink" );
- excluded.add( "org.apache.maven.doxia.sink.SinkEventAttributes" );
- return pluginManager.getPluginRealm( mavenSession, pluginDescriptor,
sitePluginRealm, excluded );
+ imported.add( "org.apache.maven.reporting.MavenReport" );
+ imported.add( "org.codehaus.doxia.sink.Sink" );
+ imported.add( "org.apache.maven.doxia.sink.Sink" );
+ imported.add( "org.apache.maven.doxia.sink.SinkEventAttributes" );
+ return pluginManager.getPluginRealm( mavenSession, pluginDescriptor,
sitePluginRealm, imported );
}
protected Map<MavenReport, ClassRealm> filterReports( Map<MavenReport,
ClassRealm> reports )
@@ -528,7 +528,7 @@
else
{
RenderingContext renderingContext = new RenderingContext(
siteDirectory, outputName );
- ReportDocumentRenderer renderer = new ReportDocumentRenderer(
report, renderingContext, getLog() );
+ ReportDocumentRenderer renderer = new ReportDocumentRenderer(
report, renderingContext, getLog(), reports.get( report ) );
documents.put( outputName, renderer );
}
}
Modified:
maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/ReportDocumentRenderer.java
URL:
http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/ReportDocumentRenderer.java?rev=800559&r1=800558&r2=800559&view=diff
==============================================================================
---
maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/ReportDocumentRenderer.java
(original)
+++
maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/ReportDocumentRenderer.java
Mon Aug 3 20:57:18 2009
@@ -31,6 +31,7 @@
import org.apache.maven.reporting.MavenReport;
import org.apache.maven.reporting.MavenMultiPageReport;
import org.apache.maven.reporting.MavenReportException;
+import org.codehaus.plexus.classworlds.realm.ClassRealm;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -55,14 +56,18 @@
private RenderingContext renderingContext;
private Log log;
+
+ private ClassRealm classRealm;
- public ReportDocumentRenderer( MavenReport report, RenderingContext
renderingContext, Log log )
+ public ReportDocumentRenderer( MavenReport report, RenderingContext
renderingContext, Log log, ClassRealm classRealm )
{
this.report = report;
this.renderingContext = renderingContext;
this.log = log;
+
+ this.classRealm = classRealm;
}
private static class MySink extends SiteRendererSink
@@ -125,7 +130,8 @@
MySinkFactory sf = new MySinkFactory( renderingContext );
SiteRendererSink sink = new SiteRendererSink( renderingContext );
-
+ ClassLoader originalClassLoader =
Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader( this.classRealm );
try
{
if ( report instanceof MavenMultiPageReport )
@@ -148,6 +154,10 @@
{
throw new RendererException( "Error rendering Maven report: " +
e.getMessage(), e );
}
+ finally
+ {
+ Thread.currentThread().setContextClassLoader( originalClassLoader
);
+ }
if ( !report.isExternalReport() )
{