Index: archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/DavServerManager.java =================================================================== --- . (revision 647921) +++ . (working copy) @@ -22,6 +22,8 @@ import java.io.File; import java.util.Collection; +import javax.servlet.ServletConfig; + /** * DavServerManager * @@ -38,10 +40,11 @@ * * @param prefix the prefix for this component. * @param rootDirectory the root directory for this component's content. null to not set a root directory. + * @param config TODO * @return the created component, suitable for use. * @throws DavServerException */ - public DavServerComponent createServer( String prefix, File rootDirectory ) throws DavServerException; + public DavServerComponent createServer( String prefix, File rootDirectory, ServletConfig config ) throws DavServerException; /** * Get the collection of tracked servers. Index: archiva-webapp/src/main/resources/META-INF/plexus/application.xml =================================================================== --- . (revision 647921) +++ . (working copy) @@ -71,12 +71,6 @@ default org.apache.maven.archiva.webdav.DefaultDavServerManager DefaultDavServerManager - - - org.apache.maven.archiva.webdav.DavServerComponent - proxied - - Index: archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/servlet/basic/BasicWebDavServlet.java =================================================================== --- . (revision 647921) +++ . (working copy) @@ -68,7 +68,7 @@ try { - davServer = davManager.createServer( prefix, rootDir ); + davServer = davManager.createServer( prefix, rootDir, config ); davServer.setUseIndexHtml( useIndexHtml ); davServer.init( config ); } Index: archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/DefaultDavServerManager.java =================================================================== --- . (revision 647921) +++ . (working copy) @@ -24,6 +24,14 @@ import java.util.HashMap; import java.util.Map; +import javax.servlet.ServletConfig; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; + +import org.codehaus.plexus.spring.PlexusToSpringUtils; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + /** * DefaultDavServerManager * @@ -36,9 +44,9 @@ implements DavServerManager { /** - * @plexus.requirement role-hint="simple" + * @--plexus.requirement role-hint="simple" */ - private DavServerComponent server; +// private DavServerComponent server; private Map servers; @@ -47,7 +55,7 @@ servers = new HashMap(); } - public DavServerComponent createServer( String prefix, File rootDirectory ) + public DavServerComponent createServer( String prefix, File rootDirectory, ServletConfig config ) throws DavServerException { if ( servers.containsKey( prefix ) ) @@ -54,7 +62,9 @@ { throw new DavServerException( "Unable to create a new server on a pre-existing prefix [" + prefix + "]" ); } - + + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext( config.getServletContext() ); + DavServerComponent server = (DavServerComponent) wac.getBean( PlexusToSpringUtils.buildSpringId(DavServerComponent.ROLE, "proxied" ) ); server.setPrefix( prefix ); if ( rootDirectory != null ) { Index: archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/servlet/multiplexed/MultiplexedWebDavServlet.java =================================================================== --- . (revision 647921) +++ . (working copy) @@ -84,7 +84,7 @@ public DavServerComponent createServer( String prefix, File rootDirectory, ServletConfig config ) throws DavServerException { - DavServerComponent serverComponent = davManager.createServer( prefix, rootDirectory ); + DavServerComponent serverComponent = davManager.createServer( prefix, rootDirectory, config ); serverComponent.setUseIndexHtml( useIndexHtml ); serverComponent.init( config ); return serverComponent;