From 03a03105bc613cf8b87aa67938e9c940197ef511 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 27 Mar 2014 09:31:57 -0400
Subject: [PATCH] Change build identifier to 1.5.0-SNAPSHOT
---
src/main/java/com/gitblit/GitBlit.java | 871 ++++++++++++++-------------------------------------------
1 files changed, 222 insertions(+), 649 deletions(-)
diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java
index d4e89b0..bbc8bd3 100644
--- a/src/main/java/com/gitblit/GitBlit.java
+++ b/src/main/java/com/gitblit/GitBlit.java
@@ -15,77 +15,52 @@
*/
package com.gitblit;
-import java.io.File;
-import java.util.Collection;
-import java.util.Date;
+import java.text.MessageFormat;
+import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
-import java.util.TimeZone;
+import javax.inject.Singleton;
import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.jgit.lib.Repository;
-
-import com.gitblit.Constants.FederationRequest;
-import com.gitblit.Constants.FederationToken;
+import com.gitblit.Constants.AccessPermission;
+import com.gitblit.manager.GitblitManager;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.manager.IFederationManager;
-import com.gitblit.manager.IGitblitManager;
+import com.gitblit.manager.IGitblit;
import com.gitblit.manager.INotificationManager;
import com.gitblit.manager.IProjectManager;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.manager.IUserManager;
-import com.gitblit.models.FederationModel;
-import com.gitblit.models.FederationProposal;
-import com.gitblit.models.FederationSet;
-import com.gitblit.models.ForkModel;
-import com.gitblit.models.GitClientApplication;
-import com.gitblit.models.Metric;
-import com.gitblit.models.ProjectModel;
-import com.gitblit.models.RegistrantAccessPermission;
+import com.gitblit.manager.ServicesManager;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.RepositoryUrl;
-import com.gitblit.models.SearchResult;
-import com.gitblit.models.ServerSettings;
-import com.gitblit.models.ServerStatus;
-import com.gitblit.models.TeamModel;
import com.gitblit.models.UserModel;
+import com.gitblit.tickets.BranchTicketService;
+import com.gitblit.tickets.FileTicketService;
+import com.gitblit.tickets.ITicketService;
+import com.gitblit.tickets.NullTicketService;
+import com.gitblit.tickets.RedisTicketService;
+import com.gitblit.utils.StringUtils;
+
+import dagger.Module;
+import dagger.ObjectGraph;
+import dagger.Provides;
/**
- * GitBlit is an aggregate interface delegate. It implements all the manager
- * interfaces and delegates all methods calls to the actual manager implementations.
- * It's primary purpose is to provide complete management control to the git
- * upload and receive pack functions.
+ * GitBlit is the aggregate manager for the Gitblit webapp. It provides all
+ * management functions and also manages some long-running services.
*
* @author James Moger
*
*/
-public class GitBlit implements IRuntimeManager,
- INotificationManager,
- IUserManager,
- IAuthenticationManager,
- IRepositoryManager,
- IProjectManager,
- IGitblitManager,
- IFederationManager {
+public class GitBlit extends GitblitManager {
- private final IRuntimeManager runtimeManager;
+ private final ObjectGraph injector;
- private final INotificationManager notificationManager;
+ private final ServicesManager servicesManager;
- private final IUserManager userManager;
-
- private final IAuthenticationManager authenticationManager;
-
- private final IRepositoryManager repositoryManager;
-
- private final IProjectManager projectManager;
-
- private final IGitblitManager gitblitManager;
-
- private final IFederationManager federationManager;
+ private ITicketService ticketService;
public GitBlit(
IRuntimeManager runtimeManager,
@@ -94,661 +69,259 @@
IAuthenticationManager authenticationManager,
IRepositoryManager repositoryManager,
IProjectManager projectManager,
- IGitblitManager gitblitManager,
IFederationManager federationManager) {
- this.runtimeManager = runtimeManager;
- this.notificationManager = notificationManager;
- this.userManager = userManager;
- this.authenticationManager = authenticationManager;
- this.repositoryManager = repositoryManager;
- this.projectManager = projectManager;
- this.gitblitManager = gitblitManager;
- this.federationManager = federationManager;
+ super(runtimeManager,
+ notificationManager,
+ userManager,
+ authenticationManager,
+ repositoryManager,
+ projectManager,
+ federationManager);
+
+ this.injector = ObjectGraph.create(getModules());
+
+ this.servicesManager = new ServicesManager(this);
}
@Override
public GitBlit start() {
+ super.start();
+ logger.info("Starting services manager...");
+ servicesManager.start();
+ configureTicketService();
return this;
}
@Override
public GitBlit stop() {
+ super.stop();
+ servicesManager.stop();
+ ticketService.stop();
return this;
}
- /*
- * ISTOREDSETTINGS
+ protected Object [] getModules() {
+ return new Object [] { new GitBlitModule()};
+ }
+
+ /**
+ * Returns a list of repository URLs and the user access permission.
*
- * these methods are necessary for (nearly) seamless Groovy hook operation
- * after the massive refactor.
+ * @param request
+ * @param user
+ * @param repository
+ * @return a list of repository urls
*/
+ @Override
+ public List<RepositoryUrl> getRepositoryUrls(HttpServletRequest request, UserModel user, RepositoryModel repository) {
+ if (user == null) {
+ user = UserModel.ANONYMOUS;
+ }
+ String username = StringUtils.encodeUsername(UserModel.ANONYMOUS.equals(user) ? "" : user.username);
- public boolean getBoolean(String key, boolean defaultValue) {
- return runtimeManager.getSettings().getBoolean(key, defaultValue);
+ List<RepositoryUrl> list = new ArrayList<RepositoryUrl>();
+ // http/https url
+ if (settings.getBoolean(Keys.git.enableGitServlet, true)) {
+ AccessPermission permission = user.getRepositoryPermission(repository).permission;
+ if (permission.exceeds(AccessPermission.NONE)) {
+ list.add(new RepositoryUrl(getRepositoryUrl(request, username, repository), permission));
+ }
+ }
+
+ // git daemon url
+ String gitDaemonUrl = servicesManager.getGitDaemonUrl(request, user, repository);
+ if (!StringUtils.isEmpty(gitDaemonUrl)) {
+ AccessPermission permission = servicesManager.getGitDaemonAccessPermission(user, repository);
+ if (permission.exceeds(AccessPermission.NONE)) {
+ list.add(new RepositoryUrl(gitDaemonUrl, permission));
+ }
+ }
+
+ // add all other urls
+ // {0} = repository
+ // {1} = username
+ for (String url : settings.getStrings(Keys.web.otherUrls)) {
+ if (url.contains("{1}")) {
+ // external url requires username, only add url IF we have one
+ if (!StringUtils.isEmpty(username)) {
+ list.add(new RepositoryUrl(MessageFormat.format(url, repository.name, username), null));
+ }
+ } else {
+ // external url does not require username
+ list.add(new RepositoryUrl(MessageFormat.format(url, repository.name), null));
+ }
+ }
+ return list;
}
- public String getString(String key, String defaultValue) {
- return runtimeManager.getSettings().getString(key, defaultValue);
- }
-
- public int getInteger(String key, int defaultValue) {
- return runtimeManager.getSettings().getInteger(key, defaultValue);
- }
-
- public List<String> getStrings(String key) {
- return runtimeManager.getSettings().getStrings(key);
- }
-
- /*
- * RUNTIME MANAGER
+ /**
+ * Detect renames and reindex as appropriate.
*/
-
- @Override
- public File getBaseFolder() {
- return runtimeManager.getBaseFolder();
- }
-
- @Override
- public void setBaseFolder(File folder) {
- runtimeManager.setBaseFolder(folder);
- }
-
- @Override
- public Date getBootDate() {
- return runtimeManager.getBootDate();
- }
-
- @Override
- public ServerSettings getSettingsModel() {
- return runtimeManager.getSettingsModel();
- }
-
- @Override
- public boolean isServingRepositories() {
- return runtimeManager.isServingRepositories();
- }
-
- @Override
- public TimeZone getTimezone() {
- return runtimeManager.getTimezone();
- }
-
- @Override
- public boolean isDebugMode() {
- return runtimeManager.isDebugMode();
- }
-
- @Override
- public File getFileOrFolder(String key, String defaultFileOrFolder) {
- return runtimeManager.getFileOrFolder(key, defaultFileOrFolder);
- }
-
- @Override
- public File getFileOrFolder(String fileOrFolder) {
- return runtimeManager.getFileOrFolder(fileOrFolder);
- }
-
- @Override
- public IStoredSettings getSettings() {
- return runtimeManager.getSettings();
- }
-
- @Override
- public boolean updateSettings(Map<String, String> updatedSettings) {
- return runtimeManager.updateSettings(updatedSettings);
- }
-
- @Override
- public ServerStatus getStatus() {
- return runtimeManager.getStatus();
- }
-
- /*
- * NOTIFICATION MANAGER
- */
-
- @Override
- public void sendMailToAdministrators(String subject, String message) {
- notificationManager.sendMailToAdministrators(subject, message);
- }
-
- @Override
- public void sendMail(String subject, String message, Collection<String> toAddresses) {
- notificationManager.sendMail(subject, message, toAddresses);
- }
-
- @Override
- public void sendMail(String subject, String message, String... toAddresses) {
- notificationManager.sendMail(subject, message, toAddresses);
- }
-
- @Override
- public void sendHtmlMail(String subject, String message, Collection<String> toAddresses) {
- notificationManager.sendHtmlMail(subject, message, toAddresses);
- }
-
- @Override
- public void sendHtmlMail(String subject, String message, String... toAddresses) {
- notificationManager.sendHtmlMail(subject, message, toAddresses);
- }
-
- /*
- * SESSION MANAGER
- */
-
- @Override
- public UserModel authenticate(String username, char[] password) {
- return authenticationManager.authenticate(username, password);
- }
-
- @Override
- public UserModel authenticate(HttpServletRequest httpRequest) {
- return authenticationManager.authenticate(httpRequest, false);
- }
- @Override
- public UserModel authenticate(HttpServletRequest httpRequest, boolean requiresCertificate) {
- return authenticationManager.authenticate(httpRequest, requiresCertificate);
- }
-
- @Override
- public void setCookie(HttpServletResponse response, UserModel user) {
- authenticationManager.setCookie(response, user);
- }
-
- @Override
- public void logout(HttpServletResponse response, UserModel user) {
- authenticationManager.logout(response, user);
- }
-
- @Override
- public boolean supportsCredentialChanges(UserModel user) {
- return authenticationManager.supportsCredentialChanges(user);
- }
-
- @Override
- public boolean supportsDisplayNameChanges(UserModel user) {
- return authenticationManager.supportsDisplayNameChanges(user);
- }
-
- @Override
- public boolean supportsEmailAddressChanges(UserModel user) {
- return authenticationManager.supportsEmailAddressChanges(user);
- }
-
- @Override
- public boolean supportsTeamMembershipChanges(UserModel user) {
- return authenticationManager.supportsTeamMembershipChanges(user);
- }
-
- @Override
- public boolean supportsTeamMembershipChanges(TeamModel team) {
- return authenticationManager.supportsTeamMembershipChanges(team);
- }
-
- /*
- * USER MANAGER
- */
-
- @Override
- public void setup(IRuntimeManager runtimeManager) {
- }
-
- @Override
- public List<String> getAllUsernames() {
- return userManager.getAllUsernames();
- }
-
- @Override
- public List<UserModel> getAllUsers() {
- return userManager.getAllUsers();
- }
-
- @Override
- public boolean deleteUser(String username) {
- return userManager.deleteUser(username);
- }
-
- @Override
- public UserModel getUserModel(String username) {
- return userManager.getUserModel(username);
- }
-
- @Override
- public List<TeamModel> getAllTeams() {
- return userManager.getAllTeams();
- }
-
- @Override
- public TeamModel getTeamModel(String teamname) {
- return userManager.getTeamModel(teamname);
- }
-
- @Override
- public String getCookie(UserModel model) {
- return userManager.getCookie(model);
- }
-
- @Override
- public UserModel getUserModel(char[] cookie) {
- return userManager.getUserModel(cookie);
- }
-
- @Override
- public boolean updateUserModel(UserModel model) {
- return userManager.updateUserModel(model);
- }
-
- @Override
- public boolean updateUserModels(Collection<UserModel> models) {
- return userManager.updateUserModels(models);
- }
-
- @Override
- public boolean updateUserModel(String username, UserModel model) {
- return userManager.updateUserModel(username, model);
- }
-
- @Override
- public boolean deleteUserModel(UserModel model) {
- return userManager.deleteUserModel(model);
- }
-
- @Override
- public List<String> getAllTeamNames() {
- return userManager.getAllTeamNames();
- }
-
- @Override
- public List<String> getTeamNamesForRepositoryRole(String role) {
- return userManager.getTeamNamesForRepositoryRole(role);
- }
-
- @Override
- public boolean updateTeamModel(TeamModel model) {
- return userManager.updateTeamModel(model);
- }
-
- @Override
- public boolean updateTeamModels(Collection<TeamModel> models) {
- return userManager.updateTeamModels(models);
- }
-
- @Override
- public boolean updateTeamModel(String teamname, TeamModel model) {
- return userManager.updateTeamModel(teamname, model);
- }
-
- @Override
- public boolean deleteTeamModel(TeamModel model) {
- return userManager.deleteTeamModel(model);
- }
-
- @Override
- public List<String> getUsernamesForRepositoryRole(String role) {
- return userManager.getUsernamesForRepositoryRole(role);
- }
-
- @Override
- public boolean renameRepositoryRole(String oldRole, String newRole) {
- return userManager.renameRepositoryRole(oldRole, newRole);
- }
-
- @Override
- public boolean deleteRepositoryRole(String role) {
- return userManager.deleteRepositoryRole(role);
- }
-
- @Override
- public boolean deleteTeam(String teamname) {
- return userManager.deleteTeam(teamname);
- }
-
- /*
- * REPOSITORY MANAGER
- */
-
- @Override
- public Date getLastActivityDate() {
- return repositoryManager.getLastActivityDate();
- }
-
- @Override
- public File getRepositoriesFolder() {
- return repositoryManager.getRepositoriesFolder();
- }
-
- @Override
- public File getHooksFolder() {
- return repositoryManager.getHooksFolder();
- }
-
- @Override
- public File getGrapesFolder() {
- return repositoryManager.getGrapesFolder();
- }
-
- @Override
- public List<RegistrantAccessPermission> getUserAccessPermissions(UserModel user) {
- return repositoryManager.getUserAccessPermissions(user);
- }
-
- @Override
- public List<RegistrantAccessPermission> getUserAccessPermissions(RepositoryModel repository) {
- return repositoryManager.getUserAccessPermissions(repository);
- }
-
- @Override
- public boolean setUserAccessPermissions(RepositoryModel repository, Collection<RegistrantAccessPermission> permissions) {
- return repositoryManager.setUserAccessPermissions(repository, permissions);
- }
-
- @Override
- public List<String> getRepositoryUsers(RepositoryModel repository) {
- return repositoryManager.getRepositoryUsers(repository);
- }
-
- @Override
- public List<RegistrantAccessPermission> getTeamAccessPermissions(RepositoryModel repository) {
- return repositoryManager.getTeamAccessPermissions(repository);
- }
-
- @Override
- public boolean setTeamAccessPermissions(RepositoryModel repository, Collection<RegistrantAccessPermission> permissions) {
- return repositoryManager.setTeamAccessPermissions(repository, permissions);
- }
-
- @Override
- public List<String> getRepositoryTeams(RepositoryModel repository) {
- return repositoryManager.getRepositoryTeams(repository);
- }
- @Override
- public void addToCachedRepositoryList(RepositoryModel model) {
- repositoryManager.addToCachedRepositoryList(model);
- }
-
- @Override
- public void resetRepositoryListCache() {
- repositoryManager.resetRepositoryListCache();
- }
-
- @Override
- public List<String> getRepositoryList() {
- return repositoryManager.getRepositoryList();
- }
-
- @Override
- public Repository getRepository(String repositoryName) {
- return repositoryManager.getRepository(repositoryName);
- }
-
- @Override
- public Repository getRepository(String repositoryName, boolean logError) {
- return repositoryManager.getRepository(repositoryName, logError);
- }
-
- @Override
- public List<RepositoryModel> getRepositoryModels(UserModel user) {
- return repositoryManager.getRepositoryModels(user);
- }
-
- @Override
- public RepositoryModel getRepositoryModel(UserModel user, String repositoryName) {
- return repositoryManager.getRepositoryModel(repositoryName);
- }
-
- @Override
- public RepositoryModel getRepositoryModel(String repositoryName) {
- return repositoryManager.getRepositoryModel(repositoryName);
- }
-
- @Override
- public long getStarCount(RepositoryModel repository) {
- return repositoryManager.getStarCount(repository);
- }
-
- @Override
- public boolean hasRepository(String repositoryName) {
- return repositoryManager.hasRepository(repositoryName);
- }
-
- @Override
- public boolean hasRepository(String repositoryName, boolean caseSensitiveCheck) {
- return repositoryManager.hasRepository(repositoryName, caseSensitiveCheck);
- }
-
- @Override
- public boolean hasFork(String username, String origin) {
- return repositoryManager.hasFork(username, origin);
- }
-
- @Override
- public String getFork(String username, String origin) {
- return repositoryManager.getFork(username, origin);
- }
-
- @Override
- public ForkModel getForkNetwork(String repository) {
- return repositoryManager.getForkNetwork(repository);
- }
-
- @Override
- public long updateLastChangeFields(Repository r, RepositoryModel model) {
- return repositoryManager.updateLastChangeFields(r, model);
- }
-
- @Override
- public List<Metric> getRepositoryDefaultMetrics(RepositoryModel model, Repository repository) {
- return repositoryManager.getRepositoryDefaultMetrics(model, repository);
- }
-
@Override
public void updateRepositoryModel(String repositoryName, RepositoryModel repository,
boolean isCreate) throws GitBlitException {
- repositoryManager.updateRepositoryModel(repositoryName, repository, isCreate);
+ RepositoryModel oldModel = null;
+ boolean isRename = !isCreate && !repositoryName.equalsIgnoreCase(repository.name);
+ if (isRename) {
+ oldModel = repositoryManager.getRepositoryModel(repositoryName);
+ }
+
+ super.updateRepositoryModel(repositoryName, repository, isCreate);
+
+ if (isRename && ticketService != null) {
+ ticketService.rename(oldModel, repository);
+ }
}
+ /**
+ * Delete the repository and all associated tickets.
+ */
@Override
- public void updateConfiguration(Repository r, RepositoryModel repository) {
- repositoryManager.updateConfiguration(r, repository);
+ public boolean deleteRepository(String repositoryName) {
+ RepositoryModel repository = repositoryManager.getRepositoryModel(repositoryName);
+ return deleteRepositoryModel(repository);
}
@Override
public boolean deleteRepositoryModel(RepositoryModel model) {
- return repositoryManager.deleteRepositoryModel(model);
+ boolean success = repositoryManager.deleteRepositoryModel(model);
+ if (success && ticketService != null) {
+ return ticketService.deleteAll(model);
+ }
+ return success;
}
- @Override
- public boolean deleteRepository(String repositoryName) {
- return repositoryManager.deleteRepository(repositoryName);
- }
-
- @Override
- public List<String> getAllScripts() {
- return repositoryManager.getAllScripts();
- }
-
- @Override
- public List<String> getPreReceiveScriptsInherited(RepositoryModel repository) {
- return repositoryManager.getPreReceiveScriptsInherited(repository);
- }
-
- @Override
- public List<String> getPreReceiveScriptsUnused(RepositoryModel repository) {
- return repositoryManager.getPreReceiveScriptsUnused(repository);
- }
-
- @Override
- public List<String> getPostReceiveScriptsInherited(RepositoryModel repository) {
- return repositoryManager.getPostReceiveScriptsInherited(repository);
- }
-
- @Override
- public List<String> getPostReceiveScriptsUnused(RepositoryModel repository) {
- return repositoryManager.getPostReceiveScriptsUnused(repository);
- }
-
- @Override
- public List<SearchResult> search(String query, int page, int pageSize, List<String> repositories) {
- return repositoryManager.search(query, page, pageSize, repositories);
- }
-
- @Override
- public boolean isCollectingGarbage() {
- return repositoryManager.isCollectingGarbage();
- }
-
- @Override
- public boolean isCollectingGarbage(String repositoryName) {
- return repositoryManager.isCollectingGarbage(repositoryName);
- }
-
- /*
- * PROJECT MANAGER
+ /**
+ * Returns the configured ticket service.
+ *
+ * @return a ticket service
*/
-
@Override
- public List<ProjectModel> getProjectModels(UserModel user, boolean includeUsers) {
- return projectManager.getProjectModels(user, includeUsers);
+ public ITicketService getTicketService() {
+ return ticketService;
}
- @Override
- public ProjectModel getProjectModel(String name, UserModel user) {
- return projectManager.getProjectModel(name, user);
+ protected void configureTicketService() {
+ String clazz = settings.getString(Keys.tickets.service, NullTicketService.class.getName());
+ if (StringUtils.isEmpty(clazz)) {
+ clazz = NullTicketService.class.getName();
+ }
+ try {
+ Class<? extends ITicketService> serviceClass = (Class<? extends ITicketService>) Class.forName(clazz);
+ ticketService = injector.get(serviceClass).start();
+ if (ticketService instanceof NullTicketService) {
+ logger.warn("No ticket service configured.");
+ } else if (ticketService.isReady()) {
+ logger.info("{} is ready.", ticketService);
+ } else {
+ logger.warn("{} is disabled.", ticketService);
+ }
+ } catch (Exception e) {
+ logger.error("failed to create ticket service " + clazz, e);
+ ticketService = injector.get(NullTicketService.class).start();
+ }
}
- @Override
- public ProjectModel getProjectModel(String name) {
- return projectManager.getProjectModel(name);
- }
-
- @Override
- public List<ProjectModel> getProjectModels(List<RepositoryModel> repositoryModels, boolean includeUsers) {
- return projectManager.getProjectModels(repositoryModels, includeUsers);
- }
-
- /*
- * FEDERATION MANAGER
+ /**
+ * A nested Dagger graph is used for constructor dependency injection of
+ * complex classes.
+ *
+ * @author James Moger
+ *
*/
+ @Module(
+ library = true,
+ injects = {
+ IStoredSettings.class,
- @Override
- public File getProposalsFolder() {
- return federationManager.getProposalsFolder();
- }
+ // core managers
+ IRuntimeManager.class,
+ INotificationManager.class,
+ IUserManager.class,
+ IAuthenticationManager.class,
+ IRepositoryManager.class,
+ IProjectManager.class,
+ IFederationManager.class,
- @Override
- public UserModel getFederationUser() {
- return federationManager.getFederationUser();
- }
+ // the monolithic manager
+ IGitblit.class,
- @Override
- public boolean canFederate() {
- return federationManager.canFederate();
- }
+ // ticket services
+ NullTicketService.class,
+ FileTicketService.class,
+ BranchTicketService.class,
+ RedisTicketService.class
+ }
+ )
+ class GitBlitModule {
- @Override
- public List<FederationModel> getFederationRegistrations() {
- return federationManager.getFederationRegistrations();
- }
+ @Provides @Singleton IStoredSettings provideSettings() {
+ return settings;
+ }
- @Override
- public FederationModel getFederationRegistration(String url, String name) {
- return federationManager.getFederationRegistration(url, name);
- }
+ @Provides @Singleton IRuntimeManager provideRuntimeManager() {
+ return runtimeManager;
+ }
- @Override
- public List<FederationSet> getFederationSets(String gitblitUrl) {
- return federationManager.getFederationSets(gitblitUrl);
- }
+ @Provides @Singleton INotificationManager provideNotificationManager() {
+ return notificationManager;
+ }
- @Override
- public List<String> getFederationTokens() {
- return federationManager.getFederationTokens();
- }
+ @Provides @Singleton IUserManager provideUserManager() {
+ return userManager;
+ }
- @Override
- public String getFederationToken(FederationToken type) {
- return federationManager.getFederationToken(type);
- }
+ @Provides @Singleton IAuthenticationManager provideAuthenticationManager() {
+ return authenticationManager;
+ }
- @Override
- public String getFederationToken(String value) {
- return federationManager.getFederationToken(value);
- }
+ @Provides @Singleton IRepositoryManager provideRepositoryManager() {
+ return repositoryManager;
+ }
- @Override
- public boolean validateFederationRequest(FederationRequest req, String token) {
- return federationManager.validateFederationRequest(req, token);
- }
+ @Provides @Singleton IProjectManager provideProjectManager() {
+ return projectManager;
+ }
- @Override
- public boolean acknowledgeFederationStatus(String identification, FederationModel registration) {
- return federationManager.acknowledgeFederationStatus(identification, registration);
- }
+ @Provides @Singleton IFederationManager provideFederationManager() {
+ return federationManager;
+ }
- @Override
- public List<FederationModel> getFederationResultRegistrations() {
- return federationManager.getFederationResultRegistrations();
- }
+ @Provides @Singleton IGitblit provideGitblit() {
+ return GitBlit.this;
+ }
- @Override
- public boolean submitFederationProposal(FederationProposal proposal, String gitblitUrl) {
- return federationManager.submitFederationProposal(proposal, gitblitUrl);
- }
+ @Provides @Singleton NullTicketService provideNullTicketService() {
+ return new NullTicketService(
+ runtimeManager,
+ notificationManager,
+ userManager,
+ repositoryManager);
+ }
- @Override
- public List<FederationProposal> getPendingFederationProposals() {
- return federationManager.getPendingFederationProposals();
- }
+ @Provides @Singleton FileTicketService provideFileTicketService() {
+ return new FileTicketService(
+ runtimeManager,
+ notificationManager,
+ userManager,
+ repositoryManager);
+ }
- @Override
- public Map<String, RepositoryModel> getRepositories(String gitblitUrl, String token) {
- return federationManager.getRepositories(gitblitUrl, token);
- }
+ @Provides @Singleton BranchTicketService provideBranchTicketService() {
+ return new BranchTicketService(
+ runtimeManager,
+ notificationManager,
+ userManager,
+ repositoryManager);
+ }
- @Override
- public FederationProposal createFederationProposal(String gitblitUrl, String token) {
- return federationManager.createFederationProposal(gitblitUrl, token);
- }
-
- @Override
- public FederationProposal getPendingFederationProposal(String token) {
- return federationManager.getPendingFederationProposal(token);
- }
-
- @Override
- public boolean deletePendingFederationProposal(FederationProposal proposal) {
- return federationManager.deletePendingFederationProposal(proposal);
- }
-
- /*
- * GITBLIT MANAGER
- */
-
- @Override
- public RepositoryModel fork(RepositoryModel repository, UserModel user) throws GitBlitException {
- return gitblitManager.fork(repository, user);
- }
-
- @Override
- public void updateTeamModel(String teamname, TeamModel team, boolean isCreate)
- throws GitBlitException {
- gitblitManager.updateTeamModel(teamname, team, isCreate);
- }
-
- @Override
- public void updateUserModel(String username, UserModel user, boolean isCreate)
- throws GitBlitException {
- gitblitManager.updateUserModel(username, user, isCreate);
- }
-
- @Override
- public List<RepositoryUrl> getRepositoryUrls(HttpServletRequest request, UserModel user, RepositoryModel repository) {
- return gitblitManager.getRepositoryUrls(request, user, repository);
- }
-
- @Override
- public Collection<GitClientApplication> getClientApplications() {
- return gitblitManager.getClientApplications();
+ @Provides @Singleton RedisTicketService provideRedisTicketService() {
+ return new RedisTicketService(
+ runtimeManager,
+ notificationManager,
+ userManager,
+ repositoryManager);
+ }
}
}
--
Gitblit v1.9.1