From 32539684194f55a76ec171852f582bdafa4c5631 Mon Sep 17 00:00:00 2001 From: James Moger Date: Tue, 19 Nov 2013 16:11:29 -0500 Subject: Create a Gitblit aggregate manager delegate for git upload/receive tasks Change-Id: I2c4a5ddf051f228c0bd949c6cd4fd44c3da81d26 --- src/main/java/com/gitblit/git/GitDaemon.java | 19 +++++--------- src/main/java/com/gitblit/git/GitServlet.java | 30 +++++----------------- .../java/com/gitblit/git/GitblitReceivePack.java | 23 ++++++++--------- .../com/gitblit/git/GitblitReceivePackFactory.java | 29 ++++++--------------- .../java/com/gitblit/git/RepositoryResolver.java | 21 +++++---------- 5 files changed, 38 insertions(+), 84 deletions(-) (limited to 'src/main/java/com/gitblit/git') diff --git a/src/main/java/com/gitblit/git/GitDaemon.java b/src/main/java/com/gitblit/git/GitDaemon.java index 40cbe704..a7e7cd55 100644 --- a/src/main/java/com/gitblit/git/GitDaemon.java +++ b/src/main/java/com/gitblit/git/GitDaemon.java @@ -67,12 +67,9 @@ import org.eclipse.jgit.transport.resolver.UploadPackFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.gitblit.Gitblit; import com.gitblit.IStoredSettings; import com.gitblit.Keys; -import com.gitblit.manager.IRepositoryManager; -import com.gitblit.manager.IRuntimeManager; -import com.gitblit.manager.ISessionManager; -import com.gitblit.manager.IUserManager; import com.gitblit.utils.StringUtils; /** @@ -111,13 +108,9 @@ public class GitDaemon { private ReceivePackFactory receivePackFactory; - public GitDaemon( - IRuntimeManager runtimeManager, - IUserManager userManager, - ISessionManager sessionManager, - IRepositoryManager repositoryManager) { + public GitDaemon(Gitblit gitblit) { - IStoredSettings settings = runtimeManager.getSettings(); + IStoredSettings settings = gitblit.getSettings(); int port = settings.getInteger(Keys.git.daemonPort, 0); String bindInterface = settings.getString(Keys.git.daemonBindInterface, "localhost"); @@ -127,9 +120,9 @@ public class GitDaemon { myAddress = new InetSocketAddress(bindInterface, port); } - repositoryResolver = new RepositoryResolver(sessionManager, repositoryManager); - uploadPackFactory = new GitblitUploadPackFactory(sessionManager); - receivePackFactory = new GitblitReceivePackFactory(runtimeManager, userManager, repositoryManager); + repositoryResolver = new RepositoryResolver(gitblit); + uploadPackFactory = new GitblitUploadPackFactory(gitblit); + receivePackFactory = new GitblitReceivePackFactory(gitblit); run = new AtomicBoolean(false); processors = new ThreadGroup("Git-Daemon"); diff --git a/src/main/java/com/gitblit/git/GitServlet.java b/src/main/java/com/gitblit/git/GitServlet.java index e4719d9b..35470a29 100644 --- a/src/main/java/com/gitblit/git/GitServlet.java +++ b/src/main/java/com/gitblit/git/GitServlet.java @@ -21,10 +21,7 @@ import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; -import com.gitblit.manager.IRepositoryManager; -import com.gitblit.manager.IRuntimeManager; -import com.gitblit.manager.ISessionManager; -import com.gitblit.manager.IUserManager; +import com.gitblit.Gitblit; /** * The GitServlet provides http/https access to Git repositories. @@ -38,32 +35,19 @@ public class GitServlet extends org.eclipse.jgit.http.server.GitServlet { private static final long serialVersionUID = 1L; - private final IRuntimeManager runtimeManager; - - private final IUserManager userManager; - - private final ISessionManager sessionManager; - - private final IRepositoryManager repositoryManager; + private final Gitblit gitblit; @Inject - public GitServlet( - IRuntimeManager runtimeManager, - IUserManager userManager, - ISessionManager sessionManager, - IRepositoryManager repositoryManager) { + public GitServlet(Gitblit gitblit) { super(); - this.runtimeManager = runtimeManager; - this.userManager = userManager; - this.sessionManager = sessionManager; - this.repositoryManager = repositoryManager; + this.gitblit = gitblit; } @Override public void init(ServletConfig config) throws ServletException { - setRepositoryResolver(new RepositoryResolver(sessionManager, repositoryManager)); - setUploadPackFactory(new GitblitUploadPackFactory(sessionManager)); - setReceivePackFactory(new GitblitReceivePackFactory(runtimeManager, userManager, repositoryManager)); + setRepositoryResolver(new RepositoryResolver(gitblit)); + setUploadPackFactory(new GitblitUploadPackFactory(gitblit)); + setReceivePackFactory(new GitblitReceivePackFactory(gitblit)); super.init(config); } } diff --git a/src/main/java/com/gitblit/git/GitblitReceivePack.java b/src/main/java/com/gitblit/git/GitblitReceivePack.java index 44e2bef5..cc1490e6 100644 --- a/src/main/java/com/gitblit/git/GitblitReceivePack.java +++ b/src/main/java/com/gitblit/git/GitblitReceivePack.java @@ -44,12 +44,10 @@ import org.slf4j.LoggerFactory; import com.gitblit.Constants; import com.gitblit.Constants.AccessRestrictionType; -import com.gitblit.GitBlit; +import com.gitblit.Gitblit; import com.gitblit.IStoredSettings; import com.gitblit.Keys; import com.gitblit.client.Translation; -import com.gitblit.manager.IRepositoryManager; -import com.gitblit.manager.IRuntimeManager; import com.gitblit.models.RepositoryModel; import com.gitblit.models.UserModel; import com.gitblit.utils.ArrayUtils; @@ -93,24 +91,23 @@ public class GitblitReceivePack extends ReceivePack implements PreReceiveHook, P private final IStoredSettings settings; - private final IRepositoryManager repositoryManager; + private final Gitblit gitblit; public GitblitReceivePack( - IRuntimeManager runtimeManager, - IRepositoryManager repositoryManager, + Gitblit gitblit, Repository db, RepositoryModel repository, UserModel user) { super(db); - this.settings = runtimeManager.getSettings(); - this.repositoryManager = repositoryManager; + this.settings = gitblit.getSettings(); + this.gitblit = gitblit; this.repository = repository; this.user = user == null ? UserModel.ANONYMOUS : user; - this.groovyDir = repositoryManager.getHooksFolder(); + this.groovyDir = gitblit.getHooksFolder(); try { // set Grape root - File grapeRoot = repositoryManager.getGrapesFolder(); + File grapeRoot = gitblit.getGrapesFolder(); grapeRoot.mkdirs(); System.setProperty("grape.root", grapeRoot.getAbsolutePath()); this.gse = new GroovyScriptEngine(groovyDir.getAbsolutePath()); @@ -249,7 +246,7 @@ public class GitblitReceivePack extends ReceivePack implements PreReceiveHook, P } Set scripts = new LinkedHashSet(); - scripts.addAll(repositoryManager.getPreReceiveScriptsInherited(repository)); + scripts.addAll(gitblit.getPreReceiveScriptsInherited(repository)); if (!ArrayUtils.isEmpty(repository.preReceiveScripts)) { scripts.addAll(repository.preReceiveScripts); } @@ -344,7 +341,7 @@ public class GitblitReceivePack extends ReceivePack implements PreReceiveHook, P // run Groovy hook scripts Set scripts = new LinkedHashSet(); - scripts.addAll(repositoryManager.getPostReceiveScriptsInherited(repository)); + scripts.addAll(gitblit.getPostReceiveScriptsInherited(repository)); if (!ArrayUtils.isEmpty(repository.postReceiveScripts)) { scripts.addAll(repository.postReceiveScripts); } @@ -459,7 +456,7 @@ public class GitblitReceivePack extends ReceivePack implements PreReceiveHook, P } Binding binding = new Binding(); - binding.setVariable("gitblit", GitBlit.self()); + binding.setVariable("gitblit", gitblit); binding.setVariable("repository", repository); binding.setVariable("receivePack", this); binding.setVariable("user", user); diff --git a/src/main/java/com/gitblit/git/GitblitReceivePackFactory.java b/src/main/java/com/gitblit/git/GitblitReceivePackFactory.java index 2cdb9856..71a8e68b 100644 --- a/src/main/java/com/gitblit/git/GitblitReceivePackFactory.java +++ b/src/main/java/com/gitblit/git/GitblitReceivePackFactory.java @@ -26,11 +26,9 @@ import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.gitblit.Gitblit; import com.gitblit.IStoredSettings; import com.gitblit.Keys; -import com.gitblit.manager.IRepositoryManager; -import com.gitblit.manager.IRuntimeManager; -import com.gitblit.manager.IUserManager; import com.gitblit.models.RepositoryModel; import com.gitblit.models.UserModel; import com.gitblit.utils.HttpUtils; @@ -49,23 +47,12 @@ public class GitblitReceivePackFactory implements ReceivePackFactory { private final IStoredSettings settings; - private final IRuntimeManager runtimeManager; - - private final IUserManager userManager; - - private final IRepositoryManager repositoryManager; - - public GitblitReceivePackFactory( - IRuntimeManager runtimeManager, - IUserManager userManager, - IRepositoryManager repositoryManager) { + private final Gitblit gitblit; + public GitblitReceivePackFactory(Gitblit gitblit) { super(); - this.settings = runtimeManager.getSettings(); - this.runtimeManager = runtimeManager; - this.userManager = userManager; - this.repositoryManager = repositoryManager; - + this.settings = gitblit.getSettings(); + this.gitblit = gitblit; } @Override @@ -90,7 +77,7 @@ public class GitblitReceivePackFactory implements ReceivePackFactory { // determine pushing user String username = request.getRemoteUser(); if (!StringUtils.isEmpty(username)) { - UserModel u = userManager.getUserModel(username); + UserModel u = gitblit.getUserModel(username); if (u != null) { user = u; } @@ -111,9 +98,9 @@ public class GitblitReceivePackFactory implements ReceivePackFactory { throw new ServiceNotEnabledException(); } - final RepositoryModel repository = repositoryManager.getRepositoryModel(repositoryName); + final RepositoryModel repository = gitblit.getRepositoryModel(repositoryName); - final GitblitReceivePack rp = new GitblitReceivePack(runtimeManager, repositoryManager, db, repository, user); + final GitblitReceivePack rp = new GitblitReceivePack(gitblit, db, repository, user); rp.setGitblitUrl(gitblitUrl); rp.setRepositoryUrl(repositoryUrl); rp.setRefLogIdent(new PersonIdent(user.username, user.username + "@" + origin)); diff --git a/src/main/java/com/gitblit/git/RepositoryResolver.java b/src/main/java/com/gitblit/git/RepositoryResolver.java index 87795c07..39d1f396 100644 --- a/src/main/java/com/gitblit/git/RepositoryResolver.java +++ b/src/main/java/com/gitblit/git/RepositoryResolver.java @@ -27,8 +27,7 @@ import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.gitblit.manager.IRepositoryManager; -import com.gitblit.manager.ISessionManager; +import com.gitblit.Gitblit; import com.gitblit.models.RepositoryModel; import com.gitblit.models.UserModel; @@ -42,17 +41,11 @@ public class RepositoryResolver extends FileResolver { private final Logger logger = LoggerFactory.getLogger(RepositoryResolver.class); - private final ISessionManager sessionManager; + private final Gitblit gitblit; - private final IRepositoryManager repositoryManager; - - public RepositoryResolver( - ISessionManager sessionManager, - IRepositoryManager repositoryManager) { - - super(repositoryManager.getRepositoriesFolder(), true); - this.sessionManager = sessionManager; - this.repositoryManager = repositoryManager; + public RepositoryResolver(Gitblit gitblit) { + super(gitblit.getRepositoriesFolder(), true); + this.gitblit = gitblit; } /** @@ -83,7 +76,7 @@ public class RepositoryResolver extends FileResolver { */ @Override protected boolean isExportOk(X req, String repositoryName, Repository db) throws IOException { - RepositoryModel model = repositoryManager.getRepositoryModel(repositoryName); + RepositoryModel model = gitblit.getRepositoryModel(repositoryName); String scheme = null; UserModel user = null; @@ -101,7 +94,7 @@ public class RepositoryResolver extends FileResolver { HttpServletRequest httpRequest = (HttpServletRequest) req; scheme = httpRequest.getScheme(); origin = httpRequest.getRemoteAddr(); - user = sessionManager.authenticate(httpRequest); + user = gitblit.authenticate(httpRequest); if (user == null) { user = UserModel.ANONYMOUS; } -- cgit v1.2.3