| Commit in servicemix/base/src on MAIN | |||
| main/java/org/servicemix/components/rss/FeedWriter.java | +11 | -4 | 1.3 -> 1.4 |
| test/resources/org/servicemix/components/rss/example.xml | +4 | -5 | 1.2 -> 1.3 |
| test/java/org/servicemix/components/rss/FeedWriterTest.java | +1 | -1 | 1.1 -> 1.2 |
| +16 | -10 | ||
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
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
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
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.
