From 8f73a7cc630bb61d088c7cdad30a6708870184ee Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 14 Sep 2011 09:13:51 -0400 Subject: [PATCH] Implemented Federation Sets. Documentation. --- 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