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;