Reduce dependency to RepositoryProvider in provider servlets

This commit is contained in:
René Pfeuffer
2018-09-11 07:40:24 +02:00
parent 1b200ae69d
commit bf9de8ea8e
8 changed files with 52 additions and 135 deletions

View File

@@ -45,10 +45,10 @@ import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryProvider;
import sonia.scm.repository.RepositoryRequestListenerUtil;
import sonia.scm.repository.SvnRepositoryHandler;
import sonia.scm.repository.spi.ScmProviderHttpServlet;
import sonia.scm.util.AssertUtil;
import sonia.scm.util.HttpUtil;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
@@ -62,7 +62,7 @@ import java.io.IOException;
* @author Sebastian Sdorra
*/
@Singleton
public class SvnDAVServlet extends DAVServlet
public class SvnDAVServlet extends DAVServlet implements ScmProviderHttpServlet
{
/** Field description */
@@ -111,28 +111,18 @@ public class SvnDAVServlet extends DAVServlet
* @throws ServletException
*/
@Override
public void service(HttpServletRequest request, HttpServletResponse response)
public void service(HttpServletRequest request, HttpServletResponse response, Repository repository)
throws ServletException, IOException
{
Repository repository = repositoryProvider.get();
if (repository != null)
{
if (repositoryRequestListenerUtil.callListeners(request, response,
repository))
{
super.service(new SvnHttpServletRequestWrapper(request,
repositoryProvider), response);
}
else if (logger.isDebugEnabled())
{
logger.debug("request aborted by repository request listener");
}
}
else
if (repositoryRequestListenerUtil.callListeners(request, response,
repository))
{
super.service(new SvnHttpServletRequestWrapper(request,
repositoryProvider), response);
repository), response);
}
else if (logger.isDebugEnabled())
{
logger.debug("request aborted by repository request listener");
}
}
@@ -164,18 +154,11 @@ public class SvnDAVServlet extends DAVServlet
extends HttpServletRequestWrapper
{
/**
* Constructs ...
*
*
* @param request
* @param repositoryProvider
*/
public SvnHttpServletRequestWrapper(HttpServletRequest request,
RepositoryProvider repositoryProvider)
Repository repository)
{
super(request);
this.repositoryProvider = repositoryProvider;
this.repository = repository;
}
//~--- get methods --------------------------------------------------------
@@ -212,8 +195,6 @@ public class SvnDAVServlet extends DAVServlet
AssertUtil.assertIsNotEmpty(pathInfo);
Repository repository = repositoryProvider.get();
if (repository != null)
{
if (pathInfo.startsWith(HttpUtil.SEPARATOR_PATH))
@@ -237,7 +218,6 @@ public class SvnDAVServlet extends DAVServlet
public String getServletPath()
{
String servletPath = super.getServletPath();
Repository repository = repositoryProvider.get();
if (repository != null)
{
@@ -281,12 +261,7 @@ public class SvnDAVServlet extends DAVServlet
//~--- fields -------------------------------------------------------------
/** Field description */
private final RepositoryProvider repositoryProvider;
}
// @Override
public void serve(HttpServletRequest request, HttpServletResponse response, ServletConfig config) throws ServletException, IOException {
service(request, response);
private final Repository repository;
}
//~--- fields ---------------------------------------------------------------

View File

@@ -2,6 +2,7 @@ package sonia.scm.web;
import sonia.scm.api.v2.resources.UriInfoStore;
import sonia.scm.repository.spi.InitializingHttpScmProtocolWrapper;
import sonia.scm.repository.spi.ScmProviderHttpServlet;
import javax.inject.Inject;
import javax.inject.Provider;
@@ -9,7 +10,6 @@ import javax.inject.Singleton;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import java.util.Enumeration;
import static sonia.scm.web.SvnServletModule.PARAMETER_SVN_PARENTPATH;
@@ -22,7 +22,7 @@ public class SvnScmProtocolProviderWrapper extends InitializingHttpScmProtocolWr
}
@Override
protected void initializeServlet(ServletConfig config, HttpServlet httpServlet) throws ServletException {
protected void initializeServlet(ServletConfig config, ScmProviderHttpServlet httpServlet) throws ServletException {
super.initializeServlet(new X(config), httpServlet);
}