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/GitBlit.java | 29 ++++++++++++++++++++++++++++- 1 files changed, 28 insertions(+), 1 deletions(-) diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index b32440b..33eaee9 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -21,6 +21,7 @@ import java.lang.reflect.Field; import java.text.MessageFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -521,6 +522,8 @@ model.showReadme = getConfig(config, "showReadme", false); model.federationStrategy = FederationStrategy.fromName(getConfig(config, "federationStrategy", null)); + model.federationSets = new ArrayList<String>(Arrays.asList(config.getStringList( + "gitblit", null, "federationSets"))); model.isFederated = getConfig(config, "isFederated", false); model.origin = config.getString("remote", "origin", "url"); } @@ -697,6 +700,7 @@ config.setBoolean("gitblit", null, "showRemoteBranches", repository.showRemoteBranches); config.setBoolean("gitblit", null, "isFrozen", repository.isFrozen); config.setBoolean("gitblit", null, "showReadme", repository.showReadme); + config.setStringList("gitblit", null, "federationSets", repository.federationSets); config.setString("gitblit", null, "federationStrategy", repository.federationStrategy.name()); config.setBoolean("gitblit", null, "isFederated", repository.isFederated); @@ -810,9 +814,16 @@ validPassphrase = false; } if (validPassphrase) { + // standard tokens for (FederationToken tokenType : FederationToken.values()) { logger.info(MessageFormat.format("Federation {0} token = {1}", tokenType.name(), getFederationToken(tokenType))); + } + + // federation set tokens + for (String set : settings.getStrings(Keys.federation.sets)) { + logger.info(MessageFormat.format("Federation Set {0} token = {1}", set, + getFederationToken(set))); } } @@ -838,6 +849,7 @@ keys.remove(Keys.federation.allowProposals); keys.remove(Keys.federation.proposalsFolder); keys.remove(Keys.federation.defaultFrequency); + keys.remove(Keys.federation.sets); Collections.sort(keys); Map<String, FederationModel> federatedModels = new HashMap<String, FederationModel>(); for (String key : keys) { @@ -936,8 +948,13 @@ */ public List<String> getFederationTokens() { List<String> tokens = new ArrayList<String>(); + // generate standard tokens for (FederationToken type : FederationToken.values()) { tokens.add(getFederationToken(type)); + } + // generate tokens for federation sets + for (String set : settings.getStrings(Keys.federation.sets)) { + tokens.add(getFederationToken(set)); } return tokens; } @@ -949,8 +966,18 @@ * @return a federation token */ public String getFederationToken(FederationToken type) { + return getFederationToken(type.name()); + } + + /** + * Returns the specified federation token for this Gitblit instance. + * + * @param value + * @return a federation token + */ + public String getFederationToken(String value) { String passphrase = settings.getString(Keys.federation.passphrase, ""); - return StringUtils.getSHA1(passphrase + "-" + type.name()); + return StringUtils.getSHA1(passphrase + "-" + value); } /** -- Gitblit v1.9.1