From d65a6baca9a20461f976a2455d70eecc7faf2db5 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] Update to Jetty 8.1.13 for Servlet 3 --- src/main/java/com/gitblit/FederationPullExecutor.java | 64 ++++++++++++++++++------------- 1 files changed, 37 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/gitblit/FederationPullExecutor.java b/src/main/java/com/gitblit/FederationPullExecutor.java index ad1022c..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; @@ -74,7 +79,7 @@ /** * Constructor for specifying a single federation registration. This * constructor is used to schedule the next pull execution. - * + * * @param registration */ private FederationPullExecutor(FederationModel registration) { @@ -85,7 +90,7 @@ * Constructor to specify a group of federation registrations. This is * normally used at startup to pull and then schedule the next update based * on each registrations frequency setting. - * + * * @param registrations * @param isDaemon * if true, registrations are rescheduled in perpetuity. if @@ -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); @@ -137,7 +143,7 @@ /** * Mirrors a repository and, optionally, the server's users, and/or * configuration settings from a origin Gitblit instance. - * + * * @param registration * @throws Exception */ @@ -153,7 +159,8 @@ c, registrationFolder, registration.name)); return; } - File repositoriesFolder = new File(GitBlit.getString(Keys.git.repositoriesFolder, "git")); + IRepositoryManager repositoryManager = GitBlit.getManager(IRepositoryManager.class); + File repositoriesFolder = repositoryManager.getRepositoriesFolder(); File registrationFolderFile = new File(repositoriesFolder, registrationFolder); registrationFolderFile.mkdirs(); @@ -189,13 +196,13 @@ repositoryName.indexOf(DOT_GIT_EXT)); } } - + // confirm that the origin of any pre-existing repository matches // the clone url String fetchHead = null; - Repository existingRepository = GitBlit.self().getRepository(repositoryName); - - if (existingRepository == null && GitBlit.self().isCollectingGarbage(repositoryName)) { + Repository existingRepository = repositoryManager.getRepository(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 @@ -253,13 +260,13 @@ String branch = org.eclipse.jgit.lib.Constants.R_HEADS + ref.displayName.substring(ref.displayName.indexOf('/') + 1); String hash = ref.getReferencedObjectId().getName(); - + JGitUtils.setBranchRef(r, branch, hash); logger.info(MessageFormat.format(" resetting {0} of {1} to {2}", branch, repository.name, hash)); } } - + String newHead; if (StringUtils.isEmpty(repository.HEAD)) { newHead = newFetchHead; @@ -298,7 +305,7 @@ federationSets.addAll(repository.federationSets); } repository.federationSets = new ArrayList<String>(federationSets); - + // merge indexed branches Set<String> indexedBranches = new HashSet<String>(); if (rm.indexedBranches != null) { @@ -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); } } } @@ -487,7 +496,7 @@ /** * Sends a status acknowledgment to the origin Gitblit instance. This * includes the results of the federated pull. - * + * * @param registration * @throws Exception */ @@ -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(); } @@ -507,7 +517,7 @@ /** * Schedules the next check of the federated Gitblit instance. - * + * * @param registration */ private void schedule(FederationModel registration) { -- Gitblit v1.9.1