Author: evenisse
Date: Thu Apr 28 16:43:33 2005
New Revision: 165232

URL: http://svn.apache.org/viewcvs?rev=165232&view=rev
Log:
o check if plugin version is defined
o refactor the report execution, it use only the MavenReportConfiguration
o obtain reports list via reportManager.getReports

Added:
    
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReportRenderer.java
Modified:
    
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
    
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java
    
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReportRenderer.java
    
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReport.java
    
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReportConfiguration.java
    
maven/components/trunk/maven-reporting/maven-reporting-manager/src/main/java/org/apache/maven/reporting/manager/DefaultMavenReportManager.java
    
maven/components/trunk/maven-reporting/maven-reporting-manager/src/main/java/org/apache/maven/reporting/manager/MavenReportManager.java

Modified: 
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java?rev=165232&r1=165231&r2=165232&view=diff
==============================================================================
--- 
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
 (original)
+++ 
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
 Thu Apr 28 16:43:33 2005
@@ -85,15 +85,17 @@
 
             config.setModel( project.getModel() );
 
+            config.setOutputDirectory( new File( generatedSiteDirectory ) );
+
             if ( project.getReports() != null )
             {
                 reportManager.addReports( project.getReports(), 
localRepository, remoteRepositories );
 
-                for ( Iterator i = 
project.getReports().getPlugins().iterator(); i.hasNext(); )
+                for ( Iterator i = 
reportManager.getReports().keySet().iterator(); i.hasNext(); )
                 {
-                    org.apache.maven.model.Plugin plugin = 
(org.apache.maven.model.Plugin) i.next();
+                    String reportName = (String) i.next();
 
-                    reportManager.executeReport( plugin.getArtifactId(), 
config, outputDirectory );
+                    reportManager.executeReport( reportName, config );
                 }
             }
 

Modified: 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java?rev=165232&r1=165231&r2=165232&view=diff
==============================================================================
--- 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java
 (original)
+++ 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java
 Thu Apr 28 16:43:33 2005
