You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2008/07/25 12:47:54 UTC

svn commit: r679754 - in /archiva/trunk/archiva-modules/archiva-web: archiva-rss/src/main/java/org/apache/archiva/rss/ archiva-rss/src/test/java/org/apache/archiva/rss/ archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/

Author: oching
Date: Fri Jul 25 03:47:53 2008
New Revision: 679754

URL: http://svn.apache.org/viewvc?rev=679754&view=rev
Log:
[MRM-883]
-do not generate feed if there are no information available
-return 204 if no information/update available

Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedGenerator.java
    archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/RssFeedGeneratorTest.java
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedGenerator.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedGenerator.java?rev=679754&r1=679753&r2=679754&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedGenerator.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedGenerator.java Fri Jul 25 03:47:53 2008
@@ -50,14 +50,16 @@
 
     public static String DEFAULT_LANGUAGE = "en-us";
 
-    //private String DEFAULT_LINK = "http://localhost:8080/archiva/rss/";
-
     public SyndFeed generateFeed( String title, String description, List<RssFeedEntry> dataEntries )
     {
+        if( dataEntries.size() ==  0 )
+        {
+            log.debug( "No updates found, feed not generated." );
+            return null;
+        }
+        
         SyndFeed feed = new SyndFeedImpl();
-
-        feed.setTitle( title );
-        //feed.setLink( DEFAULT_LINK + queryString );
+        feed.setTitle( title );        
         feed.setDescription( description );
         feed.setLanguage( DEFAULT_LANGUAGE );
         feed.setPublishedDate( dataEntries.get( dataEntries.size() - 1 ).getPublishedDate() );

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/RssFeedGeneratorTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/RssFeedGeneratorTest.java?rev=679754&r1=679753&r2=679754&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/RssFeedGeneratorTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/RssFeedGeneratorTest.java Fri Jul 25 03:47:53 2008
@@ -81,6 +81,16 @@
         assertEquals( "Item 2", syndEntries.get( 1 ).getTitle() );
         assertEquals( "Item 3", syndEntries.get( 2 ).getTitle() );
     }
+    
+    public void testNoDataEntries()
+        throws Exception
+    {
+        List<RssFeedEntry> entries = new ArrayList<RssFeedEntry>();
+        SyndFeed feed =
+            generator.generateFeed( "Test Feed", "The test feed from Archiva.", entries );
+
+        assertNull( feed );
+    }
 
     /*
      * this test might need to be removed since

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java?rev=679754&r1=679753&r2=679754&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java Fri Jul 25 03:47:53 2008
@@ -149,9 +149,15 @@
                 return;
             }
 
-            feed = processor.process( map );
+            feed = processor.process( map );            
+            if( feed == null )
+            {
+                res.sendError( HttpServletResponse.SC_NO_CONTENT, "No information available." );
+                return;
+            }
+            
             res.setContentType( MIME_TYPE );
-
+            
             if ( repoId != null )
             {
                 feed.setLink( req.getRequestURL() + "?repoId=" + repoId );