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 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  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 com.gitblit.manager.AuthenticationManager;
  19. import com.gitblit.manager.FederationManager;
  20. import com.gitblit.manager.IAuthenticationManager;
  21. import com.gitblit.manager.IFederationManager;
  22. import com.gitblit.manager.IGitblit;
  23. import com.gitblit.manager.INotificationManager;
  24. import com.gitblit.manager.IProjectManager;
  25. import com.gitblit.manager.IRepositoryManager;
  26. import com.gitblit.manager.IRuntimeManager;
  27. import com.gitblit.manager.IUserManager;
  28. import com.gitblit.manager.NotificationManager;
  29. import com.gitblit.manager.ProjectManager;
  30. import com.gitblit.manager.RepositoryManager;
  31. import com.gitblit.manager.RuntimeManager;
  32. import com.gitblit.manager.UserManager;
  33. import com.gitblit.wicket.GitBlitWebApp;
  34. import dagger.Module;
  35. import dagger.Provides;
  36. /**
  37. * DaggerModule references all injectable objects.
  38. *
  39. * @author James Moger
  40. *
  41. */
  42. @Module(
  43. library = true,
  44. injects = {
  45. IStoredSettings.class,
  46. // core managers
  47. IRuntimeManager.class,
  48. INotificationManager.class,
  49. IUserManager.class,
  50. IAuthenticationManager.class,
  51. IRepositoryManager.class,
  52. IProjectManager.class,
  53. IFederationManager.class,
  54. // the monolithic manager
  55. IGitblit.class,
  56. // the Gitblit Wicket app
  57. GitBlitWebApp.class
  58. }
  59. )
  60. public class DaggerModule {
  61. @Provides @Singleton IStoredSettings provideSettings() {
  62. return new FileSettings();
  63. }
  64. @Provides @Singleton IRuntimeManager provideRuntimeManager(IStoredSettings settings) {
  65. return new RuntimeManager(settings);
  66. }
  67. @Provides @Singleton INotificationManager provideNotificationManager(IStoredSettings settings) {
  68. return new NotificationManager(settings);
  69. }
  70. @Provides @Singleton IUserManager provideUserManager(IRuntimeManager runtimeManager) {
  71. return new UserManager(runtimeManager);
  72. }
  73. @Provides @Singleton IAuthenticationManager provideAuthenticationManager(
  74. IRuntimeManager runtimeManager,
  75. IUserManager userManager) {
  76. return new AuthenticationManager(
  77. runtimeManager,
  78. userManager);
  79. }
  80. @Provides @Singleton IRepositoryManager provideRepositoryManager(
  81. IRuntimeManager runtimeManager,
  82. IUserManager userManager) {
  83. return new RepositoryManager(
  84. runtimeManager,
  85. userManager);
  86. }
  87. @Provides @Singleton IProjectManager provideProjectManager(
  88. IRuntimeManager runtimeManager,
  89. IUserManager userManager,
  90. IRepositoryManager repositoryManager) {
  91. return new ProjectManager(
  92. runtimeManager,
  93. userManager,
  94. repositoryManager);
  95. }
  96. @Provides @Singleton IFederationManager provideFederationManager(
  97. IRuntimeManager runtimeManager,
  98. INotificationManager notificationManager,
  99. IRepositoryManager repositoryManager) {
  100. return new FederationManager(
  101. runtimeManager,
  102. notificationManager,
  103. repositoryManager);
  104. }
  105. @Provides @Singleton IGitblit provideGitblit(
  106. IRuntimeManager runtimeManager,
  107. INotificationManager notificationManager,
  108. IUserManager userManager,
  109. IAuthenticationManager authenticationManager,
  110. IRepositoryManager repositoryManager,
  111. IProjectManager projectManager,
  112. IFederationManager federationManager) {
  113. return new GitBlit(
  114. runtimeManager,
  115. notificationManager,
  116. userManager,
  117. authenticationManager,
  118. repositoryManager,
  119. projectManager,
  120. federationManager);
  121. }
  122. @Provides @Singleton GitBlitWebApp provideWebApplication(
  123. IRuntimeManager runtimeManager,
  124. INotificationManager notificationManager,
  125. IUserManager userManager,
  126. IAuthenticationManager authenticationManager,
  127. IRepositoryManager repositoryManager,
  128. IProjectManager projectManager,
  129. IFederationManager federationManager,
  130. IGitblit gitblit) {
  131. return new GitBlitWebApp(
  132. runtimeManager,
  133. notificationManager,
  134. userManager,
  135. authenticationManager,
  136. repositoryManager,
  137. projectManager,
  138. federationManager,
  139. gitblit);
  140. }
  141. }