call repository request listeners before the git servlet is executed

This commit is contained in:
Sebastian Sdorra
2011-11-28 11:22:20 +01:00
parent c2d3bd0b3c
commit b8dcc55884

View File

@@ -44,6 +44,7 @@ import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.transport.resolver.RepositoryResolver; import org.eclipse.jgit.transport.resolver.RepositoryResolver;
import sonia.scm.repository.GitUtil; import sonia.scm.repository.GitUtil;
import sonia.scm.repository.RepositoryRequestListenerUtil;
import sonia.scm.util.HttpUtil; import sonia.scm.util.HttpUtil;
//~--- JDK imports ------------------------------------------------------------ //~--- JDK imports ------------------------------------------------------------
@@ -79,15 +80,18 @@ public class ScmGitServlet extends GitServlet
* @param repositoryResolver * @param repositoryResolver
* @param receivePackFactory * @param receivePackFactory
* @param repositoryProvider * @param repositoryProvider
* @param repositoryRequestListenerUtil
*/ */
@Inject @Inject
public ScmGitServlet( public ScmGitServlet(
GitRepositoryResolver repositoryResolver, GitRepositoryResolver repositoryResolver,
GitReceivePackFactory receivePackFactory, GitReceivePackFactory receivePackFactory,
Provider<sonia.scm.repository.Repository> repositoryProvider) Provider<sonia.scm.repository.Repository> repositoryProvider,
RepositoryRequestListenerUtil repositoryRequestListenerUtil)
{ {
this.resolver = repositoryResolver; this.resolver = repositoryResolver;
this.repositoryProvider = repositoryProvider; this.repositoryProvider = repositoryProvider;
this.repositoryRequestListenerUtil = repositoryRequestListenerUtil;
setRepositoryResolver(repositoryResolver); setRepositoryResolver(repositoryResolver);
setReceivePackFactory(receivePackFactory); setReceivePackFactory(receivePackFactory);
} }
@@ -113,6 +117,14 @@ public class ScmGitServlet extends GitServlet
if (uri.matches(REGEX_GITHTTPBACKEND)) if (uri.matches(REGEX_GITHTTPBACKEND))
{ {
sonia.scm.repository.Repository repository = repositoryProvider.get();
if (repository != null)
{
repositoryRequestListenerUtil.callListeners(request, response,
repository);
}
super.service(request, response); super.service(request, response);
} }
else else
@@ -168,6 +180,9 @@ public class ScmGitServlet extends GitServlet
/** Field description */ /** Field description */
private Provider<sonia.scm.repository.Repository> repositoryProvider; private Provider<sonia.scm.repository.Repository> repositoryProvider;
/** Field description */
private RepositoryRequestListenerUtil repositoryRequestListenerUtil;
/** Field description */ /** Field description */
private RepositoryResolver<HttpServletRequest> resolver; private RepositoryResolver<HttpServletRequest> resolver;
} }