}
public synchronized void initServers( ServletConfig servletConfig )
throws RepositoryAdminException
{
WebApplicationContext wac =
WebApplicationContextUtils.getRequiredWebApplicationContext( servletConfig.getServletContext() );
configuration = wac.getBean( "archivaConfiguration#default", ArchivaConfiguration.class );
configuration.addListener( this );
managedRepositoryAdmin = wac.getBean( ManagedRepositoryAdmin.class );
repositoryMap = managedRepositoryAdmin.getManagedRepositoriesAsMap();
for ( ManagedRepository repo : repositoryMap.values() )
{
File repoDir = new File( repo.getLocation() );
if ( !repoDir.exists() )
{
if ( !repoDir.mkdirs() )
{
// Skip invalid directories.
log( "Unable to create missing directory for " + repo.getLocation() );
continue;
}
}
}
resourceFactory = wac.getBean( "davResourceFactory#archiva", DavResourceFactory.class );
locatorFactory = new ArchivaDavLocatorFactory();
ServletAuthenticator servletAuth = wac.getBean( ServletAuthenticator.class );
HttpAuthenticator httpAuth = wac.getBean( "httpAuthenticator#basic", HttpAuthenticator.class );
sessionProvider = new ArchivaDavSessionProvider( servletAuth, httpAuth );
log.info( "initServers done" );
}