mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-02 03:25:56 +01:00
Initialize svn parent directory for servlet
This commit is contained in:
@@ -29,7 +29,7 @@ public abstract class InitializingHttpScmProtocolWrapper implements HttpScmProto
|
|||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
if (!isInitialized) {
|
if (!isInitialized) {
|
||||||
HttpServlet httpServlet = delegateProvider.get();
|
HttpServlet httpServlet = delegateProvider.get();
|
||||||
httpServlet.init(config);
|
initializeServlet(config, httpServlet);
|
||||||
isInitialized = true;
|
isInitialized = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -37,6 +37,10 @@ public abstract class InitializingHttpScmProtocolWrapper implements HttpScmProto
|
|||||||
delegateProvider.get().service(request, response);
|
delegateProvider.get().service(request, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void initializeServlet(ServletConfig config, HttpServlet httpServlet) throws ServletException {
|
||||||
|
httpServlet.init(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl(Repository repository, UriInfo uriInfo) {
|
public String getUrl(Repository repository, UriInfo uriInfo) {
|
||||||
|
|||||||
@@ -294,7 +294,7 @@ public class SvnDAVServlet extends DAVServlet implements HttpScmProtocol
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl(Repository repository, UriInfo uriInfo) {
|
public String getUrl(Repository repository, UriInfo uriInfo) {
|
||||||
return uriInfo.getBaseUri().resolve(URI.create("../../svn/" + repository.getNamespace() + "/" + repository.getName())).toASCIIString();
|
return uriInfo.getBaseUri().resolve(URI.create("../../repo/" + repository.getNamespace() + "/" + repository.getName())).toASCIIString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,13 @@ import sonia.scm.repository.spi.InitializingHttpScmProtocolWrapper;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Provider;
|
import javax.inject.Provider;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
import javax.servlet.ServletConfig;
|
||||||
|
import javax.servlet.ServletContext;
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.http.HttpServlet;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
|
||||||
|
import static sonia.scm.web.SvnServletModule.PARAMETER_SVN_PARENTPATH;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class SvnScmProtocolProviderWrapper extends InitializingHttpScmProtocolWrapper {
|
public class SvnScmProtocolProviderWrapper extends InitializingHttpScmProtocolWrapper {
|
||||||
@@ -12,4 +19,42 @@ public class SvnScmProtocolProviderWrapper extends InitializingHttpScmProtocolWr
|
|||||||
public SvnScmProtocolProviderWrapper(Provider<SvnDAVServlet> servletProvider) {
|
public SvnScmProtocolProviderWrapper(Provider<SvnDAVServlet> servletProvider) {
|
||||||
super(servletProvider);
|
super(servletProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void initializeServlet(ServletConfig config, HttpServlet httpServlet) throws ServletException {
|
||||||
|
|
||||||
|
super.initializeServlet(new X(config), httpServlet);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class X implements ServletConfig {
|
||||||
|
|
||||||
|
private final ServletConfig originalConfig;
|
||||||
|
|
||||||
|
private X(ServletConfig originalConfig) {
|
||||||
|
this.originalConfig = originalConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getServletName() {
|
||||||
|
return originalConfig.getServletName();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ServletContext getServletContext() {
|
||||||
|
return originalConfig.getServletContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getInitParameter(String key) {
|
||||||
|
if (PARAMETER_SVN_PARENTPATH.equals(key)) {
|
||||||
|
return System.getProperty("java.io.tmpdir");
|
||||||
|
}
|
||||||
|
return originalConfig.getInitParameter(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Enumeration getInitParameterNames() {
|
||||||
|
return originalConfig.getInitParameterNames();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,9 +41,6 @@ import sonia.scm.api.v2.resources.SvnConfigDtoToSvnConfigMapper;
|
|||||||
import sonia.scm.api.v2.resources.SvnConfigToSvnConfigDtoMapper;
|
import sonia.scm.api.v2.resources.SvnConfigToSvnConfigDtoMapper;
|
||||||
import sonia.scm.plugin.Extension;
|
import sonia.scm.plugin.Extension;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
//~--- JDK imports ------------------------------------------------------------
|
//~--- JDK imports ------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -75,10 +72,5 @@ public class SvnServletModule extends ServletModule
|
|||||||
|
|
||||||
bind(SvnConfigDtoToSvnConfigMapper.class).to(Mappers.getMapper(SvnConfigDtoToSvnConfigMapper.class).getClass());
|
bind(SvnConfigDtoToSvnConfigMapper.class).to(Mappers.getMapper(SvnConfigDtoToSvnConfigMapper.class).getClass());
|
||||||
bind(SvnConfigToSvnConfigDtoMapper.class).to(Mappers.getMapper(SvnConfigToSvnConfigDtoMapper.class).getClass());
|
bind(SvnConfigToSvnConfigDtoMapper.class).to(Mappers.getMapper(SvnConfigToSvnConfigDtoMapper.class).getClass());
|
||||||
|
|
||||||
Map<String, String> parameters = new HashMap<String, String>();
|
|
||||||
|
|
||||||
parameters.put(PARAMETER_SVN_PARENTPATH,
|
|
||||||
System.getProperty("java.io.tmpdir"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user