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 2010/11/01 22:50:21 UTC

svn commit: r1029858 - in /velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site: news/ news/macro/ news/model/ news/plugin/ plexus/

Author: henning
Date: Mon Nov  1 21:50:20 2010
New Revision: 1029858

URL: http://svn.apache.org/viewvc?rev=1029858&view=rev
Log:
Remove the old plugin code, make the report work without running the plugin first. Simplify the macro and remove
all the kludges.


Removed:
    velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/NewsManagerUtils.java
    velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/plugin/VelocityNewsPlugin.java
    velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/plexus/
Modified:
    velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/macro/VelocityNewsMacro.java
    velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/model/NewsManager.java
    velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/plugin/VelocityNewsReport.java

Modified: velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/macro/VelocityNewsMacro.java
URL: http://svn.apache.org/viewvc/velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/macro/VelocityNewsMacro.java?rev=1029858&r1=1029857&r2=1029858&view=diff
==============================================================================
--- velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/macro/VelocityNewsMacro.java (original)
+++ velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/macro/VelocityNewsMacro.java Mon Nov  1 21:50:20 2010
@@ -88,11 +88,12 @@ public class VelocityNewsMacro extends A
         try
         {
 
-            String newsFileName = (String) request.getParameter("fileName");
-            if (newsFileName == null)
+            String name1 = (String) request.getParameter("fileName");
+            if (name1 == null)
             {
-                newsFileName = DEFAULT_NEWS_FILENAME;
+                name1 = DEFAULT_NEWS_FILENAME;
             }
+            final String newsFileName = name1;
 
             String siteDirectoryString = (String) request.getParameter("siteDirectory");
             if (siteDirectoryString == null)
@@ -101,8 +102,7 @@ public class VelocityNewsMacro extends A
             }
             File siteDirectory = new File(request.getBasedir(), siteDirectoryString);
 
-            final NewsManager newsManager = new NewsManager();
-            newsManager.load(siteDirectory, newsFileName);
+            final NewsModel newsModel = NewsManager.load(siteDirectory, newsFileName);
 
             NewsBlockGenerator newsBlockGenerator = new NewsBlockGenerator(new NewsReport()
             {
@@ -137,23 +137,11 @@ public class VelocityNewsMacro extends A
 
                 public String getOutputName()
                 {
-                    try
-                    {
-                        return (String) newsManager.getNewsFileName();
-                    }
-                    catch (RuntimeException re)
-                    {
-                        throw re;
-                    }
-                    catch (Exception e)
-                    {
-                        throw new IllegalStateException("Could not retrieve page name from model!");
-                    }
+                    return newsFileName;
                 }
 
             }, Locale.ENGLISH);
 
-            NewsModel newsModel = newsManager.getNewsModel();
 
             for (ListIterator it = VelocityNewsUtils.sortItemsByReverseDate(newsModel.getItems()).listIterator(); it.hasNext()
                     && it.nextIndex() < maxCount;)

Modified: velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/model/NewsManager.java
URL: http://svn.apache.org/viewvc/velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/model/NewsManager.java?rev=1029858&r1=1029857&r2=1029858&view=diff
==============================================================================
--- velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/model/NewsManager.java (original)
+++ velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/model/NewsManager.java Mon Nov  1 21:50:20 2010
@@ -24,61 +24,24 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.velocity.site.news.VelocityNewsException;
 import org.apache.velocity.site.news.model.io.xpp3.NewsXpp3Reader;
-import org.codehaus.plexus.logging.LogEnabled;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
-/**
- * This is the container that keeps the news model for us.
- *
- * @plexus.component role="org.apache.velocity.site.news.model.NewsManager"
- */
-public class NewsManager implements LogEnabled
+public abstract class NewsManager
 {
-
-    public static final String ROLE = NewsManager.class.getName();
-
-    public static final String NEWS_FILE_NAME_METHOD = "getNewsFileName";
-
-    public static final String NEWS_SITE_DIRECTORY_METHOD = "getSiteDirectory";
-
-    public static final String NEWS_MODEL_METHOD = "getNewsModel";
-
-    private NewsModel newsModel = null;
-
-    private Logger logger = null;
-
-    private String newsFileName = null;
-
-    private File siteDirectory = null;
-
-    /**
-     * Plexus lifecycle.
-     */
-    public void enableLogging(final Logger logger)
+    public static NewsModel load(final File siteDirectory, final String newsFileName) throws VelocityNewsException
     {
-        this.logger = logger;
-    }
-
-    public void load(final File siteDirectory, final String newsFileName) throws VelocityNewsException
-    {
-
-        if (StringUtils.isEmpty(newsFileName))
-        {
+        if (StringUtils.isEmpty(newsFileName)) {
             throw new IllegalArgumentException("Filename can not be empty!");
         }
 
-        setNewsFileName(newsFileName);
-        setSiteDirectory(siteDirectory);
-
-        File newsFile = new File(siteDirectory, newsFileName + ".xml");
+        final File newsFile = new File(siteDirectory, newsFileName + ".xml");
 
         if (newsFile.exists() && newsFile.canRead())
         {
-
             FileInputStream fis = null;
             InputStreamReader isr = null;
 
@@ -87,7 +50,7 @@ public class NewsManager implements LogE
                 fis = new FileInputStream(newsFile);
                 isr = new InputStreamReader(fis);
 
-                newsModel = new NewsXpp3Reader().read(isr);
+                return new NewsXpp3Reader().read(isr);
             }
             catch (XmlPullParserException xppe)
             {
@@ -99,61 +62,11 @@ public class NewsManager implements LogE
             }
             finally
             {
-                if (fis != null)
-                {
-                    try
-                    {
-                        fis.close();
-                    }
-                    catch (IOException ioe)
-                    {
-                        logger.error("While closing news stream: ", ioe);
-                    }
-                }
-                if (isr != null)
-                {
-                    try
-                    {
-                        isr.close();
-                    }
-                    catch (IOException ioe)
-                    {
-                        logger.error("While closing news reader: ", ioe);
-                    }
-                }
+                IOUtils.closeQuietly(fis);
+                IOUtils.closeQuietly(isr);
             }
         }
 
-        setNewsModel(newsModel);
-    }
-
-    protected void setNewsFileName(final String newsFileName)
-    {
-        this.newsFileName = newsFileName;
-    }
-
-    public String getNewsFileName()
-    {
-        return newsFileName;
-    }
-
-    public File getSiteDirectory()
-    {
-        return this.siteDirectory;
-    }
-
-    public void setSiteDirectory(final File siteDirectory)
-    {
-        this.siteDirectory = siteDirectory;
-    }
-
-    public NewsModel getNewsModel()
-    {
-        return this.newsModel;
-    }
-
-    protected void setNewsModel(final NewsModel newsModel)
-    {
-        this.newsModel = newsModel;
+        return null;
     }
 }

