mirror of
				https://github.com/scm-manager/scm-manager.git
				synced 2025-11-03 20:15:52 +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