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