From db4f6b5740c6ea45d9e2209dc569bc18904a8b4d Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 26 Nov 2013 16:07:04 -0500 Subject: [PATCH] Define manager interfaces and update all of Gitblit to use managers --- src/main/java/com/gitblit/FederationPullExecutor.java | 44 +++++++++++++++++++++++++++----------------- 1 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/gitblit/FederationPullExecutor.java b/src/main/java/com/gitblit/FederationPullExecutor.java index 831c7a5..e9a604d 100644 --- a/src/main/java/com/gitblit/FederationPullExecutor.java +++ b/src/main/java/com/gitblit/FederationPullExecutor.java @@ -46,6 +46,11 @@ import com.gitblit.Constants.FederationPullStatus; import com.gitblit.Constants.FederationStrategy; import com.gitblit.GitBlitException.ForbiddenException; +import com.gitblit.manager.IGitblitManager; +import com.gitblit.manager.INotificationManager; +import com.gitblit.manager.IRepositoryManager; +import com.gitblit.manager.IRuntimeManager; +import com.gitblit.manager.IUserManager; import com.gitblit.models.FederationModel; import com.gitblit.models.RefModel; import com.gitblit.models.RepositoryModel; @@ -116,7 +121,8 @@ if (registration.notifyOnError) { String message = "Federation pull of " + registration.name + " @ " + registration.url + " is now at " + is.name(); - GitBlit.self() + INotificationManager mailManager = GitBlit.getManager(INotificationManager.class); + mailManager .sendMailToAdministrators( "Pull Status of " + registration.name + " is " + is.name(), message); @@ -153,7 +159,8 @@ c, registrationFolder, registration.name)); return; } - File repositoriesFolder = GitBlit.getRepositoriesFolder(); + IRepositoryManager repositoryManager = GitBlit.getManager(IRepositoryManager.class); + File repositoriesFolder = repositoryManager.getRepositoriesFolder(); File registrationFolderFile = new File(repositoriesFolder, registrationFolder); registrationFolderFile.mkdirs(); @@ -193,9 +200,9 @@ // confirm that the origin of any pre-existing repository matches // the clone url String fetchHead = null; - Repository existingRepository = GitBlit.self().getRepository(repositoryName); + Repository existingRepository = repositoryManager.getRepository(repositoryName); - if (existingRepository == null && GitBlit.self().isCollectingGarbage(repositoryName)) { + if (existingRepository == null && repositoryManager.isCollectingGarbage(repositoryName)) { logger.warn(MessageFormat.format("Skipping local repository {0}, busy collecting garbage", repositoryName)); continue; } @@ -227,8 +234,8 @@ CloneResult result = JGitUtils.cloneRepository(registrationFolderFile, repository.name, cloneUrl, registration.bare, credentials); - Repository r = GitBlit.self().getRepository(repositoryName); - RepositoryModel rm = GitBlit.self().getRepositoryModel(repositoryName); + Repository r = repositoryManager.getRepository(repositoryName); + RepositoryModel rm = repositoryManager.getRepositoryModel(repositoryName); repository.isFrozen = registration.mirror; if (result.createdRepository) { // default local settings @@ -316,10 +323,12 @@ // "federated" repositories. repository.isFederated = cloneUrl.startsWith(registration.url); - GitBlit.self().updateConfiguration(r, repository); + repositoryManager.updateConfiguration(r, repository); r.close(); } + IUserManager userManager = GitBlit.getManager(IUserManager.class); + IGitblitManager gitblitManager = GitBlit.getManager(IGitblitManager.class); IUserService userService = null; try { @@ -359,10 +368,10 @@ } // insert new user or update local user - UserModel localUser = GitBlit.self().getUserModel(user.username); + UserModel localUser = userManager.getUserModel(user.username); if (localUser == null) { // create new local user - GitBlit.self().updateUserModel(user.username, user, true); + gitblitManager.updateUserModel(user.username, user, true); } else { // update repository permissions of local user if (user.permissions != null) { @@ -379,19 +388,19 @@ } localUser.password = user.password; localUser.canAdmin = user.canAdmin; - GitBlit.self().updateUserModel(localUser.username, localUser, false); + gitblitManager.updateUserModel(localUser.username, localUser, false); } - for (String teamname : GitBlit.self().getAllTeamnames()) { - TeamModel team = GitBlit.self().getTeamModel(teamname); + for (String teamname : userManager.getAllTeamNames()) { + TeamModel team = userManager.getTeamModel(teamname); if (user.isTeamMember(teamname) && !team.hasUser(user.username)) { // new team member team.addUser(user.username); - GitBlit.self().updateTeamModel(teamname, team, false); + userManager.updateTeamModel(teamname, team); } else if (!user.isTeamMember(teamname) && team.hasUser(user.username)) { // remove team member team.removeUser(user.username); - GitBlit.self().updateTeamModel(teamname, team, false); + userManager.updateTeamModel(teamname, team); } // update team repositories @@ -402,11 +411,11 @@ for (Map.Entry<String, AccessPermission> entry : remoteTeam.permissions.entrySet()){ team.setRepositoryPermission(entry.getKey(), entry.getValue()); } - GitBlit.self().updateTeamModel(teamname, team, false); + userManager.updateTeamModel(teamname, team); } else if(!ArrayUtils.isEmpty(remoteTeam.repositories)) { // pulling from <= 1.1 team.addRepositoryPermissions(remoteTeam.repositories); - GitBlit.self().updateTeamModel(teamname, team, false); + userManager.updateTeamModel(teamname, team); } } } @@ -497,7 +506,8 @@ return; } InetAddress addr = InetAddress.getLocalHost(); - String federationName = GitBlit.getString(Keys.federation.name, null); + IStoredSettings settings = GitBlit.getManager(IRuntimeManager.class).getSettings(); + String federationName = settings.getString(Keys.federation.name, null); if (StringUtils.isEmpty(federationName)) { federationName = addr.getHostName(); } -- Gitblit v1.9.1