Modified: velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/plugin/VelocityNewsReport.java
URL: http://svn.apache.org/viewvc/velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/plugin/VelocityNewsReport.java?rev=1029858&r1=1029857&r2=1029858&view=diff
==============================================================================
--- velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/plugin/VelocityNewsReport.java (original)
+++ velocity/site/tools/velocity-site-news-plugin/src/main/java/org/apache/velocity/site/news/plugin/VelocityNewsReport.java Mon Nov  1 21:50:20 2010
@@ -53,7 +53,6 @@ import org.codehaus.plexus.personality.p
  */
 public class VelocityNewsReport extends AbstractMavenReport implements NewsReport, NewsFeed, Contextualizable
 {
-
     /**
      * @component
      * @required
@@ -69,7 +68,7 @@ public class VelocityNewsReport extends 
     private Parser aptParser;
 
     /**
-     * Specifies the directory where the report will be generated
+     * Specifies the directory where the report will be generated.
      *
      * @parameter default-value="${project.reporting.outputDirectory}"
      * @required
@@ -77,7 +76,7 @@ public class VelocityNewsReport extends 
     private File outputDirectory;
 
     /**
-     * The Maven Project Object
+     * The Maven Project Object.
      *
      * @parameter default-value="${project}"
      * @required
@@ -86,11 +85,19 @@ public class VelocityNewsReport extends 
     private MavenProject project;
 
     /**
-     * The component which keeps all the news information for us.
+     * Directory containing the site files.
+     *
+     * @parameter expression="${basedir}/src/site"
+     * @required
+     */
+    private File siteDirectory;
+
+    /**
+     * Configuration of the name of the news file to read.
      *
-     * @component role="org.apache.velocity.site.news.model.NewsManager"
+     * @parameter expression="${newsfile}" default-value="news"
      */
-    private NewsManager newsManager;
+    private String newsFileName;
 
     /**
      * Configuration of the base URL of the feed
@@ -136,7 +143,7 @@ public class VelocityNewsReport extends 
      */
     public String getOutputName()
     {
-        return newsManager.getNewsFileName();
+        return newsFileName;
     }
 
     public ResourceBundle getBundle(final Locale locale)
@@ -175,7 +182,7 @@ public class VelocityNewsReport extends 
 
         try
         {
-            NewsModel newsModel = newsManager.getNewsModel();
+            final NewsModel newsModel = NewsManager.load(siteDirectory, newsFileName);
 
             if (newsModel != null)
             {
@@ -184,6 +191,10 @@ public class VelocityNewsReport extends 
             }
 
         }
+        catch (VelocityNewsException vne)
+        {
+            throw new MavenReportException("While loading news information: ", vne);
+        }
         catch (RuntimeException re)
         {
             throw re;
@@ -196,8 +207,7 @@ public class VelocityNewsReport extends 
 
     private void generateNewsPage(final NewsModel newsModel, final Locale locale) throws VelocityNewsException
     {
-
-        NewsPageGenerator newsPageGenerator = new NewsPageGenerator(this, locale);
+        final NewsPageGenerator newsPageGenerator = new NewsPageGenerator(this, locale);
 
         newsPageGenerator.openPage();
         newsPageGenerator.displayHeader();
@@ -206,7 +216,7 @@ public class VelocityNewsReport extends 
 
         for (Iterator it = items.iterator(); it.hasNext();)
         {
-            Item newsItem = (Item) it.next();
+            final Item newsItem = (Item) it.next();
             newsPageGenerator.displayItem(newsItem);
         }
 
@@ -215,26 +225,25 @@ public class VelocityNewsReport extends 
 
     private void generateNewsRssFeed(final NewsModel newsModel) throws VelocityNewsException
     {
-        String outputDirectory = getOutputDirectory();
+        final String outputDirectory = getOutputDirectory();
 
         if (outputDirectory == null)
         {
             throw new VelocityNewsException("No output directory specified!");
         }
 
-        NewsFeedGenerator newsFeedGenerator = new NewsFeedGenerator(this);
+        final NewsFeedGenerator newsFeedGenerator = new NewsFeedGenerator(this);
 
         newsFeedGenerator.openFeed();
 
-        List items = VelocityNewsUtils.sortItemsByReverseDate(newsModel.getItems());
+        final List items = VelocityNewsUtils.sortItemsByReverseDate(newsModel.getItems());
 
         for (Iterator it = items.iterator(); it.hasNext();)
         {
-            Item newsItem = (Item) it.next();
+            final Item newsItem = (Item) it.next();
             newsFeedGenerator.publishItem(newsItem);
         }
 
         newsFeedGenerator.publishFeed();
     }
-
 }