From c25a1d65ed2c94b65741d81862a7612ae12bdf76 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 01 Nov 2011 18:19:44 -0400
Subject: [PATCH] Branch renderer. String change. Config section name changes.

---
 src/com/gitblit/utils/SyndicationUtils.java |   41 ++++++++++++++++++++++-------------------
 1 files changed, 22 insertions(+), 19 deletions(-)

diff --git a/src/com/gitblit/utils/SyndicationUtils.java b/src/com/gitblit/utils/SyndicationUtils.java
index 6ea5f0e..9aedeb4 100644
--- a/src/com/gitblit/utils/SyndicationUtils.java
+++ b/src/com/gitblit/utils/SyndicationUtils.java
@@ -117,27 +117,30 @@
 	 */
 	public static List<SyndicatedEntryModel> readFeed(String url, String repository, String branch,
 			int numberOfEntries, String username, char[] password) throws IOException {
-		String feedUrl;
-		if (StringUtils.isEmpty(branch)) {
-			// no branch specified
-			if (numberOfEntries > 0) {
-				// fixed number of entries
-				feedUrl = MessageFormat.format("{0}/feed/{1}?l={2,number,0}", url, repository);
-			} else {
-				// server default number of entries
-				feedUrl = MessageFormat.format("{0}/feed/{1}", url, repository);
-			}
-		} else {
-			// branch specified
-			if (numberOfEntries > 0) {
-				// fixed number of entries
-				feedUrl = MessageFormat.format("{0}/feed/{1}?h={2}&l={3,number,0}", url,
-						repository, branch, numberOfEntries);
-			} else {
-				// server default number of entries
-				feedUrl = MessageFormat.format("{0}/feed/{1}?h={2}", url, repository, branch);
+		// build feed url
+		List<String> parameters = new ArrayList<String>();
+		if (numberOfEntries > 0) {
+			parameters.add("l=" + numberOfEntries);
+		}
+		if (!StringUtils.isEmpty(branch)) {
+			parameters.add("h=" + branch);
+		}
+		StringBuilder sb = new StringBuilder();
+		sb.append(MessageFormat.format("{0}/feed/{1}", url, repository));
+		if (parameters.size() > 0) {
+			boolean first = true;
+			for (String parameter : parameters) {
+				if (first) {
+					sb.append('?');
+					first = false;
+				} else {
+					sb.append('&');
+				}
+				sb.append(parameter);
 			}
 		}
+		String feedUrl = sb.toString();
+
 		URLConnection conn = ConnectionUtils.openReadConnection(feedUrl, username, password);
 		InputStream is = conn.getInputStream();
 		SyndFeedInput input = new SyndFeedInput();

--
Gitblit v1.9.1