From 17e2d3407065a7433c7512c37a7cf7e7df63f337 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 03 Jul 2014 16:20:37 -0400 Subject: [PATCH] Return of Servlet3 servlet and filter loading --- src/main/java/com/gitblit/DaggerModule.java | 478 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 443 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/gitblit/DaggerModule.java b/src/main/java/com/gitblit/DaggerModule.java index 7ee8ecd..aa10198 100644 --- a/src/main/java/com/gitblit/DaggerModule.java +++ b/src/main/java/com/gitblit/DaggerModule.java @@ -17,17 +17,48 @@ import javax.inject.Singleton; -import org.apache.wicket.protocol.http.WebApplication; - -import com.gitblit.git.GitServlet; +import com.gitblit.manager.AuthenticationManager; +import com.gitblit.manager.FederationManager; +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.IPluginManager; import com.gitblit.manager.IProjectManager; import com.gitblit.manager.IRepositoryManager; import com.gitblit.manager.IRuntimeManager; -import com.gitblit.manager.ISessionManager; import com.gitblit.manager.IUserManager; +import com.gitblit.manager.NotificationManager; +import com.gitblit.manager.PluginManager; +import com.gitblit.manager.ProjectManager; +import com.gitblit.manager.RepositoryManager; +import com.gitblit.manager.RuntimeManager; +import com.gitblit.manager.UserManager; +import com.gitblit.servlet.BranchGraphServlet; +import com.gitblit.servlet.DownloadZipFilter; +import com.gitblit.servlet.DownloadZipServlet; +import com.gitblit.servlet.EnforceAuthenticationFilter; +import com.gitblit.servlet.FederationServlet; +import com.gitblit.servlet.GitFilter; +import com.gitblit.servlet.GitServlet; +import com.gitblit.servlet.LogoServlet; +import com.gitblit.servlet.PagesFilter; +import com.gitblit.servlet.PagesServlet; +import com.gitblit.servlet.ProxyFilter; +import com.gitblit.servlet.PtServlet; +import com.gitblit.servlet.RawFilter; +import com.gitblit.servlet.RawServlet; +import com.gitblit.servlet.RobotsTxtServlet; +import com.gitblit.servlet.RpcFilter; +import com.gitblit.servlet.RpcServlet; +import com.gitblit.servlet.SparkleShareInviteServlet; +import com.gitblit.servlet.SyndicationFilter; +import com.gitblit.servlet.SyndicationServlet; +import com.gitblit.transport.ssh.FileKeyManager; +import com.gitblit.transport.ssh.IPublicKeyManager; +import com.gitblit.transport.ssh.MemoryKeyManager; +import com.gitblit.transport.ssh.NullKeyManager; +import com.gitblit.utils.StringUtils; import com.gitblit.wicket.GitBlitWebApp; import com.gitblit.wicket.GitblitWicketFilter; @@ -41,20 +72,32 @@ * */ @Module( + library = true, injects = { + IStoredSettings.class, + // core managers IRuntimeManager.class, + IPluginManager.class, INotificationManager.class, IUserManager.class, - ISessionManager.class, + IAuthenticationManager.class, + IPublicKeyManager.class, IRepositoryManager.class, IProjectManager.class, - IGitblitManager.class, IFederationManager.class, + + // the monolithic manager + IGitblit.class, + + // the Gitblit Wicket app + GitBlitWebApp.class, // filters & servlets GitServlet.class, GitFilter.class, + RawServlet.class, + RawFilter.class, PagesServlet.class, PagesFilter.class, RpcServlet.class, @@ -68,69 +111,434 @@ BranchGraphServlet.class, RobotsTxtServlet.class, LogoServlet.class, + PtServlet.class, + ProxyFilter.class, EnforceAuthenticationFilter.class, GitblitWicketFilter.class - } + } ) public class DaggerModule { - final GitBlit gitblit; - - // HACK but necessary for now - public DaggerModule(GitBlit gitblit) { - this.gitblit = gitblit; + @Provides @Singleton IStoredSettings provideSettings() { + return new FileSettings(); } - @Provides @Singleton IRuntimeManager provideRuntimeManager() { - return gitblit; + @Provides @Singleton IRuntimeManager provideRuntimeManager(IStoredSettings settings) { + return new RuntimeManager(settings); } - @Provides @Singleton INotificationManager provideNotificationManager() { - return gitblit; + @Provides @Singleton IPluginManager providePluginManager(IRuntimeManager runtimeManager) { + return new PluginManager(runtimeManager); } - @Provides @Singleton IUserManager provideUserManager() { - return gitblit; + @Provides @Singleton INotificationManager provideNotificationManager(IStoredSettings settings) { + return new NotificationManager(settings); } - @Provides @Singleton ISessionManager provideSessionManager() { - return gitblit; + @Provides @Singleton IUserManager provideUserManager( + IRuntimeManager runtimeManager, + IPluginManager pluginManager) { + + return new UserManager(runtimeManager, pluginManager); } - @Provides @Singleton IRepositoryManager provideRepositoryManager() { - return gitblit; + @Provides @Singleton IAuthenticationManager provideAuthenticationManager( + IRuntimeManager runtimeManager, + IUserManager userManager) { + + return new AuthenticationManager( + runtimeManager, + userManager); } - @Provides @Singleton IProjectManager provideProjectManager() { - return gitblit; + @Provides @Singleton IPublicKeyManager providePublicKeyManager( + IStoredSettings settings, + IRuntimeManager runtimeManager) { + + String clazz = settings.getString(Keys.git.sshKeysManager, FileKeyManager.class.getName()); + if (StringUtils.isEmpty(clazz)) { + clazz = FileKeyManager.class.getName(); + } + if (FileKeyManager.class.getName().equals(clazz)) { + return new FileKeyManager(runtimeManager); + } else if (NullKeyManager.class.getName().equals(clazz)) { + return new NullKeyManager(); + } else if (MemoryKeyManager.class.getName().equals(clazz)) { + return new MemoryKeyManager(); + } else { + try { + Class<?> mgrClass = Class.forName(clazz); + return (IPublicKeyManager) mgrClass.newInstance(); + } catch (Exception e) { + + } + return null; + } } - @Provides @Singleton IGitblitManager provideGitblitManager() { - return gitblit; + @Provides @Singleton IRepositoryManager provideRepositoryManager( + IRuntimeManager runtimeManager, + IPluginManager pluginManager, + IUserManager userManager) { + + return new RepositoryManager( + runtimeManager, + pluginManager, + userManager); } - @Provides @Singleton IFederationManager provideFederationManager() { - return gitblit; + @Provides @Singleton IProjectManager provideProjectManager( + IRuntimeManager runtimeManager, + IUserManager userManager, + IRepositoryManager repositoryManager) { + + return new ProjectManager( + runtimeManager, + userManager, + repositoryManager); } - @Provides @Singleton WebApplication provideWebApplication( + @Provides @Singleton IFederationManager provideFederationManager( IRuntimeManager runtimeManager, INotificationManager notificationManager, + IRepositoryManager repositoryManager) { + + return new FederationManager( + runtimeManager, + notificationManager, + repositoryManager); + } + + @Provides @Singleton IGitblit provideGitblit( + IRuntimeManager runtimeManager, + IPluginManager pluginManager, + INotificationManager notificationManager, IUserManager userManager, - ISessionManager sessionManager, + IAuthenticationManager authenticationManager, + IPublicKeyManager publicKeyManager, IRepositoryManager repositoryManager, IProjectManager projectManager, - IGitblitManager gitblitManager, IFederationManager federationManager) { + + return new GitBlit( + runtimeManager, + pluginManager, + notificationManager, + userManager, + authenticationManager, + publicKeyManager, + repositoryManager, + projectManager, + federationManager); + } + + @Provides @Singleton GitBlitWebApp provideWebApplication( + IRuntimeManager runtimeManager, + IPluginManager pluginManager, + INotificationManager notificationManager, + IUserManager userManager, + IAuthenticationManager authenticationManager, + IPublicKeyManager publicKeyManager, + IRepositoryManager repositoryManager, + IProjectManager projectManager, + IFederationManager federationManager, + IGitblit gitblit) { return new GitBlitWebApp( runtimeManager, + pluginManager, notificationManager, userManager, - sessionManager, + authenticationManager, + publicKeyManager, repositoryManager, projectManager, - gitblitManager, - federationManager); + federationManager, + gitblit); + } +// +// @Provides @Singleton GitblitWicketFilter provideGitblitWicketFilter(GitBlitWebApp webapp) { +// return new GitblitWicketFilter(webapp); +// } +// +// @Provides GitServlet provideGitServlet(IGitblit gitblit) { +// return new GitServlet(gitblit); +// } +// +// @Provides GitFilter provideGitFilter( +// IRuntimeManager runtimeManager, +// IUserManager userManager, +// IAuthenticationManager authenticationManager, +// IRepositoryManager repositoryManager, +// IFederationManager federationManager) { +// +// return new GitFilter( +// runtimeManager, +// userManager, +// authenticationManager, +// repositoryManager, +// federationManager); +// } +// +// @Provides @Singleton PagesServlet providePagesServlet( +// IRuntimeManager runtimeManager, +// IRepositoryManager repositoryManager) { +// +// return new PagesServlet(runtimeManager, repositoryManager); +// } +// +// @Provides @Singleton PagesFilter providePagesFilter( +// IRuntimeManager runtimeManager, +// IAuthenticationManager authenticationManager, +// IRepositoryManager repositoryManager) { +// +// return new PagesFilter( +// runtimeManager, +// authenticationManager, +// repositoryManager); +// } +// +// @Provides @Singleton RpcServlet provideRpcServlet(IGitblit gitblit) { +// return new RpcServlet(gitblit); +// } +// +// @Provides @Singleton RpcFilter provideRpcFilter( +// IRuntimeManager runtimeManager, +// IAuthenticationManager authenticationManager) { +// +// return new RpcFilter(runtimeManager, authenticationManager); +// } +// +// @Provides @Singleton DownloadZipServlet provideDownloadZipServlet( +// IRuntimeManager runtimeManager, +// IRepositoryManager repositoryManager) { +// +// return new DownloadZipServlet(runtimeManager, repositoryManager); +// } +// +// @Provides @Singleton DownloadZipFilter provideDownloadZipFilter( +// IRuntimeManager runtimeManager, +// IAuthenticationManager authenticationManager, +// IRepositoryManager repositoryManager) { +// +// return new DownloadZipFilter( +// runtimeManager, +// authenticationManager, +// repositoryManager); +// } +// +// @Provides @Singleton SyndicationServlet provideSyndicationServlet( +// IRuntimeManager runtimeManager, +// IRepositoryManager repositoryManager, +// IProjectManager projectManager) { +// +// return new SyndicationServlet( +// runtimeManager, +// repositoryManager, +// projectManager); +// } +// +// @Provides @Singleton SyndicationFilter provideSyndicationFilter( +// IRuntimeManager runtimeManager, +// IAuthenticationManager authenticationManager, +// IRepositoryManager repositoryManager, +// IProjectManager projectManager) { +// +// return new SyndicationFilter( +// runtimeManager, +// authenticationManager, +// repositoryManager, +// projectManager); +// } +// +// @Provides @Singleton FederationServlet provideFederationServlet( +// IRuntimeManager runtimeManager, +// IUserManager userManager, +// IRepositoryManager repositoryManager, +// IFederationManager federationManager) { +// +// return new FederationServlet( +// runtimeManager, +// userManager, +// repositoryManager, +// federationManager); +// } +// +// @Provides @Singleton SparkleShareInviteServlet provideSparkleshareInviteServlet( +// IRuntimeManager runtimeManager, +// IUserManager userManager, +// IAuthenticationManager authenticationManager, +// IRepositoryManager repositoryManager) { +// +// return new SparkleShareInviteServlet( +// runtimeManager, +// userManager, +// authenticationManager, +// repositoryManager); +// } +// +// @Provides @Singleton BranchGraphServlet provideBranchGraphServlet( +// IRuntimeManager runtimeManager, +// IRepositoryManager repositoryManager) { +// +// return new BranchGraphServlet(runtimeManager, repositoryManager); +// } +// +// @Provides @Singleton RobotsTxtServlet provideRobotsTxtServlet(IRuntimeManager runtimeManager) { +// return new RobotsTxtServlet(runtimeManager); +// } +// +// @Provides @Singleton LogoServlet provideLogoServlet(IRuntimeManager runtimeManager) { +// return new LogoServlet(runtimeManager); +// } +// +// @Provides @Singleton EnforceAuthenticationFilter provideEnforceAuthenticationFilter( +// IRuntimeManager runtimeManager, +// IAuthenticationManager authenticationManager) { +// +// return new EnforceAuthenticationFilter(runtimeManager, authenticationManager); +// } + + + @Provides @Singleton GitblitWicketFilter provideGitblitWicketFilter(GitBlitWebApp webapp) { + return new GitblitWicketFilter(); + } + + @Provides GitServlet provideGitServlet(IGitblit gitblit) { + return new GitServlet(); + } + + @Provides GitFilter provideGitFilter( + IRuntimeManager runtimeManager, + IUserManager userManager, + IAuthenticationManager authenticationManager, + IRepositoryManager repositoryManager, + IFederationManager federationManager) { + + return new GitFilter(); + } + + @Provides @Singleton RawServlet provideRawServlet( + IRuntimeManager runtimeManager, + IRepositoryManager repositoryManager) { + + return new RawServlet(); + } + + @Provides @Singleton RawFilter provideRawFilter( + IRuntimeManager runtimeManager, + IAuthenticationManager authenticationManager, + IRepositoryManager repositoryManager) { + + return new RawFilter(); + } + + @Provides @Singleton PagesServlet providePagesServlet( + IRuntimeManager runtimeManager, + IRepositoryManager repositoryManager) { + + return new PagesServlet(); + } + + @Provides @Singleton PagesFilter providePagesFilter( + IRuntimeManager runtimeManager, + IAuthenticationManager authenticationManager, + IRepositoryManager repositoryManager) { + + return new PagesFilter(); + } + + @Provides @Singleton RpcServlet provideRpcServlet(IGitblit gitblit) { + return new RpcServlet(); + } + + @Provides @Singleton RpcFilter provideRpcFilter( + IRuntimeManager runtimeManager, + IAuthenticationManager authenticationManager) { + + return new RpcFilter(); + } + + @Provides @Singleton DownloadZipServlet provideDownloadZipServlet( + IRuntimeManager runtimeManager, + IRepositoryManager repositoryManager) { + + return new DownloadZipServlet(); + } + + @Provides @Singleton DownloadZipFilter provideDownloadZipFilter( + IRuntimeManager runtimeManager, + IAuthenticationManager authenticationManager, + IRepositoryManager repositoryManager) { + + return new DownloadZipFilter(); + } + + @Provides @Singleton SyndicationServlet provideSyndicationServlet( + IRuntimeManager runtimeManager, + IRepositoryManager repositoryManager, + IProjectManager projectManager) { + + return new SyndicationServlet(); + } + + @Provides @Singleton SyndicationFilter provideSyndicationFilter( + IRuntimeManager runtimeManager, + IAuthenticationManager authenticationManager, + IRepositoryManager repositoryManager, + IProjectManager projectManager) { + + return new SyndicationFilter(); + } + + @Provides @Singleton FederationServlet provideFederationServlet( + IRuntimeManager runtimeManager, + IUserManager userManager, + IRepositoryManager repositoryManager, + IFederationManager federationManager) { + + return new FederationServlet(); + } + + @Provides @Singleton SparkleShareInviteServlet provideSparkleshareInviteServlet( + IRuntimeManager runtimeManager, + IUserManager userManager, + IAuthenticationManager authenticationManager, + IRepositoryManager repositoryManager) { + + return new SparkleShareInviteServlet(); + } + + @Provides @Singleton BranchGraphServlet provideBranchGraphServlet( + IRuntimeManager runtimeManager, + IRepositoryManager repositoryManager) { + + return new BranchGraphServlet(); + } + + @Provides @Singleton RobotsTxtServlet provideRobotsTxtServlet(IRuntimeManager runtimeManager) { + return new RobotsTxtServlet(); + } + + @Provides @Singleton LogoServlet provideLogoServlet(IRuntimeManager runtimeManager) { + return new LogoServlet(); + } + + @Provides @Singleton PtServlet providePtServlet(IRuntimeManager runtimeManager) { + return new PtServlet(); + } + + @Provides @Singleton ProxyFilter provideProxyFilter( + IRuntimeManager runtimeManager, + IAuthenticationManager authenticationManager) { + + return new ProxyFilter(); + } + + @Provides @Singleton EnforceAuthenticationFilter provideEnforceAuthenticationFilter( + IRuntimeManager runtimeManager, + IAuthenticationManager authenticationManager) { + + return new EnforceAuthenticationFilter(); } } \ No newline at end of file -- Gitblit v1.9.1