You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2009/10/07 18:29:28 UTC
svn commit: r822794 - in
/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src:
main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java
test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java
Author: brett
Date: Wed Oct 7 16:29:27 2009
New Revision: 822794
URL: http://svn.apache.org/viewvc?rev=822794&view=rev
Log:
additional clean up code to prevent the tests from running out of memory
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java?rev=822794&r1=822793&r2=822794&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java Wed Oct 7 16:29:27 2009
@@ -49,6 +49,7 @@
import org.codehaus.redback.integration.filter.authentication.HttpAuthenticator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
@@ -99,13 +100,13 @@
// DeltaV requires 'Cache-Control' header for all methods except 'VERSION-CONTROL' and 'REPORT'.
int methodCode = DavMethods.getMethodCode( request.getMethod() );
boolean noCache =
- DavMethods.isDeltaVMethod( webdavRequest ) &&
- !( DavMethods.DAV_VERSION_CONTROL == methodCode || DavMethods.DAV_REPORT == methodCode );
+ DavMethods.isDeltaVMethod( webdavRequest )
+ && !( DavMethods.DAV_VERSION_CONTROL == methodCode || DavMethods.DAV_REPORT == methodCode );
WebdavResponse webdavResponse = new WebdavResponseImpl( response, noCache );
DavResource resource = null;
-
+
try
- {
+ {
// make sure there is a authenticated user
if ( !getDavSessionProvider().attachSession( webdavRequest ) )
{
@@ -115,7 +116,7 @@
// check matching if=header for lock-token relevant operations
resource =
getResourceFactory().createResource( webdavRequest.getRequestLocator(), webdavRequest, webdavResponse );
-
+
if ( !isPreconditionValid( webdavRequest, resource ) )
{
webdavResponse.sendError( DavServletResponse.SC_PRECONDITION_FAILED );
@@ -154,7 +155,7 @@
}
}
finally
- {
+ {
getDavSessionProvider().releaseSession( webdavRequest );
}
}
@@ -186,14 +187,14 @@
}
resourceFactory =
- (DavResourceFactory) wac.getBean( PlexusToSpringUtils.buildSpringId( ArchivaDavResourceFactory.class ) );
+ (DavResourceFactory) wac.getBean( PlexusToSpringUtils.buildSpringId( ArchivaDavResourceFactory.class ) );
locatorFactory = new ArchivaDavLocatorFactory();
-
+
ServletAuthenticator servletAuth =
(ServletAuthenticator) wac.getBean( PlexusToSpringUtils.buildSpringId( ServletAuthenticator.class.getName() ) );
HttpAuthenticator httpAuth =
(HttpAuthenticator) wac.getBean( PlexusToSpringUtils.buildSpringId( HttpAuthenticator.ROLE, "basic" ) );
-
+
sessionProvider = new ArchivaDavSessionProvider( servletAuth, httpAuth );
}
@@ -236,7 +237,7 @@
protected boolean isPreconditionValid( final WebdavRequest request, final DavResource davResource )
{
// check for read or write access to the resource when resource-based permission is implemented
-
+
return true;
}
@@ -279,4 +280,25 @@
{
return "Basic realm=\"Repository Archiva Managed " + repository + " Repository\"";
}
+
+ @Override
+ public void destroy()
+ {
+ configuration.removeListener( this );
+
+ resourceFactory = null;
+ configuration = null;
+ locatorFactory = null;
+ sessionProvider = null;
+ repositoryMap.clear();
+ repositoryMap = null;
+
+ WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext( getServletContext() );
+
+ if ( wac instanceof ConfigurableApplicationContext )
+ {
+ ( (ConfigurableApplicationContext) wac ).close();
+ }
+ super.destroy();
+ }
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java?rev=822794&r1=822793&r2=822794&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java Wed Oct 7 16:29:27 2009
@@ -212,6 +212,8 @@
FileUtils.deleteDirectory(repoRootInternal);
}
+ release( archivaConfiguration );
+
super.tearDown();
}