Initialize svn parent directory for servlet

This commit is contained in:
René Pfeuffer
2018-09-07 09:51:23 +02:00
parent 5b5bfd342a
commit 40b9b0da69
4 changed files with 51 additions and 10 deletions

View File

@@ -294,7 +294,7 @@ public class SvnDAVServlet extends DAVServlet implements HttpScmProtocol
@Override
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();
}

View File

@@ -5,6 +5,13 @@ import sonia.scm.repository.spi.InitializingHttpScmProtocolWrapper;
import javax.inject.Inject;
import javax.inject.Provider;
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
public class SvnScmProtocolProviderWrapper extends InitializingHttpScmProtocolWrapper {
@@ -12,4 +19,42 @@ public class SvnScmProtocolProviderWrapper extends InitializingHttpScmProtocolWr
public SvnScmProtocolProviderWrapper(Provider<SvnDAVServlet> 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();
}
}
}

View File

@@ -41,9 +41,6 @@ import sonia.scm.api.v2.resources.SvnConfigDtoToSvnConfigMapper;
import sonia.scm.api.v2.resources.SvnConfigToSvnConfigDtoMapper;
import sonia.scm.plugin.Extension;
import java.util.HashMap;
import java.util.Map;
//~--- JDK imports ------------------------------------------------------------
/**
@@ -75,10 +72,5 @@ public class SvnServletModule extends ServletModule
bind(SvnConfigDtoToSvnConfigMapper.class).to(Mappers.getMapper(SvnConfigDtoToSvnConfigMapper.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"));
}
}