From 9b72a2e674f7cbc320b0b72fc71ad813d296ab12 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 22 Sep 2011 12:04:43 -0400
Subject: [PATCH] Updated to JGit 1.1.0 and reverse-sort library dependencies.

---
 src/com/gitblit/FederationServlet.java |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/src/com/gitblit/FederationServlet.java b/src/com/gitblit/FederationServlet.java
index 86aadb0..a84e90c 100644
--- a/src/com/gitblit/FederationServlet.java
+++ b/src/com/gitblit/FederationServlet.java
@@ -225,6 +225,12 @@
 
 		Object result = null;
 		if (FederationRequest.PULL_REPOSITORIES.equals(reqType)) {
+			// build a reverse-lookup for token->federation set name
+			Map<String, String> federationSets = new HashMap<String, String>();
+			for (String set : GitBlit.getStrings(Keys.federation.sets)) {
+				federationSets.put(GitBlit.self().getFederationToken(set), set);
+			}
+
 			// Determine the Gitblit clone url
 			StringBuilder sb = new StringBuilder();
 			sb.append(HttpUtils.getHostURL(request));
@@ -253,7 +259,17 @@
 					}
 					break;
 				}
-				repositories.put(url, model);
+
+				if (federationSets.containsKey(token)) {
+					// include repositories only for federation set
+					String set = federationSets.get(token);
+					if (model.federationSets.contains(set)) {
+						repositories.put(url, model);
+					}
+				} else {
+					// standard federation token for ALL
+					repositories.put(url, model);
+				}
 			}
 			result = repositories;
 		} else {

--
Gitblit v1.9.1