From f762b160efd5cafd919a6fd7f9587f578eceb454 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Sun, 02 Oct 2011 16:59:44 -0400
Subject: [PATCH] Merge branch 'master' into rpc

---
 src/com/gitblit/utils/SyndicationUtils.java |   37 ++++++++++++++++++++++++++++++++-----
 1 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/src/com/gitblit/utils/SyndicationUtils.java b/src/com/gitblit/utils/SyndicationUtils.java
index da937f9..fb40dd5 100644
--- a/src/com/gitblit/utils/SyndicationUtils.java
+++ b/src/com/gitblit/utils/SyndicationUtils.java
@@ -24,32 +24,59 @@
 
 import org.eclipse.jgit.revwalk.RevCommit;
 
+import com.gitblit.Constants;
 import com.sun.syndication.feed.synd.SyndContent;
 import com.sun.syndication.feed.synd.SyndContentImpl;
 import com.sun.syndication.feed.synd.SyndEntry;
 import com.sun.syndication.feed.synd.SyndEntryImpl;
 import com.sun.syndication.feed.synd.SyndFeed;
 import com.sun.syndication.feed.synd.SyndFeedImpl;
+import com.sun.syndication.feed.synd.SyndImageImpl;
 import com.sun.syndication.io.FeedException;
 import com.sun.syndication.io.SyndFeedOutput;
 
+/**
+ * Utility class for RSS feeds.
+ * 
+ * @author James Moger
+ * 
+ */
 public class SyndicationUtils {
 
-	public static void toRSS(String hostUrl, String title, String description, String repository, List<RevCommit> commits, OutputStream os)
-			throws IOException, FeedException {
+	/**
+	 * Outputs an RSS feed of the list of commits to the outputstream.
+	 * 
+	 * @param hostUrl
+	 * @param title
+	 * @param description
+	 * @param repository
+	 * @param commits
+	 * @param os
+	 * @throws IOException
+	 * @throws FeedException
+	 */
+	public static void toRSS(String hostUrl, String title, String description, String repository,
+			List<RevCommit> commits, OutputStream os) throws IOException, FeedException {
 
 		SyndFeed feed = new SyndFeedImpl();
-		feed.setFeedType("rss_1.0");
+		feed.setFeedType("rss_2.0");
 		feed.setTitle(title);
-		feed.setLink(MessageFormat.format("{0}/summary/{1}", hostUrl, repository));
+		feed.setLink(MessageFormat.format("{0}/summary/{1}", hostUrl,
+				StringUtils.encodeURL(repository)));
 		feed.setDescription(description);
+		SyndImageImpl image = new SyndImageImpl();
+		image.setTitle(Constants.NAME);
+		image.setUrl(hostUrl + "/gitblt_25.png");
+		image.setLink(hostUrl);
+		feed.setImage(image);
 
 		List<SyndEntry> entries = new ArrayList<SyndEntry>();
 		for (RevCommit commit : commits) {
 			SyndEntry entry = new SyndEntryImpl();
 			entry.setTitle(commit.getShortMessage());
 			entry.setAuthor(commit.getAuthorIdent().getName());
-			entry.setLink(MessageFormat.format("{0}/commit/{1}/{2}", hostUrl, repository, commit.getName()));
+			entry.setLink(MessageFormat.format("{0}/commit/{1}/{2}", hostUrl,
+					StringUtils.encodeURL(repository), commit.getName()));
 			entry.setPublishedDate(commit.getCommitterIdent().getWhen());
 
 			SyndContent content = new SyndContentImpl();

--
Gitblit v1.9.1