You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by he...@apache.org on 2007/01/01 22:35:31 UTC
svn commit: r491636 -
/velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java
Author: henning
Date: Mon Jan 1 13:35:30 2007
New Revision: 491636
URL: http://svn.apache.org/viewvc?view=rev&rev=491636
Log:
Forgot to add the NewsReport base class.
Added:
velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java (with props)
Added: velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java
URL: http://svn.apache.org/viewvc/velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java?view=auto&rev=491636
==============================================================================
--- velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java (added)
+++ velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java Mon Jan 1 13:35:30 2007
@@ -0,0 +1,142 @@
+package org.apache.velocity.maven.plugin.news;
+
+import java.io.File;
+import java.util.Locale;
+
+import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.siterenderer.Renderer;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.reporting.MavenReport;
+import org.apache.maven.reporting.MavenReportException;
+
+/**
+ * Base class for news items report for the site.
+ *
+ * @author <a href="mailto:henning@apache.org">Henning P. Schmiedehausen</a>
+ * @version $Revision$
+ */
+public abstract class AbstractVelocityNewsReport extends AbstractVelocityNewsPlugin implements MavenReport {
+
+ private Sink sink;
+
+ private File reportOutputDirectory;
+
+ /**
+ * @component
+ * @required
+ * @readonly
+ */
+ protected Renderer siteRenderer;
+
+ /**
+ * The Maven Project Object
+ *
+ * @parameter default-value="${project}"
+ * @required
+ * @readonly
+ */
+ private MavenProject project;
+
+ /**
+ * Specifies the directory where the report will be generated
+ *
+ * @parameter default-value="${project.reporting.outputDirectory}"
+ * @required
+ */
+ protected File outputDirectory;
+
+ /**
+ * Shortcut Mojo Execution. This is not a real plugin.
+ *
+ * @see org.apache.maven.plugin.Mojo#execute()
+ */
+ public void execute()
+ throws MojoExecutionException
+ {
+ throw new MojoExecutionException( "Reporting mojo's can only be called from ReportDocumentRender");
+ }
+
+ public void generate(final org.codehaus.doxia.sink.Sink sink, final Locale locale)
+ throws MavenReportException
+ {
+ if (sink == null)
+ {
+ throw new MavenReportException("You must specify a sink.");
+ }
+
+ this.sink = sink;
+
+ executeReport(locale);
+ }
+
+ protected abstract void executeReport(final Locale locale) throws MavenReportException ;
+
+ public String getCategoryName()
+ {
+ return CATEGORY_PROJECT_REPORTS;
+ }
+
+ public File getReportOutputDirectory()
+ {
+ if (reportOutputDirectory == null)
+ {
+ reportOutputDirectory = new File(getOutputDirectory());
+ }
+ return reportOutputDirectory;
+ }
+
+ public void setReportOutputDirectory(final File reportOutputDirectory)
+ {
+ this.reportOutputDirectory = reportOutputDirectory;
+ }
+
+ public Sink getSink()
+ {
+ return sink;
+ }
+
+ public boolean isExternalReport()
+ {
+ return false;
+ }
+
+ /**
+ * @see org.apache.maven.reporting.AbstractMavenReport#getOutputDirectory()
+ */
+ protected String getOutputDirectory()
+ {
+ return outputDirectory.getAbsolutePath();
+ }
+
+ /**
+ * @see org.apache.maven.reporting.AbstractMavenReport#getProject()
+ */
+ protected MavenProject getProject()
+ {
+ return project;
+ }
+
+ /**
+ * @see org.apache.maven.reporting.AbstractMavenReport#getSiteRenderer()
+ */
+ protected Renderer getSiteRenderer()
+ {
+ return siteRenderer;
+ }
+
+ /**
+ * @see org.apache.maven.reporting.MavenReport#getOutputName()
+ */
+ public String getOutputName() {
+ return getNewsContainer().getNewsPageName();
+ }
+
+ /**
+ * @see org.apache.maven.reporting.AbstractMavenReport#canGenerateReport()
+ */
+ public boolean canGenerateReport()
+ {
+ return true; // For now.
+ }
+}
Propchange: velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java
------------------------------------------------------------------------------
svn:keywords = Id Author Date Revision