improve repository manager and handler relation

This commit is contained in:
Sebastian Sdorra
2010-11-25 21:56:06 +01:00
parent 4898870e85
commit b6298938ec
23 changed files with 958 additions and 983 deletions

View File

@@ -66,22 +66,6 @@ public class HgRepositoryHandler
/** Field description */
public static final Type TYPE = new Type(TYPE_NAME, TYPE_DISPLAYNAME);
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param repository
*
* @return
*/
@Override
public String createResourcePath(Repository repository)
{
return "/hg/".concat(repository.getName());
}
//~--- get methods ----------------------------------------------------------
/**

View File

@@ -40,6 +40,7 @@ import com.google.inject.Singleton;
import sonia.scm.repository.HgRepositoryHandler;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryManager;
import sonia.scm.web.cgi.AbstractCGIServlet;
import sonia.scm.web.cgi.EnvList;
@@ -81,11 +82,15 @@ public class HgCGIServlet extends AbstractCGIServlet
* Constructs ...
*
*
*
* @param repositoryManager
* @param handler
*/
@Inject
public HgCGIServlet(HgRepositoryHandler handler)
public HgCGIServlet(RepositoryManager repositoryManager,
HgRepositoryHandler handler)
{
this.repositoryManager = repositoryManager;
this.handler = handler;
}
@@ -194,7 +199,7 @@ public class HgCGIServlet extends AbstractCGIServlet
*/
private Repository getRepository(String repositoryname)
{
return handler.getByName(repositoryname);
return repositoryManager.get(HgRepositoryHandler.TYPE_NAME, repositoryname);
}
//~--- fields ---------------------------------------------------------------
@@ -204,4 +209,7 @@ public class HgCGIServlet extends AbstractCGIServlet
/** Field description */
private HgRepositoryHandler handler;
/** Field description */
private RepositoryManager repositoryManager;
}

View File

@@ -41,7 +41,9 @@ import com.google.inject.Singleton;
import sonia.scm.repository.HgRepositoryHandler;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryManager;
import sonia.scm.web.filter.PermissionFilter;
import sonia.scm.web.filter.RegexPermissionFilter;
import sonia.scm.web.security.SecurityContext;
//~--- JDK imports ------------------------------------------------------------
@@ -53,7 +55,7 @@ import javax.servlet.http.HttpServletRequest;
* @author Sebastian Sdorra
*/
@Singleton
public class HgPermissionFilter extends PermissionFilter
public class HgPermissionFilter extends RegexPermissionFilter
{
/**
@@ -61,14 +63,13 @@ public class HgPermissionFilter extends PermissionFilter
*
*
* @param securityContextProvider
* @param handler
* @param repositoryManager
*/
@Inject
public HgPermissionFilter(Provider<SecurityContext> securityContextProvider,
HgRepositoryHandler handler)
RepositoryManager repositoryManager)
{
super(securityContextProvider);
this.handler = handler;
super(securityContextProvider, repositoryManager);
}
//~--- get methods ----------------------------------------------------------
@@ -77,14 +78,12 @@ public class HgPermissionFilter extends PermissionFilter
* Method description
*
*
* @param name
*
* @return
*/
@Override
protected Repository getRepository(String name)
protected String getType()
{
return handler.getByName(name);
return HgRepositoryHandler.TYPE_NAME;
}
/**
@@ -100,9 +99,4 @@ public class HgPermissionFilter extends PermissionFilter
{
return !request.getMethod().equalsIgnoreCase("GET");
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private HgRepositoryHandler handler;
}