Browse Source

Embrace @Inject for Managers, Servlets, and Filters

tags/v1.7.0
James Moger 10 years ago
parent
commit
1b34b05f5b
36 changed files with 358 additions and 592 deletions
  1. 18
    377
      src/main/java/com/gitblit/DaggerModule.java
  2. 2
    0
      src/main/java/com/gitblit/GitBlit.java
  3. 0
    45
      src/main/java/com/gitblit/dagger/DaggerWicketFilter.java
  4. 2
    0
      src/main/java/com/gitblit/manager/AuthenticationManager.java
  5. 2
    0
      src/main/java/com/gitblit/manager/FederationManager.java
  6. 2
    0
      src/main/java/com/gitblit/manager/NotificationManager.java
  7. 3
    0
      src/main/java/com/gitblit/manager/PluginManager.java
  8. 3
    0
      src/main/java/com/gitblit/manager/ProjectManager.java
  9. 3
    0
      src/main/java/com/gitblit/manager/RepositoryManager.java
  10. 3
    0
      src/main/java/com/gitblit/manager/RuntimeManager.java
  11. 3
    0
      src/main/java/com/gitblit/manager/UserManager.java
  12. 10
    8
      src/main/java/com/gitblit/servlet/AccessRestrictionFilter.java
  13. 11
    6
      src/main/java/com/gitblit/servlet/AuthenticationFilter.java
  14. 13
    12
      src/main/java/com/gitblit/servlet/BranchGraphServlet.java
  15. 16
    0
      src/main/java/com/gitblit/servlet/DownloadZipFilter.java
  16. 9
    8
      src/main/java/com/gitblit/servlet/DownloadZipServlet.java
  17. 19
    15
      src/main/java/com/gitblit/servlet/EnforceAuthenticationFilter.java
  18. 14
    8
      src/main/java/com/gitblit/servlet/FederationServlet.java
  19. 18
    8
      src/main/java/com/gitblit/servlet/GitFilter.java
  20. 8
    10
      src/main/java/com/gitblit/servlet/GitServlet.java
  21. 2
    2
      src/main/java/com/gitblit/servlet/JsonServlet.java
  22. 8
    7
      src/main/java/com/gitblit/servlet/LogoServlet.java
  23. 17
    0
      src/main/java/com/gitblit/servlet/PagesFilter.java
  24. 13
    0
      src/main/java/com/gitblit/servlet/PagesServlet.java
  25. 24
    9
      src/main/java/com/gitblit/servlet/ProxyFilter.java
  26. 8
    7
      src/main/java/com/gitblit/servlet/PtServlet.java
  27. 16
    0
      src/main/java/com/gitblit/servlet/RawFilter.java
  28. 14
    10
      src/main/java/com/gitblit/servlet/RawServlet.java
  29. 8
    7
      src/main/java/com/gitblit/servlet/RobotsTxtServlet.java
  30. 14
    8
      src/main/java/com/gitblit/servlet/RpcFilter.java
  31. 7
    6
      src/main/java/com/gitblit/servlet/RpcServlet.java
  32. 16
    10
      src/main/java/com/gitblit/servlet/SparkleShareInviteServlet.java
  33. 15
    9
      src/main/java/com/gitblit/servlet/SyndicationFilter.java
  34. 15
    9
      src/main/java/com/gitblit/servlet/SyndicationServlet.java
  35. 5
    0
      src/main/java/com/gitblit/wicket/GitBlitWebApp.java
  36. 17
    11
      src/main/java/com/gitblit/wicket/GitblitWicketFilter.java

+ 18
- 377
src/main/java/com/gitblit/DaggerModule.java View File

