You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DaggerModule.java 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. /*
  2. * Copyright 2013 gitblit.com.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package com.gitblit;
  17. import javax.inject.Singleton;
  18. import org.apache.wicket.protocol.http.WebApplication;
  19. import com.gitblit.git.GitServlet;
  20. import com.gitblit.manager.AuthenticationManager;
  21. import com.gitblit.manager.FederationManager;
  22. import com.gitblit.manager.GitblitManager;
  23. import com.gitblit.manager.IAuthenticationManager;
  24. import com.gitblit.manager.IFederationManager;
  25. import com.gitblit.manager.IGitblitManager;
  26. import com.gitblit.manager.INotificationManager;
  27. import com.gitblit.manager.IProjectManager;
  28. import com.gitblit.manager.IRepositoryManager;
  29. import com.gitblit.manager.IRuntimeManager;
  30. import com.gitblit.manager.IServicesManager;
  31. import com.gitblit.manager.IUserManager;
  32. import com.gitblit.manager.NotificationManager;
  33. import com.gitblit.manager.ProjectManager;
  34. import com.gitblit.manager.RepositoryManager;
  35. import com.gitblit.manager.RuntimeManager;
  36. import com.gitblit.manager.ServicesManager;
  37. import com.gitblit.manager.UserManager;
  38. import com.gitblit.servlet.BranchGraphServlet;
  39. import com.gitblit.servlet.DownloadZipFilter;
  40. import com.gitblit.servlet.DownloadZipServlet;
  41. import com.gitblit.servlet.EnforceAuthenticationFilter;
  42. import com.gitblit.servlet.FederationServlet;
  43. import com.gitblit.servlet.GitFilter;
  44. import com.gitblit.servlet.LogoServlet;
  45. import com.gitblit.servlet.PagesFilter;
  46. import com.gitblit.servlet.PagesServlet;
  47. import com.gitblit.servlet.RobotsTxtServlet;
  48. import com.gitblit.servlet.RpcFilter;
  49. import com.gitblit.servlet.RpcServlet;
  50. import com.gitblit.servlet.SparkleShareInviteServlet;
  51. import com.gitblit.servlet.SyndicationFilter;
  52. import com.gitblit.servlet.SyndicationServlet;
  53. import com.gitblit.wicket.GitBlitWebApp;
  54. import com.gitblit.wicket.GitblitWicketFilter;
  55. import dagger.Module;
  56. import dagger.Provides;
  57. /**
  58. * DaggerModule references all injectable objects.
  59. *
  60. * @author James Moger
  61. *
  62. */
  63. @Module(
  64. library = true,
  65. injects = {
  66. IStoredSettings.class,
  67. // core managers
  68. IRuntimeManager.class,
  69. INotificationManager.class,
  70. IUserManager.class,
  71. IAuthenticationManager.class,
  72. IRepositoryManager.class,
  73. IProjectManager.class,
  74. IGitblitManager.class,
  75. IFederationManager.class,
  76. IServicesManager.class,
  77. // the monolithic manager
  78. GitBlit.class,
  79. // filters & servlets
  80. GitServlet.class,
  81. GitFilter.class,
  82. PagesServlet.class,
  83. PagesFilter.class,
  84. RpcServlet.class,
  85. RpcFilter.class,
  86. DownloadZipServlet.class,
  87. DownloadZipFilter.class,
  88. SyndicationServlet.class,
  89. SyndicationFilter.class,
  90. FederationServlet.class,
  91. SparkleShareInviteServlet.class,
  92. BranchGraphServlet.class,
  93. RobotsTxtServlet.class,
  94. LogoServlet.class,
  95. EnforceAuthenticationFilter.class,
  96. GitblitWicketFilter.class
  97. }
  98. )
  99. public class DaggerModule {
  100. @Provides @Singleton IStoredSettings provideSettings() {
  101. return new FileSettings();
  102. }
  103. @Provides @Singleton IRuntimeManager provideRuntimeManager(IStoredSettings settings) {
  104. return new RuntimeManager(settings);
  105. }
  106. @Provides @Singleton INotificationManager provideNotificationManager(IStoredSettings settings) {
  107. return new NotificationManager(settings);
  108. }
  109. @Provides @Singleton IUserManager provideUserManager(IRuntimeManager runtimeManager) {
  110. return new UserManager(runtimeManager);
  111. }
  112. @Provides @Singleton IAuthenticationManager provideAuthenticationManager(
  113. IRuntimeManager runtimeManager,
  114. IUserManager userManager) {
  115. return new AuthenticationManager(
  116. runtimeManager,
  117. userManager);
  118. }
  119. @Provides @Singleton IRepositoryManager provideRepositoryManager(
  120. IRuntimeManager runtimeManager,
  121. IUserManager userManager) {
  122. return new RepositoryManager(
  123. runtimeManager,
  124. userManager);
  125. }
  126. @Provides @Singleton IProjectManager provideProjectManager(
  127. IRuntimeManager runtimeManager,
  128. IUserManager userManager,
  129. IRepositoryManager repositoryManager) {
  130. return new ProjectManager(
  131. runtimeManager,
  132. userManager,
  133. repositoryManager);
  134. }
  135. @Provides @Singleton IFederationManager provideFederationManager(
  136. IRuntimeManager runtimeManager,
  137. INotificationManager notificationManager,
  138. IUserManager userManager,
  139. IRepositoryManager repositoryManager) {
  140. return new FederationManager(
  141. runtimeManager,
  142. notificationManager,
  143. userManager,
  144. repositoryManager);
  145. }
  146. @Provides @Singleton IGitblitManager provideGitblitManager(
  147. IRuntimeManager runtimeManager,
  148. IUserManager userManager,
  149. IRepositoryManager repositoryManager) {
  150. return new GitblitManager(
  151. runtimeManager,
  152. userManager,
  153. repositoryManager);
  154. }
  155. @Provides @Singleton GitBlit provideGitblit(
  156. IRuntimeManager runtimeManager,
  157. INotificationManager notificationManager,
  158. IUserManager userManager,
  159. IAuthenticationManager authenticationManager,
  160. IRepositoryManager repositoryManager,
  161. IProjectManager projectManager,
  162. IGitblitManager gitblitManager,
  163. IFederationManager federationManager) {
  164. return new GitBlit(
  165. runtimeManager,
  166. notificationManager,
  167. userManager,
  168. authenticationManager,
  169. repositoryManager,
  170. projectManager,
  171. gitblitManager,
  172. federationManager);
  173. }
  174. @Provides @Singleton IServicesManager provideServicesManager(GitBlit gitblit) {
  175. return new ServicesManager(gitblit);
  176. }
  177. @Provides @Singleton WebApplication provideWebApplication(
  178. IRuntimeManager runtimeManager,
  179. INotificationManager notificationManager,
  180. IUserManager userManager,
  181. IAuthenticationManager authenticationManager,
  182. IRepositoryManager repositoryManager,
  183. IProjectManager projectManager,
  184. IGitblitManager gitblitManager,
  185. IFederationManager federationManager) {
  186. return new GitBlitWebApp(
  187. runtimeManager,
  188. notificationManager,
  189. userManager,
  190. authenticationManager,
  191. repositoryManager,
  192. projectManager,
  193. gitblitManager,
  194. federationManager);
  195. }
  196. }