mirror of
https://github.com/apache/archiva.git
synced 2025-03-07 00:49:49 +00:00
start using new repo admin module in webdav : need some other refactoring to remove it completely
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1166148 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
2a795aa6bf
commit
1032b3d5d1
@ -39,16 +39,20 @@
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>audit</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>archiva-repository-scanner</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>archiva-configuration</artifactId>
|
||||
<!-- TODO uncomment when repository admin will be finished
|
||||
<!-- should be runtime but currently not possible due ConfigurationListener
|
||||
<scope>runtime</scope>
|
||||
-->
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>archiva-repository-scanner</artifactId>
|
||||
<artifactId>archiva-repository-admin</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
@ -166,6 +170,8 @@
|
||||
<argLine>-Xmx512m -Xms512m -client</argLine>
|
||||
<systemPropertyVariables>
|
||||
<appserver.base>${basedir}/target/appserver-base</appserver.base>
|
||||
<plexus.home>${project.build.outputDirectory}</plexus.home>
|
||||
<java.io.tmpdir>${project.build.outputDirectory}</java.io.tmpdir>
|
||||
</systemPropertyVariables>
|
||||
<forkMode>${webdav.forkMode}</forkMode>
|
||||
</configuration>
|
||||
|
@ -19,6 +19,10 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.archiva.admin.repository.RepositoryAdminException;
|
||||
import org.apache.archiva.admin.repository.managed.ManagedRepository;
|
||||
import org.apache.archiva.admin.repository.managed.ManagedRepositoryAdmin;
|
||||
import org.apache.archiva.security.ServletAuthenticator;
|
||||
import org.apache.jackrabbit.webdav.DavException;
|
||||
import org.apache.jackrabbit.webdav.DavLocatorFactory;
|
||||
import org.apache.jackrabbit.webdav.DavMethods;
|
||||
@ -34,8 +38,6 @@
|
||||
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
|
||||
import org.apache.maven.archiva.configuration.ConfigurationEvent;
|
||||
import org.apache.maven.archiva.configuration.ConfigurationListener;
|
||||
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
|
||||
import org.apache.archiva.security.ServletAuthenticator;
|
||||
import org.codehaus.redback.integration.filter.authentication.HttpAuthenticator;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -62,7 +64,9 @@ public class RepositoryServlet
|
||||
|
||||
private ArchivaConfiguration configuration;
|
||||
|
||||
private Map<String, ManagedRepositoryConfiguration> repositoryMap;
|
||||
private ManagedRepositoryAdmin managedRepositoryAdmin;
|
||||
|
||||
private Map<String, ManagedRepository> repositoryMap;
|
||||
|
||||
private DavLocatorFactory locatorFactory;
|
||||
|
||||
@ -76,7 +80,15 @@ public void init( javax.servlet.ServletConfig servletConfig )
|
||||
throws ServletException
|
||||
{
|
||||
super.init( servletConfig );
|
||||
initServers( servletConfig );
|
||||
try
|
||||
{
|
||||
initServers( servletConfig );
|
||||
}
|
||||
catch ( RepositoryAdminException e )
|
||||
{
|
||||
log.error( e.getMessage(), e );
|
||||
throw new ServletException( e.getMessage(), e );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -156,6 +168,7 @@ else if ( e.getCause() != null )
|
||||
}
|
||||
|
||||
public synchronized void initServers( ServletConfig servletConfig )
|
||||
throws RepositoryAdminException
|
||||
{
|
||||
WebApplicationContext wac =
|
||||
WebApplicationContextUtils.getRequiredWebApplicationContext( servletConfig.getServletContext() );
|
||||
@ -163,9 +176,11 @@ public synchronized void initServers( ServletConfig servletConfig )
|
||||
configuration = wac.getBean( "archivaConfiguration#default", ArchivaConfiguration.class );
|
||||
configuration.addListener( this );
|
||||
|
||||
repositoryMap = configuration.getConfiguration().getManagedRepositoriesAsMap();
|
||||
managedRepositoryAdmin = wac.getBean( ManagedRepositoryAdmin.class );
|
||||
|
||||
for ( ManagedRepositoryConfiguration repo : repositoryMap.values() )
|
||||
repositoryMap = managedRepositoryAdmin.getManagedRepositoriesAsMap();
|
||||
|
||||
for ( ManagedRepository repo : repositoryMap.values() )
|
||||
{
|
||||
File repoDir = new File( repo.getLocation() );
|
||||
|
||||
@ -180,7 +195,7 @@ public synchronized void initServers( ServletConfig servletConfig )
|
||||
}
|
||||
}
|
||||
|
||||
resourceFactory = wac.getBean("davResourceFactory#archiva", DavResourceFactory.class );
|
||||
resourceFactory = wac.getBean( "davResourceFactory#archiva", DavResourceFactory.class );
|
||||
locatorFactory = new ArchivaDavLocatorFactory();
|
||||
|
||||
ServletAuthenticator servletAuth = wac.getBean( ServletAuthenticator.class );
|
||||
@ -195,16 +210,25 @@ public void configurationEvent( ConfigurationEvent event )
|
||||
{
|
||||
if ( event.getType() == ConfigurationEvent.SAVED )
|
||||
{
|
||||
initRepositories();
|
||||
try
|
||||
{
|
||||
initRepositories();
|
||||
}
|
||||
catch ( RepositoryAdminException e )
|
||||
{
|
||||
log.error( e.getMessage(), e );
|
||||
throw new RuntimeException( e.getMessage(), e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void initRepositories()
|
||||
throws RepositoryAdminException
|
||||
{
|
||||
synchronized ( repositoryMap )
|
||||
{
|
||||
repositoryMap.clear();
|
||||
repositoryMap.putAll( configuration.getConfiguration().getManagedRepositoriesAsMap() );
|
||||
repositoryMap.putAll( managedRepositoryAdmin.getManagedRepositoriesAsMap() );
|
||||
}
|
||||
|
||||
synchronized ( reloadLock )
|
||||
@ -213,11 +237,12 @@ private void initRepositories()
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized ManagedRepositoryConfiguration getRepository( String prefix )
|
||||
public synchronized ManagedRepository getRepository( String prefix )
|
||||
throws RepositoryAdminException
|
||||
{
|
||||
if ( repositoryMap.isEmpty() )
|
||||
{
|
||||
repositoryMap.putAll( configuration.getConfiguration().getManagedRepositoriesAsMap() );
|
||||
repositoryMap.putAll( managedRepositoryAdmin.getManagedRepositoriesAsMap() );
|
||||
}
|
||||
return repositoryMap.get( prefix );
|
||||
}
|
||||
|
@ -26,6 +26,7 @@
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
import net.sf.ehcache.CacheManager;
|
||||
import org.apache.archiva.admin.repository.managed.ManagedRepository;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
|
||||
import org.apache.maven.archiva.configuration.Configuration;
|
||||
@ -173,8 +174,9 @@ protected void assertFileContents( String expectedContents, File repoRoot, Strin
|
||||
}
|
||||
|
||||
protected void assertRepositoryValid( RepositoryServlet servlet, String repoId )
|
||||
throws Exception
|
||||
{
|
||||
ManagedRepositoryConfiguration repository = servlet.getRepository( repoId );
|
||||
ManagedRepository repository = servlet.getRepository( repoId );
|
||||
assertNotNull( "Archiva Managed Repository id:<" + repoId + "> should exist.", repository );
|
||||
File repoRoot = new File( repository.getLocation() );
|
||||
assertTrue( "Archiva Managed Repository id:<" + repoId + "> should have a valid location on disk.",
|
||||
|
@ -19,6 +19,7 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.archiva.admin.repository.managed.ManagedRepository;
|
||||
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
|
||||
import org.apache.maven.archiva.configuration.Configuration;
|
||||
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
|
||||
@ -67,7 +68,7 @@ public void testGetRepositoryAfterDelete()
|
||||
c.removeManagedRepository( c.findManagedRepositoryById( REPOID_INTERNAL ) );
|
||||
saveConfiguration( archivaConfiguration );
|
||||
|
||||
ManagedRepositoryConfiguration repository = servlet.getRepository( REPOID_INTERNAL );
|
||||
ManagedRepository repository = servlet.getRepository( REPOID_INTERNAL );
|
||||
assertNull( repository );
|
||||
}
|
||||
|
||||
@ -92,7 +93,7 @@ public void testGetRepositoryAfterAdd()
|
||||
c.addManagedRepository( repo );
|
||||
saveConfiguration( archivaConfiguration );
|
||||
|
||||
ManagedRepositoryConfiguration repository = servlet.getRepository( NEW_REPOSITORY_ID );
|
||||
ManagedRepository repository = servlet.getRepository( NEW_REPOSITORY_ID );
|
||||
assertNotNull( repository );
|
||||
assertEquals( NEW_REPOSITORY_NAME, repository.getName() );
|
||||
|
||||
|
@ -19,10 +19,12 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.archiva.admin.repository.RepositoryAdminException;
|
||||
|
||||
import javax.servlet.ServletConfig;
|
||||
|
||||
/**
|
||||
* UnauthenticatedRepositoryServlet
|
||||
* UnauthenticatedRepositoryServlet
|
||||
*
|
||||
* @version $Id$
|
||||
*/
|
||||
@ -32,9 +34,16 @@ public class UnauthenticatedRepositoryServlet
|
||||
@Override
|
||||
public synchronized void initServers( ServletConfig servletConfig )
|
||||
{
|
||||
super.initServers(servletConfig);
|
||||
|
||||
try
|
||||
{
|
||||
super.initServers( servletConfig );
|
||||
}
|
||||
catch ( RepositoryAdminException e )
|
||||
{
|
||||
throw new RuntimeException( e.getMessage(), e );
|
||||
}
|
||||
|
||||
UnauthenticatedDavSessionProvider sessionProvider = new UnauthenticatedDavSessionProvider();
|
||||
setDavSessionProvider(sessionProvider);
|
||||
setDavSessionProvider( sessionProvider );
|
||||
}
|
||||
}
|
||||
|
5
pom.xml
5
pom.xml
@ -1490,6 +1490,11 @@
|
||||
<version>2.9</version>
|
||||
<configuration>
|
||||
<redirectTestOutputToFile>${surefire.redirectTestOutputToFile}</redirectTestOutputToFile>
|
||||
<systemPropertyVariables>
|
||||
<appserver.base>${basedir}/target/appserver-base</appserver.base>
|
||||
<plexus.home>${project.build.outputDirectory}</plexus.home>
|
||||
<java.io.tmpdir>${project.build.outputDirectory}</java.io.tmpdir>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
|
Loading…
x
Reference in New Issue
Block a user