@@ -72,7 +72,6 @@ import dagger.Provides;
*
*/
@Module(
library = true,
injects = {
IStoredSettings.class,

@@ -123,32 +122,24 @@ public class DaggerModule {
return new FileSettings();
}

@Provides @Singleton IRuntimeManager provideRuntimeManager(IStoredSettings settings) {
return new RuntimeManager(settings);
@Provides @Singleton IRuntimeManager provideRuntimeManager(RuntimeManager manager) {
return manager;
}

@Provides @Singleton IPluginManager providePluginManager(IRuntimeManager runtimeManager) {
return new PluginManager(runtimeManager);
@Provides @Singleton IPluginManager providePluginManager(PluginManager manager) {
return manager;
}

@Provides @Singleton INotificationManager provideNotificationManager(IStoredSettings settings) {
return new NotificationManager(settings);
@Provides @Singleton INotificationManager provideNotificationManager(NotificationManager manager) {
return manager;
}

@Provides @Singleton IUserManager provideUserManager(
IRuntimeManager runtimeManager,
IPluginManager pluginManager) {

return new UserManager(runtimeManager, pluginManager);
@Provides @Singleton IUserManager provideUserManager(UserManager manager) {
return manager;
}

@Provides @Singleton IAuthenticationManager provideAuthenticationManager(
IRuntimeManager runtimeManager,
IUserManager userManager) {

return new AuthenticationManager(
runtimeManager,
userManager);
@Provides @Singleton IAuthenticationManager provideAuthenticationManager(AuthenticationManager manager) {
return manager;
}

@Provides @Singleton IPublicKeyManager providePublicKeyManager(
@@ -176,369 +167,19 @@ public class DaggerModule {
}
}

@Provides @Singleton IRepositoryManager provideRepositoryManager(
IRuntimeManager runtimeManager,
IPluginManager pluginManager,
IUserManager userManager) {

return new RepositoryManager(
runtimeManager,
pluginManager,
userManager);
}

@Provides @Singleton IProjectManager provideProjectManager(
IRuntimeManager runtimeManager,
IUserManager userManager,
IRepositoryManager repositoryManager) {

return new ProjectManager(
runtimeManager,
userManager,
repositoryManager);
}

@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,
IAuthenticationManager authenticationManager,
IPublicKeyManager publicKeyManager,
IRepositoryManager repositoryManager,
IProjectManager projectManager,
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,
authenticationManager,
publicKeyManager,
repositoryManager,
projectManager,
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 @Singleton IRepositoryManager provideRepositoryManager(RepositoryManager manager) {
return manager;
}

@Provides GitServlet provideGitServlet(IGitblit gitblit) {
return new GitServlet();
@Provides @Singleton IProjectManager provideProjectManager(ProjectManager manager) {
return manager;
}

@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 IFederationManager provideFederationManager(FederationManager manager) {
return manager;
}

@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();
@Provides @Singleton IGitblit provideGitblit(GitBlit gitblit) {
return gitblit;
}
}

+ 2
- 0
src/main/java/com/gitblit/GitBlit.java View File

@@ -24,6 +24,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;

import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.http.HttpServletRequest;

@@ -70,6 +71,7 @@ public class GitBlit extends GitblitManager {

private ITicketService ticketService;

@Inject
public GitBlit(
IRuntimeManager runtimeManager,
IPluginManager pluginManager,

+ 0
- 45
src/main/java/com/gitblit/dagger/DaggerWicketFilter.java View File

@@ -1,45 +0,0 @@
/*
* Copyright 2013 gitblit.com.
*
* 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.gitblit.dagger;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import org.apache.wicket.protocol.http.WicketFilter;
import dagger.ObjectGraph;
/**
* Uses Dagger to manually inject dependencies into a Wicket filter.
* This class is useful for servlet containers that offer CDI and are
* confused by Dagger.
*
* @author James Moger
*
*/
public abstract class DaggerWicketFilter extends WicketFilter {
@Override
public final void init(FilterConfig filterConfig) throws ServletException {
ServletContext context = filterConfig.getServletContext();
ObjectGraph objectGraph = (ObjectGraph) context.getAttribute(DaggerContext.INJECTOR_NAME);
inject(objectGraph);
super.init(filterConfig);
}
protected abstract void inject(ObjectGraph dagger);
}

+ 2
- 0
src/main/java/com/gitblit/manager/AuthenticationManager.java View File

@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import javax.inject.Inject;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -76,6 +77,7 @@ public class AuthenticationManager implements IAuthenticationManager {

private final Map<String, String> legacyRedirects;

@Inject
public AuthenticationManager(
IRuntimeManager runtimeManager,
IUserManager userManager) {

+ 2
- 0
src/main/java/com/gitblit/manager/FederationManager.java View File

@@ -26,6 +26,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
@@ -70,6 +71,7 @@ public class FederationManager implements IFederationManager {

private final IRepositoryManager repositoryManager;

@Inject
public FederationManager(
IRuntimeManager runtimeManager,
INotificationManager notificationManager,

+ 2
- 0
src/main/java/com/gitblit/manager/NotificationManager.java View File

@@ -20,6 +20,7 @@ import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

import javax.inject.Inject;
import javax.mail.Message;

import org.slf4j.Logger;
@@ -48,6 +49,7 @@ public class NotificationManager implements INotificationManager {

private final MailService mailService;

@Inject
public NotificationManager(IStoredSettings settings) {
this.settings = settings;
this.mailService = new MailService(settings);

+ 3
- 0
src/main/java/com/gitblit/manager/PluginManager.java View File

@@ -34,6 +34,8 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import javax.inject.Inject;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@@ -81,6 +83,7 @@ public class PluginManager implements IPluginManager, PluginStateListener {

private int readTimeout = 12800;

@Inject
public PluginManager(IRuntimeManager runtimeManager) {
File dir = runtimeManager.getFileOrFolder(Keys.plugins.folder, "${baseFolder}/plugins");
dir.mkdirs();

+ 3
- 0
src/main/java/com/gitblit/manager/ProjectManager.java View File

@@ -27,6 +27,8 @@ import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;

import javax.inject.Inject;

import org.eclipse.jgit.storage.file.FileBasedConfig;
import org.eclipse.jgit.util.FS;
import org.slf4j.Logger;
@@ -68,6 +70,7 @@ public class ProjectManager implements IProjectManager {

private FileBasedConfig projectConfigs;

@Inject
public ProjectManager(
IRuntimeManager runtimeManager,
IUserManager userManager,

+ 3
- 0
src/main/java/com/gitblit/manager/RepositoryManager.java View File

@@ -44,6 +44,8 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;

import javax.inject.Inject;

import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryCache;
import org.eclipse.jgit.lib.RepositoryCache.FileKey;
@@ -127,6 +129,7 @@ public class RepositoryManager implements IRepositoryManager {

private MirrorService mirrorExecutor;

@Inject
public RepositoryManager(
IRuntimeManager runtimeManager,
IPluginManager pluginManager,

+ 3
- 0
src/main/java/com/gitblit/manager/RuntimeManager.java View File

@@ -22,6 +22,8 @@ import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;

import javax.inject.Inject;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@@ -47,6 +49,7 @@ public class RuntimeManager implements IRuntimeManager {

private TimeZone timezone;

@Inject
public RuntimeManager(IStoredSettings settings) {
this(settings, null);
}

+ 3
- 0
src/main/java/com/gitblit/manager/UserManager.java View File

@@ -24,6 +24,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.inject.Inject;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@@ -57,6 +59,7 @@ public class UserManager implements IUserManager {

private IUserService userService;

@Inject
public UserManager(IRuntimeManager runtimeManager, IPluginManager pluginManager) {
this.settings = runtimeManager.getSettings();
this.runtimeManager = runtimeManager;

+ 10
- 8
src/main/java/com/gitblit/servlet/AccessRestrictionFilter.java View File

@@ -19,21 +19,19 @@ import java.io.IOException;
import java.text.MessageFormat;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.UserModel;
import com.gitblit.utils.StringUtils;
import dagger.ObjectGraph;
/**
* The AccessRestrictionFilter is an AuthenticationFilter that confirms that the
* requested repository can be accessed by the anonymous or named user.
@@ -54,11 +52,15 @@ public abstract class AccessRestrictionFilter extends AuthenticationFilter {
protected IRepositoryManager repositoryManager;
@Override
protected void inject(ObjectGraph dagger, FilterConfig filterConfig) {
super.inject(dagger, filterConfig);
this.runtimeManager = dagger.get(IRuntimeManager.class);
this.repositoryManager = dagger.get(IRepositoryManager.class);
protected AccessRestrictionFilter(
IRuntimeManager runtimeManager,
IAuthenticationManager authenticationManager,
IRepositoryManager repositoryManager) {
super(authenticationManager);
this.runtimeManager = runtimeManager;
this.repositoryManager = repositoryManager;
}
/**

+ 11
- 6
src/main/java/com/gitblit/servlet/AuthenticationFilter.java View File

@@ -21,6 +21,7 @@ import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
@@ -35,14 +36,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.gitblit.Constants;
import com.gitblit.dagger.DaggerFilter;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.models.UserModel;
import com.gitblit.utils.DeepCopier;
import com.gitblit.utils.StringUtils;
import dagger.ObjectGraph;
/**
* The AuthenticationFilter is a servlet filter that preprocesses requests that
* match its url pattern definition in the web.xml file.
@@ -52,7 +50,7 @@ import dagger.ObjectGraph;
* @author James Moger
*
*/
public abstract class AuthenticationFilter extends DaggerFilter {
public abstract class AuthenticationFilter implements Filter {
protected static final String CHALLENGE = "Basic realm=\"" + Constants.NAME + "\"";
@@ -62,9 +60,16 @@ public abstract class AuthenticationFilter extends DaggerFilter {
protected IAuthenticationManager authenticationManager;
protected AuthenticationFilter(IAuthenticationManager authenticationManager) {
this.authenticationManager = authenticationManager;
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
protected void inject(ObjectGraph dagger, FilterConfig filterConfig) {
this.authenticationManager = dagger.get(IAuthenticationManager.class);
public void destroy() {
}
/**

+ 13
- 12
src/main/java/com/gitblit/servlet/BranchGraphServlet.java View File

@@ -36,7 +36,10 @@ import java.util.Set;
import java.util.TreeSet;
import javax.imageio.ImageIO;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -52,20 +55,18 @@ import org.eclipse.jgit.revwalk.RevCommit;
import com.gitblit.Constants;
import com.gitblit.IStoredSettings;
import com.gitblit.Keys;
import com.gitblit.dagger.DaggerServlet;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.utils.JGitUtils;
import com.gitblit.utils.StringUtils;
import dagger.ObjectGraph;
/**
* Handles requests for branch graphs
*
* @author James Moger
*
*/
public class BranchGraphServlet extends DaggerServlet {
@Singleton
public class BranchGraphServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@@ -82,20 +83,20 @@ public class BranchGraphServlet extends DaggerServlet {
private IRepositoryManager repositoryManager;
public BranchGraphServlet() {
super();
@Inject
public BranchGraphServlet(
IStoredSettings settings,
IRepositoryManager repositoryManager) {
this.settings = settings;
this.repositoryManager = repositoryManager;
strokeCache = new Stroke[4];
for (int i = 1; i < strokeCache.length; i++) {
strokeCache[i] = new BasicStroke(i);
}
}
@Override
protected void inject(ObjectGraph dagger) {
this.settings = dagger.get(IStoredSettings.class);
this.repositoryManager = dagger.get(IRepositoryManager.class);
}
/**
* Returns an url to this servlet for the specified parameters.
*

+ 16
- 0
src/main/java/com/gitblit/servlet/DownloadZipFilter.java View File

@@ -15,7 +15,13 @@
*/
package com.gitblit.servlet;
import javax.inject.Inject;
import javax.inject.Singleton;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.UserModel;
@@ -27,8 +33,18 @@ import com.gitblit.models.UserModel;
* @author James Moger
*
*/
@Singleton
public class DownloadZipFilter extends AccessRestrictionFilter {
@Inject
public DownloadZipFilter(
IRuntimeManager runtimeManager,
IAuthenticationManager authenticationManager,
IRepositoryManager repositoryManager) {
super(runtimeManager, authenticationManager, repositoryManager);
}
/**
* Extract the repository name from the url.
*

+ 9
- 8
src/main/java/com/gitblit/servlet/DownloadZipServlet.java View File

@@ -20,7 +20,10 @@ import java.text.MessageFormat;
import java.text.ParseException;
import java.util.Date;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jgit.lib.Repository;
@@ -31,15 +34,12 @@ import org.slf4j.LoggerFactory;
import com.gitblit.Constants;
import com.gitblit.IStoredSettings;
import com.gitblit.Keys;
import com.gitblit.dagger.DaggerServlet;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.utils.CompressionUtils;
import com.gitblit.utils.JGitUtils;
import com.gitblit.utils.MarkdownUtils;
import com.gitblit.utils.StringUtils;
import dagger.ObjectGraph;
/**
* Streams out a zip file from the specified repository for any tree path at any
* revision.
@@ -47,7 +47,8 @@ import dagger.ObjectGraph;
* @author James Moger
*
*/
public class DownloadZipServlet extends DaggerServlet {
@Singleton
public class DownloadZipServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@@ -76,10 +77,10 @@ public class DownloadZipServlet extends DaggerServlet {
}
}
@Override
protected void inject(ObjectGraph dagger) {
this.settings = dagger.get(IStoredSettings.class);
this.repositoryManager = dagger.get(IRepositoryManager.class);
@Inject
public DownloadZipServlet(IStoredSettings settings, IRepositoryManager repositoryManager) {
this.settings = settings;
this.repositoryManager = repositoryManager;
}
/**

+ 19
- 15
src/main/java/com/gitblit/servlet/EnforceAuthenticationFilter.java View File

@@ -18,6 +18,9 @@
import java.io.IOException;
import java.text.MessageFormat;

import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
@@ -31,12 +34,9 @@ import org.slf4j.LoggerFactory;

import com.gitblit.IStoredSettings;
import com.gitblit.Keys;
import com.gitblit.dagger.DaggerFilter;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.models.UserModel;

import dagger.ObjectGraph;

/**
* This filter enforces authentication via HTTP Basic Authentication, if the settings indicate so.
* It looks at the settings "web.authenticateViewPages" and "web.enforceHttpBasicAuthentication"; if
@@ -45,7 +45,8 @@ import dagger.ObjectGraph;
* @author Laurens Vrijnsen
*
*/
public class EnforceAuthenticationFilter extends DaggerFilter {
@Singleton
public class EnforceAuthenticationFilter implements Filter {

protected transient Logger logger = LoggerFactory.getLogger(getClass());

@@ -53,10 +54,21 @@ public class EnforceAuthenticationFilter extends DaggerFilter {

private IAuthenticationManager authenticationManager;

@Inject
public EnforceAuthenticationFilter(
IStoredSettings settings,
IAuthenticationManager authenticationManager) {

this.settings = settings;
this.authenticationManager = authenticationManager;
}

@Override
protected void inject(ObjectGraph dagger, FilterConfig filterConfig) {
this.settings = dagger.get(IStoredSettings.class);
this.authenticationManager = dagger.get(IAuthenticationManager.class);
public void init(FilterConfig config) {
}

@Override
public void destroy() {
}

/*
@@ -87,12 +99,4 @@ public class EnforceAuthenticationFilter extends DaggerFilter {
chain.doFilter(request, response);
}
}


/*
* @see javax.servlet.Filter#destroy()
*/
@Override
public void destroy() {
}
}

+ 14
- 8
src/main/java/com/gitblit/servlet/FederationServlet.java View File

@@ -25,6 +25,8 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.http.HttpServletResponse;
import com.gitblit.Constants.FederationRequest;
@@ -43,14 +45,13 @@ import com.gitblit.utils.HttpUtils;
import com.gitblit.utils.StringUtils;
import com.gitblit.utils.TimeUtils;
import dagger.ObjectGraph;
/**
* Handles federation requests.
*
* @author James Moger
*
*/
@Singleton
public class FederationServlet extends JsonServlet {
private static final long serialVersionUID = 1L;
@@ -63,12 +64,17 @@ public class FederationServlet extends JsonServlet {
private IFederationManager federationManager;
@Override
protected void inject(ObjectGraph dagger) {
this.settings = dagger.get(IStoredSettings.class);
this.userManager = dagger.get(IUserManager.class);
this.repositoryManager = dagger.get(IRepositoryManager.class);
this.federationManager = dagger.get(IFederationManager.class);
@Inject
public FederationServlet(
IStoredSettings settings,
IUserManager userManager,
IRepositoryManager repositoryManager,
IFederationManager federationManager) {
this.settings = settings;
this.userManager = userManager;
this.repositoryManager = repositoryManager;
this.federationManager = federationManager;
}
/**

+ 18
- 8
src/main/java/com/gitblit/servlet/GitFilter.java View File

@@ -17,7 +17,8 @@ package com.gitblit.servlet;
import java.text.MessageFormat;
import javax.servlet.FilterConfig;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.http.HttpServletRequest;
import com.gitblit.Constants.AccessRestrictionType;
@@ -25,13 +26,14 @@ import com.gitblit.Constants.AuthorizationControl;
import com.gitblit.GitBlitException;
import com.gitblit.IStoredSettings;
import com.gitblit.Keys;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.manager.IFederationManager;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.UserModel;
import com.gitblit.utils.StringUtils;
import dagger.ObjectGraph;
/**
* The GitFilter is an AccessRestrictionFilter which ensures that Git client
* requests for push, clone, or view restricted repositories are authenticated
@@ -40,6 +42,7 @@ import dagger.ObjectGraph;
* @author James Moger
*
*/
@Singleton
public class GitFilter extends AccessRestrictionFilter {
protected static final String gitReceivePack = "/git-receive-pack";
@@ -53,11 +56,18 @@ public class GitFilter extends AccessRestrictionFilter {
private IFederationManager federationManager;
@Override
protected void inject(ObjectGraph dagger, FilterConfig filterConfig) {
super.inject(dagger, filterConfig);
this.settings = dagger.get(IStoredSettings.class);
this.federationManager = dagger.get(IFederationManager.class);
@Inject
public GitFilter(
IStoredSettings settings,
IRuntimeManager runtimeManager,
IAuthenticationManager authenticationManager,
IRepositoryManager repositoryManager,
IFederationManager federationManager) {
super(runtimeManager, authenticationManager, repositoryManager);
this.settings = settings;
this.federationManager = federationManager;
}
/**

+ 8
- 10
src/main/java/com/gitblit/servlet/GitServlet.java View File

@@ -20,6 +20,8 @@ import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
import java.io.IOException;
import java.util.Enumeration;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletConfig;
@@ -33,14 +35,11 @@ import javax.servlet.http.HttpServletResponse;
import org.eclipse.jgit.http.server.GitFilter;
import com.gitblit.dagger.DaggerContext;
import com.gitblit.git.GitblitReceivePackFactory;
import com.gitblit.git.GitblitUploadPackFactory;
import com.gitblit.git.RepositoryResolver;
import com.gitblit.manager.IGitblit;
import dagger.ObjectGraph;
/**
* The GitServlet provides http/https access to Git repositories.
* Access to this servlet is protected by the GitFilter.
@@ -48,24 +47,23 @@ import dagger.ObjectGraph;
* @author James Moger
*
*/
@Singleton
public class GitServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private final GitFilter gitFilter;
public GitServlet() {
@Inject
public GitServlet(IGitblit gitblit) {
gitFilter = new GitFilter();
gitFilter.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>(gitblit));
gitFilter.setUploadPackFactory(new GitblitUploadPackFactory<HttpServletRequest>(gitblit));
gitFilter.setReceivePackFactory(new GitblitReceivePackFactory<HttpServletRequest>(gitblit));
}
@Override
public void init(final ServletConfig config) throws ServletException {
ServletContext context = config.getServletContext();
ObjectGraph dagger = (ObjectGraph) context.getAttribute(DaggerContext.INJECTOR_NAME);
IGitblit gitblit = dagger.get(IGitblit.class);
gitFilter.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>(gitblit));
gitFilter.setUploadPackFactory(new GitblitUploadPackFactory<HttpServletRequest>(gitblit));
gitFilter.setReceivePackFactory(new GitblitReceivePackFactory<HttpServletRequest>(gitblit));
gitFilter.init(new FilterConfig() {
@Override

+ 2
- 2
src/main/java/com/gitblit/servlet/JsonServlet.java View File

@@ -21,6 +21,7 @@ import java.lang.reflect.Type;
import java.text.MessageFormat;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -28,7 +29,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.gitblit.Constants;
import com.gitblit.dagger.DaggerServlet;
import com.gitblit.utils.JsonUtils;
import com.gitblit.utils.StringUtils;
@@ -38,7 +38,7 @@ import com.gitblit.utils.StringUtils;
* @author James Moger
*
*/
public abstract class JsonServlet extends DaggerServlet {
public abstract class JsonServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

+ 8
- 7
src/main/java/com/gitblit/servlet/LogoServlet.java View File

@@ -21,24 +21,25 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gitblit.Keys;
import com.gitblit.dagger.DaggerServlet;
import com.gitblit.manager.IRuntimeManager;
import dagger.ObjectGraph;
/**
* Handles requests for logo.png
*
* @author James Moger
*
*/
public class LogoServlet extends DaggerServlet {
@Singleton
public class LogoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@@ -46,9 +47,9 @@ public class LogoServlet extends DaggerServlet {
private IRuntimeManager runtimeManager;
@Override
protected void inject(ObjectGraph dagger) {
this.runtimeManager = dagger.get(IRuntimeManager.class);
@Inject
public LogoServlet(IRuntimeManager runtimeManager) {
this.runtimeManager = runtimeManager;
}
@Override

+ 17
- 0
src/main/java/com/gitblit/servlet/PagesFilter.java View File

@@ -15,6 +15,13 @@
*/
package com.gitblit.servlet;
import javax.inject.Inject;
import javax.inject.Singleton;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
/**
* The PagesFilter is an AccessRestrictionFilter which ensures the gh-pages
@@ -23,7 +30,17 @@ package com.gitblit.servlet;
* @author James Moger
*
*/
@Singleton
public class PagesFilter extends RawFilter {
@Inject
public PagesFilter(
IRuntimeManager runtimeManager,
IAuthenticationManager authenticationManager,
IRepositoryManager repositoryManager) {
super(runtimeManager, authenticationManager, repositoryManager);
}
}

+ 13
- 0
src/main/java/com/gitblit/servlet/PagesServlet.java View File

@@ -15,10 +15,14 @@
*/
package com.gitblit.servlet;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gitblit.Constants;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
/**
* Serves the content of a gh-pages branch.
@@ -26,6 +30,7 @@ import com.gitblit.Constants;
* @author James Moger
*
*/
@Singleton
public class PagesServlet extends RawServlet {
private static final long serialVersionUID = 1L;
@@ -46,6 +51,14 @@ public class PagesServlet extends RawServlet {
return baseURL + Constants.PAGES + repository + "/" + (path == null ? "" : ("/" + path));
}
@Inject
public PagesServlet(
IRuntimeManager runtimeManager,
IRepositoryManager repositoryManager) {
super(runtimeManager, repositoryManager);
}
@Override
protected String getBranch(String repository, HttpServletRequest request) {
return "gh-pages";

+ 24
- 9
src/main/java/com/gitblit/servlet/ProxyFilter.java View File

@@ -16,9 +16,13 @@
package com.gitblit.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
@@ -27,13 +31,10 @@ import javax.servlet.ServletResponse;

import ro.fortsoft.pf4j.PluginWrapper;

import com.gitblit.dagger.DaggerFilter;
import com.gitblit.extensions.HttpRequestFilter;
import com.gitblit.manager.IPluginManager;
import com.gitblit.manager.IRuntimeManager;

import dagger.ObjectGraph;

/**
* A request filter than allows registered extension request filters to access
* request data. The intended purpose is for server monitoring plugins.
@@ -41,15 +42,29 @@ import dagger.ObjectGraph;
* @author David Ostrovsky
* @since 1.6.0
*/
public class ProxyFilter extends DaggerFilter {
private List<HttpRequestFilter> filters;
@Singleton
public class ProxyFilter implements Filter {
private final IRuntimeManager runtimeManager;

private final IPluginManager pluginManager;

private final List<HttpRequestFilter> filters;

@Inject
public ProxyFilter(
IRuntimeManager runtimeManager,
IPluginManager pluginManager) {

this.runtimeManager = runtimeManager;
this.pluginManager = pluginManager;
this.filters = new ArrayList<>();

}

@Override
protected void inject(ObjectGraph dagger, FilterConfig filterConfig) throws ServletException {
IRuntimeManager runtimeManager = dagger.get(IRuntimeManager.class);
IPluginManager pluginManager = dagger.get(IPluginManager.class);
public void init(FilterConfig filterConfig) throws ServletException {

filters = pluginManager.getExtensions(HttpRequestFilter.class);
filters.addAll(pluginManager.getExtensions(HttpRequestFilter.class));
for (HttpRequestFilter f : filters) {
// wrap the filter config for Gitblit settings retrieval
PluginWrapper pluginWrapper = pluginManager.whichPlugin(f.getClass());

+ 8
- 7
src/main/java/com/gitblit/servlet/PtServlet.java View File

@@ -21,7 +21,10 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -34,11 +37,8 @@ import org.apache.commons.compress.compressors.CompressorStreamFactory;
import org.apache.wicket.util.io.ByteArrayOutputStream;
import org.eclipse.jgit.lib.FileMode;
import com.gitblit.dagger.DaggerServlet;
import com.gitblit.manager.IRuntimeManager;
import dagger.ObjectGraph;
/**
* Handles requests for the Barnum pt (patchset tool).
*
@@ -47,7 +47,8 @@ import dagger.ObjectGraph;
* @author James Moger
*
*/
public class PtServlet extends DaggerServlet {
@Singleton
public class PtServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@@ -55,9 +56,9 @@ public class PtServlet extends DaggerServlet {
private IRuntimeManager runtimeManager;
@Override
protected void inject(ObjectGraph dagger) {
this.runtimeManager = dagger.get(IRuntimeManager.class);
@Inject
public PtServlet(IRuntimeManager runtimeManager) {
this.runtimeManager = runtimeManager;
}
@Override

+ 16
- 0
src/main/java/com/gitblit/servlet/RawFilter.java View File

@@ -15,9 +15,15 @@
*/
package com.gitblit.servlet;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.eclipse.jgit.lib.Repository;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.UserModel;
@@ -28,8 +34,18 @@ import com.gitblit.models.UserModel;
* @author James Moger
*
*/
@Singleton
public class RawFilter extends AccessRestrictionFilter {
@Inject
public RawFilter(
IRuntimeManager runtimeManager,
IAuthenticationManager authenticationManager,
IRepositoryManager repositoryManager) {
super(runtimeManager, authenticationManager, repositoryManager);
}
/**
* Extract the repository name from the url.
*

+ 14
- 10
src/main/java/com/gitblit/servlet/RawServlet.java View File

@@ -28,8 +28,11 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@@ -48,7 +51,6 @@ import org.slf4j.LoggerFactory;

import com.gitblit.Constants;
import com.gitblit.Keys;
import com.gitblit.dagger.DaggerServlet;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.models.PathModel;
@@ -57,28 +59,30 @@ import com.gitblit.utils.JGitUtils;
import com.gitblit.utils.MarkdownUtils;
import com.gitblit.utils.StringUtils;

import dagger.ObjectGraph;

/**
* Serves the content of a branch.
*
* @author James Moger
*
*/
public class RawServlet extends DaggerServlet {
@Singleton
public class RawServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

private transient Logger logger = LoggerFactory.getLogger(RawServlet.class);

private IRuntimeManager runtimeManager;
private final IRuntimeManager runtimeManager;

private IRepositoryManager repositoryManager;
private final IRepositoryManager repositoryManager;

@Override
protected void inject(ObjectGraph dagger) {
this.runtimeManager = dagger.get(IRuntimeManager.class);
this.repositoryManager = dagger.get(IRepositoryManager.class);
@Inject
public RawServlet(
IRuntimeManager runtimeManager,
IRepositoryManager repositoryManager) {

this.runtimeManager = runtimeManager;
this.repositoryManager = repositoryManager;
}

/**

+ 8
- 7
src/main/java/com/gitblit/servlet/RobotsTxtServlet.java View File

@@ -18,32 +18,33 @@ package com.gitblit.servlet;
import java.io.File;
import java.io.IOException;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gitblit.Keys;
import com.gitblit.dagger.DaggerServlet;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.utils.FileUtils;
import dagger.ObjectGraph;
/**
* Handles requests for robots.txt
*
* @author James Moger
*
*/
public class RobotsTxtServlet extends DaggerServlet {
@Singleton
public class RobotsTxtServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private IRuntimeManager runtimeManager;
@Override
protected void inject(ObjectGraph dagger) {
this.runtimeManager = dagger.get(IRuntimeManager.class);
@Inject
public RobotsTxtServlet(IRuntimeManager runtimeManager) {
this.runtimeManager = runtimeManager;
}
@Override

+ 14
- 8
src/main/java/com/gitblit/servlet/RpcFilter.java View File

@@ -18,8 +18,9 @@ package com.gitblit.servlet;
import java.io.IOException;
import java.text.MessageFormat;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
@@ -29,11 +30,10 @@ import javax.servlet.http.HttpServletResponse;
import com.gitblit.Constants.RpcRequest;
import com.gitblit.IStoredSettings;
import com.gitblit.Keys;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.models.UserModel;
import dagger.ObjectGraph;
/**
* The RpcFilter is a servlet filter that secures the RpcServlet.
*
@@ -47,17 +47,23 @@ import dagger.ObjectGraph;
* @author James Moger
*
*/
@Singleton
public class RpcFilter extends AuthenticationFilter {
private IStoredSettings settings;
private IRuntimeManager runtimeManager;
@Override
protected void inject(ObjectGraph dagger, FilterConfig filterConfig) {
super.inject(dagger, filterConfig);
this.settings = dagger.get(IStoredSettings.class);
this.runtimeManager = dagger.get(IRuntimeManager.class);
@Inject
public RpcFilter(
IStoredSettings settings,
IRuntimeManager runtimeManager,
IAuthenticationManager authenticationManager) {
super(authenticationManager);
this.settings = settings;
this.runtimeManager = runtimeManager;
}
/**

+ 7
- 6
src/main/java/com/gitblit/servlet/RpcServlet.java View File

@@ -23,6 +23,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -47,13 +49,12 @@ import com.gitblit.utils.JGitUtils;
import com.gitblit.utils.RpcUtils;
import com.gitblit.utils.StringUtils;
import dagger.ObjectGraph;
/**
* Handles remote procedure calls.
*
* @author James Moger
*/
@Singleton
public class RpcServlet extends JsonServlet {
private static final long serialVersionUID = 1L;
@@ -64,10 +65,10 @@ public class RpcServlet extends JsonServlet {
private IGitblit gitblit;
@Override
protected void inject(ObjectGraph dagger) {
this.settings = dagger.get(IStoredSettings.class);
this.gitblit = dagger.get(IGitblit.class);
@Inject
public RpcServlet(IStoredSettings settings, IGitblit gitblit) {
this.settings = settings;
this.gitblit = gitblit;
}
/**

+ 16
- 10
src/main/java/com/gitblit/servlet/SparkleShareInviteServlet.java View File

@@ -19,13 +19,15 @@ import java.io.IOException;
import java.net.URL;
import java.text.MessageFormat;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gitblit.IStoredSettings;
import com.gitblit.Keys;
import com.gitblit.dagger.DaggerServlet;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IUserManager;
@@ -33,15 +35,14 @@ import com.gitblit.models.RepositoryModel;
import com.gitblit.models.UserModel;
import com.gitblit.utils.StringUtils;
import dagger.ObjectGraph;
/**
* Handles requests for Sparkleshare Invites
*
* @author James Moger
*
*/
public class SparkleShareInviteServlet extends DaggerServlet {
@Singleton
public class SparkleShareInviteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@@ -53,12 +54,17 @@ public class SparkleShareInviteServlet extends DaggerServlet {
private IRepositoryManager repositoryManager;
@Override
protected void inject(ObjectGraph dagger) {
this.settings = dagger.get(IStoredSettings.class);
this.userManager = dagger.get(IUserManager.class);
this.authenticationManager = dagger.get(IAuthenticationManager.class);
this.repositoryManager = dagger.get(IRepositoryManager.class);
@Inject
public SparkleShareInviteServlet(
IStoredSettings settings,
IUserManager userManager,
IAuthenticationManager authenticationManager,
IRepositoryManager repositoryManager) {
this.settings = settings;
this.userManager = userManager;
this.authenticationManager = authenticationManager;
this.repositoryManager = repositoryManager;
}
@Override

+ 15
- 9
src/main/java/com/gitblit/servlet/SyndicationFilter.java View File

@@ -18,8 +18,9 @@ package com.gitblit.servlet;
import java.io.IOException;
import java.text.MessageFormat;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
@@ -27,6 +28,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.manager.IProjectManager;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
@@ -34,8 +36,6 @@ import com.gitblit.models.ProjectModel;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.UserModel;
import dagger.ObjectGraph;
/**
* The SyndicationFilter is an AuthenticationFilter which ensures that feed
* requests for projects or view-restricted repositories have proper authentication
@@ -44,18 +44,24 @@ import dagger.ObjectGraph;
* @author James Moger
*
*/
@Singleton
public class SyndicationFilter extends AuthenticationFilter {
private IRuntimeManager runtimeManager;
private IRepositoryManager repositoryManager;
private IProjectManager projectManager;
@Override
protected void inject(ObjectGraph dagger, FilterConfig filterConfig) {
super.inject(dagger, filterConfig);
this.runtimeManager = dagger.get(IRuntimeManager.class);
this.repositoryManager = dagger.get(IRepositoryManager.class);
this.projectManager = dagger.get(IProjectManager.class);
@Inject
public SyndicationFilter(
IRuntimeManager runtimeManager,
IAuthenticationManager authenticationManager,
IRepositoryManager repositoryManager,
IProjectManager projectManager) {
super(authenticationManager);
this.runtimeManager = runtimeManager;
this.repositoryManager = repositoryManager;
this.projectManager = projectManager;
}
/**

+ 15
- 9
src/main/java/com/gitblit/servlet/SyndicationServlet.java View File

@@ -22,6 +22,10 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.http.HttpServlet;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevCommit;
@@ -31,7 +35,6 @@ import org.slf4j.LoggerFactory;
import com.gitblit.Constants;
import com.gitblit.IStoredSettings;
import com.gitblit.Keys;
import com.gitblit.dagger.DaggerServlet;
import com.gitblit.manager.IProjectManager;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.models.FeedEntryModel;
@@ -46,8 +49,6 @@ import com.gitblit.utils.JGitUtils;
import com.gitblit.utils.StringUtils;
import com.gitblit.utils.SyndicationUtils;
import dagger.ObjectGraph;
/**
* SyndicationServlet generates RSS 2.0 feeds and feed links.
*
@@ -56,7 +57,8 @@ import dagger.ObjectGraph;
* @author James Moger
*
*/
public class SyndicationServlet extends DaggerServlet {
@Singleton
public class SyndicationServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@@ -68,11 +70,15 @@ public class SyndicationServlet extends DaggerServlet {
private IProjectManager projectManager;
@Override
protected void inject(ObjectGraph dagger) {
this.settings = dagger.get(IStoredSettings.class);
this.repositoryManager = dagger.get(IRepositoryManager.class);
this.projectManager = dagger.get(IProjectManager.class);
@Inject
public SyndicationServlet(
IStoredSettings settings,
IRepositoryManager repositoryManager,
IProjectManager projectManager) {
this.settings = settings;
this.repositoryManager = repositoryManager;
this.projectManager = projectManager;
}
/**

+ 5
- 0
src/main/java/com/gitblit/wicket/GitBlitWebApp.java View File

@@ -21,6 +21,9 @@ import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;

import javax.inject.Inject;
import javax.inject.Singleton;

import org.apache.wicket.Application;
import org.apache.wicket.Request;
import org.apache.wicket.Response;
@@ -90,6 +93,7 @@ import com.gitblit.wicket.pages.TreePage;
import com.gitblit.wicket.pages.UserPage;
import com.gitblit.wicket.pages.UsersPage;

@Singleton
public class GitBlitWebApp extends WebApplication implements GitblitWicketApp {

private final Class<? extends WebPage> homePageClass = MyDashboardPage.class;
@@ -120,6 +124,7 @@ public class GitBlitWebApp extends WebApplication implements GitblitWicketApp {

private final IGitblit gitblit;

@Inject
public GitBlitWebApp(
IRuntimeManager runtimeManager,
IPluginManager pluginManager,

+ 17
- 11
src/main/java/com/gitblit/wicket/GitblitWicketFilter.java View File

@@ -17,6 +17,8 @@ package com.gitblit.wicket;
import java.util.Date;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.protocol.http.IWebApplicationFactory;
@@ -28,7 +30,6 @@ import org.eclipse.jgit.revwalk.RevCommit;
import com.gitblit.IStoredSettings;
import com.gitblit.Keys;
import com.gitblit.dagger.DaggerWicketFilter;
import com.gitblit.manager.IProjectManager;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
@@ -37,8 +38,6 @@ import com.gitblit.models.RepositoryModel;
import com.gitblit.utils.JGitUtils;
import com.gitblit.utils.StringUtils;
import dagger.ObjectGraph;
/**
*
* Customization of the WicketFilter to allow smart browser-side caching of
@@ -47,7 +46,8 @@ import dagger.ObjectGraph;
* @author James Moger
*
*/
public class GitblitWicketFilter extends DaggerWicketFilter {
@Singleton
public class GitblitWicketFilter extends WicketFilter {
private IStoredSettings settings;
@@ -59,13 +59,19 @@ public class GitblitWicketFilter extends DaggerWicketFilter {
private GitBlitWebApp webapp;
@Override
protected void inject(ObjectGraph dagger) {
this.settings = dagger.get(IStoredSettings.class);
this.runtimeManager = dagger.get(IRuntimeManager.class);
this.repositoryManager = dagger.get(IRepositoryManager.class);
this.projectManager = dagger.get(IProjectManager.class);
this.webapp = dagger.get(GitBlitWebApp.class);
@Inject
public GitblitWicketFilter(
IStoredSettings settings,
IRuntimeManager runtimeManager,
IRepositoryManager repositoryManager,
IProjectManager projectManager,
GitBlitWebApp webapp) {
this.settings = settings;
this.runtimeManager = runtimeManager;
this.repositoryManager = repositoryManager;
this.projectManager = projectManager;
this.webapp = webapp;
}
@Override

Loading…
Cancel
Save