From 0e44acbb2fec928a1606dc60f427a148fff405c9 Mon Sep 17 00:00:00 2001
From: Mohamed Ragab <moragab@gmail.com>
Date: Wed, 02 May 2012 11:15:01 -0400
Subject: [PATCH] Added a script to facilitate setting the proxy host and port and no proxy hosts, and then it concatenates all the java system properties for setting the java proxy configurations and puts the resulting string in an environment variable JAVA_PROXY_CONFIG, modified the scirpts gitblit, gitblit-ubuntu, and gitblit-centos to source the java-proxy-config.sh script and then include the resulting java proxy configuration in the java command
---
src/com/gitblit/GitBlit.java | 106 +++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 79 insertions(+), 27 deletions(-)
diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index 3bda06f..565b024 100644
--- a/src/com/gitblit/GitBlit.java
+++ b/src/com/gitblit/GitBlit.java
@@ -87,7 +87,6 @@
import com.gitblit.utils.MetricUtils;
import com.gitblit.utils.ObjectCache;
import com.gitblit.utils.StringUtils;
-import com.gitblit.utils.TimeUtils;
/**
* GitBlit is the servlet context listener singleton that acts as the core for
@@ -378,6 +377,38 @@
this.userService = userService;
this.userService.setup(settings);
}
+
+ /**
+ *
+ * @return true if the user service supports credential changes
+ */
+ public boolean supportsCredentialChanges() {
+ return userService.supportsCredentialChanges();
+ }
+
+ /**
+ *
+ * @return true if the user service supports display name changes
+ */
+ public boolean supportsDisplayNameChanges() {
+ return userService.supportsDisplayNameChanges();
+ }
+
+ /**
+ *
+ * @return true if the user service supports email address changes
+ */
+ public boolean supportsEmailAddressChanges() {
+ return userService.supportsEmailAddressChanges();
+ }
+
+ /**
+ *
+ * @return true if the user service supports team membership changes
+ */
+ public boolean supportsTeamMembershipChanges() {
+ return userService.supportsTeamMembershipChanges();
+ }
/**
* Authenticate a user based on a username and password.
@@ -465,6 +496,18 @@
userCookie.setPath("/");
response.addCookie(userCookie);
}
+ }
+
+ /**
+ * Logout a user.
+ *
+ * @param user
+ */
+ public void logout(UserModel user) {
+ if (userService == null) {
+ return;
+ }
+ userService.logout(user);
}
/**
@@ -812,6 +855,8 @@
"gitblit", null, "postReceiveScript")));
model.mailingLists = new ArrayList<String>(Arrays.asList(config.getStringList(
"gitblit", null, "mailingList")));
+ model.indexedBranches = new ArrayList<String>(Arrays.asList(config.getStringList(
+ "gitblit", null, "indexBranch")));
}
model.HEAD = JGitUtils.getHEADRef(r);
model.availableRefs = JGitUtils.getAvailableHeadTargets(r);
@@ -871,6 +916,9 @@
repository.close();
}
}
+
+ // close any open index writer/searcher in the Lucene executor
+ luceneExecutor.close(repositoryName);
}
/**
@@ -1046,24 +1094,33 @@
config.setBoolean("gitblit", null, "showReadme", repository.showReadme);
config.setBoolean("gitblit", null, "skipSizeCalculation", repository.skipSizeCalculation);
config.setBoolean("gitblit", null, "skipSummaryMetrics", repository.skipSummaryMetrics);
- config.setStringList("gitblit", null, "federationSets", repository.federationSets);
config.setString("gitblit", null, "federationStrategy",
repository.federationStrategy.name());
config.setBoolean("gitblit", null, "isFederated", repository.isFederated);
- if (!ArrayUtils.isEmpty(repository.preReceiveScripts)) {
- config.setStringList("gitblit", null, "preReceiveScript", repository.preReceiveScripts);
- }
- if (!ArrayUtils.isEmpty(repository.postReceiveScripts)) {
- config.setStringList("gitblit", null, "postReceiveScript",
- repository.postReceiveScripts);
- }
- if (!ArrayUtils.isEmpty(repository.mailingLists)) {
- config.setStringList("gitblit", null, "mailingList", repository.mailingLists);
- }
+
+ updateList(config, "federationSets", repository.federationSets);
+ updateList(config, "preReceiveScript", repository.preReceiveScripts);
+ updateList(config, "postReceiveScript", repository.postReceiveScripts);
+ updateList(config, "mailingList", repository.mailingLists);
+ updateList(config, "indexBranch", repository.indexedBranches);
+
try {
config.save();
} catch (IOException e) {
logger.error("Failed to save repository config!", e);
+ }
+ }
+
+ private void updateList(StoredConfig config, String field, List<String> list) {
+ // a null list is skipped, not cleared
+ // this is for RPC administration where an older manager might be used
+ if (list == null) {
+ return;
+ }
+ if (ArrayUtils.isEmpty(list)) {
+ config.unset("gitblit", null, field);
+ } else {
+ config.setStringList("gitblit", null, field, list);
}
}
@@ -1653,12 +1710,13 @@
* Search the specified repositories using the Lucene query.
*
* @param query
- * @param maximumHits
+ * @param page
+ * @param pageSize
* @param repositories
* @return
*/
- public List<SearchResult> search(String query, int maximumHits, List<String> repositories) {
- List<SearchResult> srs = luceneExecutor.search(query, maximumHits, repositories);
+ public List<SearchResult> search(String query, int page, int pageSize, List<String> repositories) {
+ List<SearchResult> srs = luceneExecutor.search(query, page, pageSize, repositories);
return srs;
}
@@ -1738,6 +1796,10 @@
*/
private ServerSettings loadSettingModels() {
ServerSettings settingsModel = new ServerSettings();
+ settingsModel.supportsCredentialChanges = userService.supportsCredentialChanges();
+ settingsModel.supportsDisplayNameChanges = userService.supportsDisplayNameChanges();
+ settingsModel.supportsEmailAddressChanges = userService.supportsEmailAddressChanges();
+ settingsModel.supportsTeamMembershipChanges = userService.supportsTeamMembershipChanges();
try {
// Read bundled Gitblit properties to extract setting descriptions.
// This copy is pristine and only used for populating the setting
@@ -1830,18 +1892,8 @@
logger.warn("Mail server is not properly configured. Mail services disabled.");
}
luceneExecutor = new LuceneExecutor(settings, repositoriesFolder);
- if (luceneExecutor.isReady()) {
- String idle = settings.getString(Keys.lucene.frequency, "2 mins");
- int mins = TimeUtils.convertFrequencyToMinutes(idle);
- if (mins <= 2) {
- mins = 2;
- idle = mins + " mins";
- }
- logger.info("Lucene executor is scheduled to process ref changes every " + idle);
- scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, mins, TimeUnit.MINUTES);
- } else {
- logger.warn("Lucene integration is disabled.");
- }
+ logger.info("Lucene executor is scheduled to process indexed branches every 2 minutes.");
+ scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, 2, TimeUnit.MINUTES);
if (startFederation) {
configureFederation();
}
--
Gitblit v1.9.1