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() )
         {


Reply via email to