Commit in servicemix/base/src on MAIN
main/java/org/servicemix/components/rss/FeedWriter.java+11-41.3 -> 1.4
test/resources/org/servicemix/components/rss/example.xml+4-51.2 -> 1.3
test/java/org/servicemix/components/rss/FeedWriterTest.java+1-11.1 -> 1.2
+16-10
3 modified files
add new items to the start of the feed so it works as you'd expect when browsing the feed in your news reader

servicemix/base/src/main/java/org/servicemix/components/rss
FeedWriter.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- FeedWriter.java	23 Sep 2005 16:35:41 -0000	1.3
+++ FeedWriter.java	23 Sep 2005 18:01:32 -0000	1.4
@@ -45,6 +45,7 @@
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.Writer;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -62,7 +63,7 @@
     private _expression_ entryTitle;
     private _expression_ entryValue;
     private String feedDescription = "This feed is auto-generated by ServiceMix";
-    private int maximumEntryCount = 20;
+    private int maximumEntryCount = 200;
     private File feedFile;
     private String contentType = "text/plain";
     private SourceTransformer sourceTransformer = new SourceTransformer();
@@ -209,7 +210,14 @@
         SyndEntry entry = createEntry(exchange, message);
         SyndContent description = createEntryContent(exchange, message);
         entry.setDescription(description);
-        entries.add(entry);
+        
+        // TODO this line really should work but for some reason it doesn't
+        // entries.add(0, entry);
+        
+        List temp = new ArrayList();
+        temp.add(entry);
+        temp.addAll(entries);
+        feed.setEntries(temp);
     }
 
     protected SyndEntry createEntry(MessageExchange exchange, NormalizedMessage message) throws MessagingException {
@@ -226,7 +234,6 @@
         description.setType(contentType);
         Source content = message.getContent();
 
-        // TODO use an _expression_ for the value?
         String value = ExpressionHelper.asString(getEntryValue(), exchange, message, null);
         if (value == null && content != null) {
             value = getSourceTransformer().toString(content);
@@ -263,7 +270,7 @@
             List entries = feed.getEntries();
             int size = entries.size();
             if (size > maximumEntryCount) {
-                entries.subList(0, size - maximumEntryCount).clear();
+                entries.subList(maximumEntryCount, size).clear();
             }
         }
     }

servicemix/base/src/test/resources/org/servicemix/components/rss
example.xml 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- example.xml	23 Sep 2005 16:35:41 -0000	1.2
+++ example.xml	23 Sep 2005 18:01:32 -0000	1.3
@@ -7,12 +7,15 @@
 
       <component id="feedWriter" service="foo:feedWriter"
         class="org.servicemix.components.rss.FeedWriter">
+
         <property name="feedFile" value="target/serviceMixFeed.xml" />
+
+        <!--  define expressions for the entry title and value -->
         <property name="entryTitle">
           <bean
             class="org.servicemix._expression_.JaxenStringXPathExpression">
             <constructor-arg
-              value="concat('Message ', /sample/@id)" />
+              value="concat('Message ', /sample/@id, ' - ', /sample/@sent)" />
           </bean>
         </property>
         <property name="entryValue">
@@ -22,10 +25,6 @@
               value="concat('This is an entry with ID ', /sample/@id, ' sent: ', /sample/@sent, '. There is not much else in the message to tell :)')" />
           </bean>
         </property>
-
-
-        <!--  TODO temporarily disable loading due to bug when running the test case for the 2nd time -->
-        <property name="loadOnStartup" value="false" />
       </component>
 
       <component id="receiver" service="foo:receiver"

servicemix/base/src/test/java/org/servicemix/components/rss
FeedWriterTest.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- FeedWriterTest.java	23 Sep 2005 02:40:42 -0000	1.1
+++ FeedWriterTest.java	23 Sep 2005 18:01:32 -0000	1.2
@@ -31,7 +31,7 @@
     public void testSendMessagesToJmsThenOutofJmsToReceiver() throws Exception {
         QName service = new QName("http://servicemix.org/cheese/", "feedWriter");
 
-        sendMessages(service, 20);
+        sendMessages(service, 5);
         
         // now lets assert that the RSS feed has data in it.
         
CVSspam 0.2.8



Reply via email to