mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-07 05:55:44 +01:00
Add POC protocol servlet with delegate to git
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user