@@ -26,16 +26,42 @@
 public abstract class AbstractMavenReport
     implements MavenReport
 {
-    public Sink getSink( File outputDirectory )
+    private MavenReportConfiguration config;
+
+    public MavenReportConfiguration getConfiguration()
+    {
+        return config;
+    }
+
+    public void setConfiguration( MavenReportConfiguration config )
+    {
+        this.config = config;
+    }
+
+    public void generate()
+        throws MavenReportException
+    {
+        if ( config == null )
+        {
+            throw new MavenReportException( "You must specify a report 
configuration." );
+        }
+
+        execute();
+    }
+
+    protected abstract void execute()
+        throws MavenReportException;
+
+    public Sink getSink()
         throws IOException
     {
-        return getSink( outputDirectory, getOutputName() );
+        return getSink( getOutputName() );
     }
 
-    public Sink getSink( File outputDirectory, String outputName )
+    public Sink getSink( String outputName )
         throws IOException
     {
-        FileWriter writer = new FileWriter( new File( outputDirectory, "xdoc/" 
+ outputName + ".xml" ) );
+        FileWriter writer = new FileWriter( new File( 
config.getOutputDirectory(), "xdoc/" + outputName + ".xml" ) );
 
         return new XdocSink( writer );
     }

Modified: 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReportRenderer.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReportRenderer.java?rev=165232&r1=165231&r2=165232&view=diff
==============================================================================
--- 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReportRenderer.java
 (original)
+++ 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReportRenderer.java
 Thu Apr 28 16:43:33 2005
@@ -25,6 +25,7 @@
  * @todo Later it may be appropriate to create something like a 
VelocityMavenReportRenderer that could take a velocity template and pipe that 
through Doxia rather than coding them up like this.
  */
 public abstract class AbstractMavenReportRenderer
+    implements MavenReportRenderer
 {
     protected Sink sink;
 
@@ -180,7 +181,7 @@
         sink.tableRow_();
     }
 
-    protected abstract String getTitle();
+    public abstract String getTitle();
 
     protected abstract void renderBody();
 

Modified: 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReport.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReport.java?rev=165232&r1=165231&r2=165232&view=diff
==============================================================================
--- 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReport.java
 (original)
+++ 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReport.java
 Thu Apr 28 16:43:33 2005
@@ -32,14 +32,18 @@
 {
     String ROLE = MavenReport.class.getName();
 
-    void execute( MavenReportConfiguration config )
+    MavenReportConfiguration getConfiguration();
+
+    void setConfiguration( MavenReportConfiguration config );
+
+    void generate()
         throws MavenReportException;
 
     String getOutputName();
 
-    Sink getSink( File outputDirectory )
+    Sink getSink()
         throws IOException;
 
-    Sink getSink( File outputDirectory, String outputName )
+    Sink getSink( String outputName )
         throws IOException;
 }

Modified: 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReportConfiguration.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReportConfiguration.java?rev=165232&r1=165231&r2=165232&view=diff
==============================================================================
--- 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReportConfiguration.java
 (original)
+++ 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReportConfiguration.java
 Thu Apr 28 16:43:33 2005
@@ -19,6 +19,7 @@
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Scm;
 
+import java.io.File;
 import java.util.List;
 
 /**
@@ -28,6 +29,18 @@
 public class MavenReportConfiguration
 {
     private Model model;
+
+    private File outputDirectory;
+
+    public File getOutputDirectory()
+    {
+        return outputDirectory;
+    }
+
+    public void setOutputDirectory( File outputDirectory )
+    {
+        this.outputDirectory = outputDirectory;
+    }
 
     public Model getModel()
     {

Added: 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReportRenderer.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReportRenderer.java?rev=165232&view=auto
==============================================================================
--- 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReportRenderer.java
 (added)
+++ 
maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/MavenReportRenderer.java
 Thu Apr 28 16:43:33 2005
@@ -0,0 +1,32 @@
+package org.apache.maven.reporting;
+
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.codehaus.doxia.sink.Sink;
+
+/**
+ * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
+ * @author <a href="[EMAIL PROTECTED]">Emmanuel Venisse</a>
+ * @version $Id: AbstractMavenReportRenderer.java 163373 2005-02-22 03:37:00Z 
brett $
+ * @todo Later it may be appropriate to create something like a 
VelocityMavenReportRenderer that could take a velocity template and pipe that 
through Doxia rather than coding them up like this.
+ */
+public interface MavenReportRenderer
+{
+    String getTitle();
+
+    void render();
+}
\ No newline at end of file

Modified: 
maven/components/trunk/maven-reporting/maven-reporting-manager/src/main/java/org/apache/maven/reporting/manager/DefaultMavenReportManager.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-reporting/maven-reporting-manager/src/main/java/org/apache/maven/reporting/manager/DefaultMavenReportManager.java?rev=165232&r1=165231&r2=165232&view=diff
==============================================================================
--- 
maven/components/trunk/maven-reporting/maven-reporting-manager/src/main/java/org/apache/maven/reporting/manager/DefaultMavenReportManager.java
 (original)
+++ 
maven/components/trunk/maven-reporting/maven-reporting-manager/src/main/java/org/apache/maven/reporting/manager/DefaultMavenReportManager.java
 Thu Apr 28 16:43:33 2005
@@ -39,6 +39,7 @@
 import org.codehaus.plexus.context.ContextException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.codehaus.plexus.util.StringUtils;
 
 import java.util.Iterator;
 import java.util.List;
@@ -74,16 +75,19 @@
 
             String version = pluginReport.getVersion();
 
-            if ( version == null )
-            {
-                throw new ReportManagerException( "The version of " + groupId 
+ ":" + artifactId + " can not be empty" );
+            if ( pluginReport != null && StringUtils.isEmpty( version ) )
+                {
+                    // The model/project builder should have validated this 
already
+                    String message = "The maven plugin with groupId: '" + 
groupId + "' and artifactId: '" + artifactId +
+                        "' which was configured for use in this project does 
not have a version associated with it.";
+                    throw new IllegalStateException( message );
             }
 
             try
             {
                 Artifact pluginArtifact = artifactFactory.createArtifact( 
pluginReport.getGroupId(),
                                                                           
pluginReport.getArtifactId(),
-                                                                          
pluginReport.getVersion(),
+                                                                          
version,
                                                                           
null, "maven-plugin", null );
 
                 addPlugin( pluginArtifact, localRepository, remoteRepositories 
);
@@ -159,17 +163,33 @@
         }
     }
 
+    public Map getReports()
+    {
+        try
+        {
+            mavenReports = container.lookupMap( MavenReport.ROLE );
+        }
+        catch(ComponentLookupException e)
+        {
+            e.printStackTrace();
+        }
+System.out.println("nb reports=" + mavenReports.keySet().size() );
+        return mavenReports;
+    }
+
     /**
      * @todo we need some type of response
      */
-    public void executeReport( String name, MavenReportConfiguration config, 
String outputDirectory )
+    public void executeReport( String name, MavenReportConfiguration config )
         throws MavenReportException
     {
         MavenReport report = (MavenReport) mavenReports.get( name );
 
         if ( report != null )
         {
-            report.execute( config );
+            report.setConfiguration( config );
+
+            report.generate();
         }
         else
         {

Modified: 
maven/components/trunk/maven-reporting/maven-reporting-manager/src/main/java/org/apache/maven/reporting/manager/MavenReportManager.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-reporting/maven-reporting-manager/src/main/java/org/apache/maven/reporting/manager/MavenReportManager.java?rev=165232&r1=165231&r2=165232&view=diff
==============================================================================
--- 
maven/components/trunk/maven-reporting/maven-reporting-manager/src/main/java/org/apache/maven/reporting/manager/MavenReportManager.java
 (original)
+++ 
maven/components/trunk/maven-reporting/maven-reporting-manager/src/main/java/org/apache/maven/reporting/manager/MavenReportManager.java
 Thu Apr 28 16:43:33 2005
@@ -22,6 +22,7 @@
 import org.apache.maven.reporting.MavenReportException;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * Manage the set of available reports.
@@ -34,9 +35,11 @@
 {
     String ROLE = MavenReportManager.class.getName();
 
+    Map getReports();
+
     void addReports( Reports reports, ArtifactRepository localRepository, List 
remoteRepositories )
         throws ReportManagerException, ReportNotFoundException;
 
-    void executeReport( String name, MavenReportConfiguration config, String 
outputDirectory )
+    void executeReport( String name, MavenReportConfiguration config )
         throws MavenReportException;
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to