Add POC protocol servlet with delegate to git

This commit is contained in:
René Pfeuffer
2018-09-06 10:58:09 +02:00
parent c4b34752b4
commit be5c430bd2
10 changed files with 163 additions and 167 deletions

View File

@@ -42,6 +42,7 @@ import sonia.scm.repository.api.Command;
import sonia.scm.repository.api.ScmProtocol;
import sonia.scm.web.ScmGitServlet;
import javax.inject.Provider;
import java.io.IOException;
import java.util.Collections;
import java.util.Set;
@@ -74,19 +75,13 @@ public class GitRepositoryServiceProvider extends RepositoryServiceProvider
//~--- constructors ---------------------------------------------------------
/**
* Constructs ...
*
*
* @param handler
* @param repository
*/
public GitRepositoryServiceProvider(GitRepositoryHandler handler,
Repository repository)
Repository repository, Provider<ScmGitServlet> servletProvider)
{
this.handler = handler;
this.repository = repository;
context = new GitContext(handler.getDirectory(repository));
this.servletProvider = servletProvider;
this.context = new GitContext(handler.getDirectory(repository));
}
//~--- methods --------------------------------------------------------------
@@ -251,7 +246,7 @@ public class GitRepositoryServiceProvider extends RepositoryServiceProvider
@Override
public Set<ScmProtocol> getSupportedProtocols() {
return Collections.singleton(new ScmGitServlet(null, null, null, null, null, null));
return Collections.singleton(servletProvider.get());
}
//~--- fields ---------------------------------------------------------------
@@ -264,4 +259,6 @@ public class GitRepositoryServiceProvider extends RepositoryServiceProvider
/** Field description */
private Repository repository;
private final Provider<ScmGitServlet> servletProvider;
}

View File

@@ -35,10 +35,12 @@ package sonia.scm.repository.spi;
//~--- non-JDK imports --------------------------------------------------------
import com.google.inject.Inject;
import sonia.scm.plugin.Extension;
import sonia.scm.repository.GitRepositoryHandler;
import sonia.scm.repository.Repository;
import sonia.scm.web.ScmGitServlet;
import javax.inject.Provider;
/**
*
@@ -53,16 +55,11 @@ public class GitRepositoryServiceResolver implements RepositoryServiceResolver
//~--- constructors ---------------------------------------------------------
/**
* Constructs ...
*
*
* @param handler
*/
@Inject
public GitRepositoryServiceResolver(GitRepositoryHandler handler)
public GitRepositoryServiceResolver(GitRepositoryHandler handler, Provider<ScmGitServlet> servletProvider)
{
this.handler = handler;
this.servletProvider = servletProvider;
}
//~--- methods --------------------------------------------------------------
@@ -82,7 +79,7 @@ public class GitRepositoryServiceResolver implements RepositoryServiceResolver
if (TYPE.equalsIgnoreCase(repository.getType()))
{
provider = new GitRepositoryServiceProvider(handler, repository);
provider = new GitRepositoryServiceProvider(handler, repository, servletProvider);
}
return provider;
@@ -91,5 +88,6 @@ public class GitRepositoryServiceResolver implements RepositoryServiceResolver
//~--- fields ---------------------------------------------------------------
/** Field description */
private GitRepositoryHandler handler;
private final GitRepositoryHandler handler;
private final Provider<ScmGitServlet> servletProvider;
}

View File

@@ -75,8 +75,5 @@ public class GitServletModule extends ServletModule
bind(GitConfigDtoToGitConfigMapper.class).to(Mappers.getMapper(GitConfigDtoToGitConfigMapper.class).getClass());
bind(GitConfigToGitConfigDtoMapper.class).to(Mappers.getMapper(GitConfigToGitConfigDtoMapper.class).getClass());
// serlvelts and filters
serve(PATTERN_GIT).with(ScmGitServlet.class);
}
}