James Moger
2015-10-10 a3a18a0ebfeb65777ad5bd065e26fa9c00e8100c
commit | author | age
aa1361 1 /*
JM 2  * Copyright 2014 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.guice;
17
18 import com.gitblit.FileSettings;
19 import com.gitblit.GitBlit;
20 import com.gitblit.IStoredSettings;
21 import com.gitblit.manager.AuthenticationManager;
22 import com.gitblit.manager.FederationManager;
bd0e83 23 import com.gitblit.manager.FilestoreManager;
aa1361 24 import com.gitblit.manager.IAuthenticationManager;
JM 25 import com.gitblit.manager.IFederationManager;
bd0e83 26 import com.gitblit.manager.IFilestoreManager;
aa1361 27 import com.gitblit.manager.IGitblit;
JM 28 import com.gitblit.manager.INotificationManager;
29 import com.gitblit.manager.IPluginManager;
30 import com.gitblit.manager.IProjectManager;
31 import com.gitblit.manager.IRepositoryManager;
32 import com.gitblit.manager.IRuntimeManager;
7d3a31 33 import com.gitblit.manager.IServicesManager;
aa1361 34 import com.gitblit.manager.IUserManager;
JM 35 import com.gitblit.manager.NotificationManager;
36 import com.gitblit.manager.PluginManager;
37 import com.gitblit.manager.ProjectManager;
38 import com.gitblit.manager.RepositoryManager;
39 import com.gitblit.manager.RuntimeManager;
7d3a31 40 import com.gitblit.manager.ServicesManager;
aa1361 41 import com.gitblit.manager.UserManager;
c42032 42 import com.gitblit.tickets.ITicketService;
aa1361 43 import com.gitblit.transport.ssh.IPublicKeyManager;
f7174e 44 import com.gitblit.utils.JSoupXssFilter;
7d3a31 45 import com.gitblit.utils.WorkQueue;
f7174e 46 import com.gitblit.utils.XssFilter;
aa1361 47 import com.google.inject.AbstractModule;
JM 48
49 /**
c828cf 50  * CoreModule references all the core business objects.
aa1361 51  *
JM 52  * @author James Moger
53  *
54  */
c828cf 55 public class CoreModule extends AbstractModule {
aa1361 56
JM 57     @Override
58     protected void configure() {
59
60         bind(IStoredSettings.class).toInstance(new FileSettings());
f7174e 61         bind(XssFilter.class).to(JSoupXssFilter.class);
aa1361 62
7d3a31 63         // bind complex providers
241f57 64         bind(IPublicKeyManager.class).toProvider(IPublicKeyManagerProvider.class);
c42032 65         bind(ITicketService.class).toProvider(ITicketServiceProvider.class);
7d3a31 66         bind(WorkQueue.class).toProvider(WorkQueueProvider.class);
241f57 67
aa1361 68         // core managers
f9980e 69         bind(IRuntimeManager.class).to(RuntimeManager.class);
JM 70         bind(IPluginManager.class).to(PluginManager.class);
71         bind(INotificationManager.class).to(NotificationManager.class);
72         bind(IUserManager.class).to(UserManager.class);
73         bind(IAuthenticationManager.class).to(AuthenticationManager.class);
74         bind(IRepositoryManager.class).to(RepositoryManager.class);
75         bind(IProjectManager.class).to(ProjectManager.class);
76         bind(IFederationManager.class).to(FederationManager.class);
bd0e83 77         bind(IFilestoreManager.class).to(FilestoreManager.class);
aa1361 78
JM 79         // the monolithic manager
f9980e 80         bind(IGitblit.class).to(GitBlit.class);
7d3a31 81
JM 82         // manager for long-running daemons and services
83         bind(IServicesManager.class).to(ServicesManager.class);
aa1361 84     }
JM 85 }