blob: b1f00bf6dca54e2fc86625896b9c316a8c89f064 [file] [log] [blame]
// Copyright (C) 2014 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.googlesource.gerrit.plugins.gitblit;
import com.gitblit.AvatarGenerator;
import com.gitblit.GravatarGenerator;
import com.gitblit.IStoredSettings;
import com.gitblit.guice.IPublicKeyManagerProvider;
import com.gitblit.guice.WorkQueueProvider;
import com.gitblit.manager.FederationManager;
import com.gitblit.manager.FilestoreManager;
import com.gitblit.manager.GitblitManager;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.manager.IFederationManager;
import com.gitblit.manager.IFilestoreManager;
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.IServicesManager;
import com.gitblit.manager.IUserManager;
import com.gitblit.manager.NotificationManager;
import com.gitblit.manager.ProjectManager;
import com.gitblit.manager.RepositoryManager;
import com.gitblit.manager.RuntimeManager;
import com.gitblit.manager.ServicesManager;
import com.gitblit.servlet.BranchGraphServlet;
import com.gitblit.servlet.DownloadZipServlet;
import com.gitblit.servlet.LogoServlet;
import com.gitblit.servlet.PagesServlet;
import com.gitblit.servlet.SyndicationServlet;
import com.gitblit.tickets.ITicketService;
import com.gitblit.transport.ssh.IPublicKeyManager;
import com.gitblit.utils.JSoupXssFilter;
import com.gitblit.utils.WorkQueue;
import com.gitblit.utils.XssFilter;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.inject.Inject;
import com.google.inject.servlet.ServletModule;
import com.googlesource.gerrit.plugins.gitblit.app.GitBlitSettings;
import com.googlesource.gerrit.plugins.gitblit.app.ReallyNullTicketService;
import com.googlesource.gerrit.plugins.gitblit.auth.GerritToGitBlitUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class GitBlitServletModule extends ServletModule {
private static final Logger log = LoggerFactory.getLogger(GitBlitServletModule.class);
@Inject
public GitBlitServletModule(@PluginName final String name) {
log.info("Create GitBlitModule with name='" + name);
}
@Override
protected void configureServlets() {
log.info("Configuring Gitblit core services");
bind(IStoredSettings.class).to(GitBlitSettings.class);
bind(XssFilter.class).to(JSoupXssFilter.class);
bind(AvatarGenerator.class).to(GravatarGenerator.class);
// bind complex providers
bind(IPublicKeyManager.class).toProvider(IPublicKeyManagerProvider.class);
bind(ITicketService.class).to(ReallyNullTicketService.class);
bind(WorkQueue.class).toProvider(WorkQueueProvider.class);
// core managers
bind(IRuntimeManager.class).to(RuntimeManager.class);
bind(IPluginManager.class).to(NullPluginManager.class);
bind(INotificationManager.class).to(NotificationManager.class);
bind(IUserManager.class).to(GerritToGitBlitUserService.class);
bind(IAuthenticationManager.class).to(GerritToGitBlitUserService.class);
bind(IRepositoryManager.class).to(RepositoryManager.class);
bind(IProjectManager.class).to(ProjectManager.class);
bind(IFederationManager.class).to(FederationManager.class);
bind(IFilestoreManager.class).to(FilestoreManager.class);
// the monolithic manager
bind(IGitblit.class).to(GitblitManager.class);
// manager for long-running daemons and services
bind(IServicesManager.class).to(ServicesManager.class);
log.info("Configuring Gitblit servlets and filters");
serve("/graph/*").with(BranchGraphServlet.class);
serve("/pages/*").with(PagesServlet.class);
serve("/feed/*").with(SyndicationServlet.class);
serve("/zip/*").with(DownloadZipServlet.class);
serve("/logo.png").with(LogoServlet.class);
serve("/static/logo.png").with(LogoServlet.class);
filter("/*").through(GerritWicketFilter.class);
filter("/pages/*").through(WrappedPagesFilter.class);
filter("/feed/*").through(WrappedSyndicationFilter.class);
}
}