123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754 |
- /*
- * Copyright 2013 gitblit.com.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package com.gitblit;
-
- import java.io.File;
- import java.util.Collection;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import java.util.TimeZone;
-
- 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.manager.IAuthenticationManager;
- import com.gitblit.manager.IFederationManager;
- import com.gitblit.manager.IGitblitManager;
- 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.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;
-
- /**
- * 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.
- *
- * @author James Moger
- *
- */
- public class GitBlit implements IRuntimeManager,
- INotificationManager,
- IUserManager,
- IAuthenticationManager,
- IRepositoryManager,
- IProjectManager,
- IGitblitManager,
- IFederationManager {
-
- private final IRuntimeManager runtimeManager;
-
- private final INotificationManager notificationManager;
-
- private final IUserManager userManager;
-
- private final IAuthenticationManager authenticationManager;
-
- private final IRepositoryManager repositoryManager;
-
- private final IProjectManager projectManager;
-
- private final IGitblitManager gitblitManager;
-
- private final IFederationManager federationManager;
-
- public GitBlit(
- IRuntimeManager runtimeManager,
- INotificationManager notificationManager,
- IUserManager userManager,
- 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;
- }
-
- @Override
- public GitBlit start() {
- return this;
- }
-
- @Override
- public GitBlit stop() {
- return this;
- }
-
- /*
- * ISTOREDSETTINGS
- *
- * these methods are necessary for (nearly) seamless Groovy hook operation
- * after the massive refactor.
- */
-
- public boolean getBoolean(String key, boolean defaultValue) {
- return runtimeManager.getSettings().getBoolean(key, defaultValue);
- }
-
- 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
- */
-
- @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);
- }
-
- @Override
- public void updateConfiguration(Repository r, RepositoryModel repository) {
- repositoryManager.updateConfiguration(r, repository);
- }
-
- @Override
- public boolean deleteRepositoryModel(RepositoryModel model) {
- return repositoryManager.deleteRepositoryModel(model);
- }
-
- @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
- */
-
- @Override
- public List<ProjectModel> getProjectModels(UserModel user, boolean includeUsers) {
- return projectManager.getProjectModels(user, includeUsers);
- }
-
- @Override
- public ProjectModel getProjectModel(String name, UserModel user) {
- return projectManager.getProjectModel(name, user);
- }
-
- @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
- */
-
- @Override
- public File getProposalsFolder() {
- return federationManager.getProposalsFolder();
- }
-
- @Override
- public UserModel getFederationUser() {
- return federationManager.getFederationUser();
- }
-
- @Override
- public boolean canFederate() {
- return federationManager.canFederate();
- }
-
- @Override
- public List<FederationModel> getFederationRegistrations() {
- return federationManager.getFederationRegistrations();
- }
-
- @Override
- public FederationModel getFederationRegistration(String url, String name) {
- return federationManager.getFederationRegistration(url, name);
- }
-
- @Override
- public List<FederationSet> getFederationSets(String gitblitUrl) {
- return federationManager.getFederationSets(gitblitUrl);
- }
-
- @Override
- public List<String> getFederationTokens() {
- return federationManager.getFederationTokens();
- }
-
- @Override
- public String getFederationToken(FederationToken type) {
- return federationManager.getFederationToken(type);
- }
-
- @Override
- public String getFederationToken(String value) {
- return federationManager.getFederationToken(value);
- }
-
- @Override
- public boolean validateFederationRequest(FederationRequest req, String token) {
- return federationManager.validateFederationRequest(req, token);
- }
-
- @Override
- public boolean acknowledgeFederationStatus(String identification, FederationModel registration) {
- return federationManager.acknowledgeFederationStatus(identification, registration);
- }
-
- @Override
- public List<FederationModel> getFederationResultRegistrations() {
- return federationManager.getFederationResultRegistrations();
- }
-
- @Override
- public boolean submitFederationProposal(FederationProposal proposal, String gitblitUrl) {
- return federationManager.submitFederationProposal(proposal, gitblitUrl);
- }
-
- @Override
- public List<FederationProposal> getPendingFederationProposals() {
- return federationManager.getPendingFederationProposals();
- }
-
- @Override
- public Map<String, RepositoryModel> getRepositories(String gitblitUrl, String token) {
- return federationManager.getRepositories(gitblitUrl, token);
- }
-
- @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();
- }
- }
|