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]